Thanks for the response.

That was just a sample that I posted. The cases do match and yes, my 
requirement is when a new attribute - say, 'Test' comes in the Json, I want 
the mapper to ignore that field and proceed with de-serializing the 
remaining fields that has a match in the Enum, rather than throwing the 
exception.

What should I do, so that it ignores the attributes which does not have an 
entry in the Enum?

Regards,
Remya

On Monday, 11 December 2017 22:21:32 UTC-6, Tatu Saloranta wrote:
>
> In this case enum names do not match wrt casing? ("count" key, but enum 
> `Count`; nor is there enum `Test` defined)
> So it seems to me exception is due to simple mismatch between keys used, 
> names of Enums.
>
> -+ Tatu +-
>
>
> On Mon, Dec 11, 2017 at 7:03 PM, Remya <[email protected] <javascript:>> 
> wrote:
>
>>
>> Sample of JSON String would look like this.
>>
>> String 
>> jsonText="{\"cartId\":\"31028\",\"userId\":\"106784\",\"attributes\":{\"count\":\"1\",\"amount\":\"10\",\"email\":\"N\",\"Test\":\"No\",\"phone\":\"N\"}}";
>>
>> The JSON maps to a Cart class, which holds these attributes as a Map. 
>>
>> public class Cart {
>>
>>   private String cartId;
>>   private String userId;
>>   private Map<Attributes,String> attributes;
>>
>> }
>>
>> Attributes map to the Enum, as given below.
>>
>> public enum Attributes {
>>   Count(0),
>>   Amount(1),
>>   Email(2),
>>   Phone(3);
>>
>>   private final int value;
>>
>>   private Attributes(int value) {
>>     this.value = value;
>>   }
>>
>>   public int getValue() {
>>     return value;
>>   }
>>
>>   public static Attributes findByValue(int value) { 
>>     switch (value) {
>>       case 0:
>>         return Count;
>>       case 1:
>>         return Amount;
>>       case 2:
>>         return Email;
>>       case 3:
>>         return Phone;
>>       default:
>>         return null;
>>     }
>>   }
>> }
>>
>> Thanks!
>>
>> On Monday, 11 December 2017 17:37:34 UTC-6, Tatu Saloranta wrote:
>>>
>>> Ok, so .... what are classes involved? And input JSON?
>>>
>>> -+ Tatu +-
>>>
>>> On Mon, Dec 11, 2017 at 1:50 PM, Remya <[email protected]> wrote:
>>>
>>>> I am trying to deserialize a JSON string using jackson-databind 
>>>> Objectmapper which has a set of Enum attributes within it. 
>>>>
>>>>
>>>> This happens when an unknown attribute, which is not defined in the 
>>>> enum comes in the JSON. Please find below the object mapper configuration 
>>>> that I am using.
>>>>
>>>>     ObjectMapper objectMapper = new ObjectMapper();
>>>>     objectMapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);
>>>>     objectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
>>>>     objectMapper.setSerializationInclusion(Include.NON_NULL);
>>>>    
>>>> objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, 
>>>> false);
>>>>
>>>> But, deserialization (objectMapper.readValue(jsonText, .class);) throws 
>>>> this error. "Test" is the unknown attribute that comes in the JSON String 
>>>> to be deserialized.
>>>>
>>>> com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot 
>>>> deserialize Map key of type com..* from String "Test": not a valid 
>>>> representation, problem: 
>>>> (com.fasterxml.jackson.databind.exc.InvalidFormatException) Cannot 
>>>> deserialize Map key of type com.... from String "Test": not one of 
>>>> values excepted for Enum class: [ ]
>>>>
>>>>
>>>> Could someone please help me out with this issue?
>>>>
>>>>
>>>> Thanks!
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jackson-user" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "jackson-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to