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]> 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].
> 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].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to