Hi,

Any update on this fix? It would be really helpful if we get this in any of 
your newer versions. As of now, we are doing a workaround with the Map 
implementation to get this fixed.

Regards,
Remya

On Friday, 15 December 2017 10:26:05 UTC-6, Remya wrote:
>
> Thank you!
>
> On Thursday, 14 December 2017 17:35:32 UTC-6, Tatu Saloranta wrote:
>>
>> Thank you! 
>>
>> If and when there is an update, it will be added in that issue, and 
>> you should be notified by github (as per settings 
>> you have for your account; default will send an email on issues you 
>> have created I think). 
>>
>> -+ Tatu +- 
>>
>>
>> On Wed, Dec 13, 2017 at 8:50 PM, Remya <[email protected]> wrote: 
>> > Hi, 
>> > 
>> > I have opened the issue - 
>> > https://github.com/FasterXML/jackson-databind/issues/1859 for this. 
>> > Please let me know when you have the fix available. 
>> > 
>> > Thanks, 
>> > Remya 
>> > 
>> > 
>> > On Tuesday, 12 December 2017 23:45:01 UTC-6, Remya wrote: 
>> >> 
>> >> 
>> >> Thanks much! 
>> >> 
>> >> I would post this as an issue. 
>> >> 
>> >> Regards, 
>> >> Remya 
>> >> 
>> >> On Tuesday, 12 December 2017 17:03:47 UTC-6, Tatu Saloranta wrote: 
>> >>> 
>> >>> On Tue, Dec 12, 2017 at 8:11 AM, Remya <[email protected]> wrote: 
>> >>> > Hi, 
>> >>> > 
>> >>> > As I mentioned in one of my earlier responses, had also tried 
>> adding 
>> >>> > this 
>> >>> > configuration - 
>> >>> > 
>> >>> > 
>> objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL,
>>  
>>
>> >>> > true); 
>> >>> > 
>> >>> > This resulted in the Unknown attribute KEY to be deserialized as 
>> >>> > "null". 
>> >>> > (i.e., instead of Test=No, it gets deserialized as null=No) 
>> >>> > 
>> >>> > My intention is to ignore this attribute completely during 
>> >>> > deserialization. 
>> >>> > Please let me know if that would be possible by any means. 
>> >>> > 
>> >>> > Meanwhile, would try READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE 
>> >>> 
>> >>> Ah. The challenge here is that it is not an Enum-valued property, but 
>> >>> EnumMap (or, equivalently, EnumSet) valued 
>> >>> property, meaning that deserializer for the Map would need to be 
>> aware 
>> >>> of the special handling. 
>> >>> And for general Maps there just isn't any way to declare that there 
>> >>> are invalid entries that are to be ignored -- 
>> >>> invalid entries are typicallt hard failures. 
>> >>> 
>> >>> However, it seems like a reasonable improvement idea to allow 
>> >>> specialized handling, since I think there is 
>> >>> a dedicated serializer (due to special requirements for constructing 
>> >>> EnumMap). 
>> >>> 
>> >>> Could you file am issue for `jackson-databind` for requesting 
>> handling 
>> >>> of unknown/unmapped Enum keys, 
>> >>> wrt `DeserializationFeature`s discussed here? 
>> >>> To me it seems reasonable that "as null" would result in "ignore" 
>> >>> (many Map types do not allow `null` keys, 
>> >>> specifically EnumMap doesn't). This could even be implemented in a 
>> >>> patch for 2.9 (if I have time) since it 
>> >>> does not require API changes. 
>> >>> 
>> >>> -+ Tatu +- 
>> >>> 
>> >>> 
>> >>> > 
>> >>> > Thanks! 
>> >>> > 
>> >>> > On Monday, 11 December 2017 23:35:52 UTC-6, Tatu Saloranta wrote: 
>> >>> >> 
>> >>> >> On Mon, Dec 11, 2017 at 8:37 PM, Remya <[email protected]> wrote: 
>> >>> >> > 
>> >>> >> > 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? 
>> >>> >> 
>> >>> >> You probably want to enable one of following 
>> >>> >> `DeserializationFeature`s: 
>> >>> >> 
>> >>> >> * `READ_UNKNOWN_ENUM_VALUES_AS_NULL` 
>> >>> >> * `READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE` (uses Enum value 
>> >>> >> annotated with 
>> >>> >> `com.fasterxml.jackson.annotation.JsonEnumDefaultValue`) 
>> >>> >> 
>> >>> >> -+ Tatu +- 
>> >>> >> 
>> >>> >> > 
>> >>> >> > 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]> 
>> 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. 
>> >>> > 
>> >>> > -- 
>> >>> > 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