Jackson - InvalidFormatException 反序列化 ENUM
Jackson - InvalidFormatException deserializing ENUM
我正在尝试使用 jackson-databind Objectmapper 反序列化 JSON 字符串,其中包含一组 Enum 属性。当枚举中未定义的未知属性出现在 JSON 中时,就会发生这种情况。请在下面找到我正在使用的对象映射器配置。
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);
但是,反序列化 (objectMapper.readValue(jsonText, .class);) 会抛出这个错误。 "Test" 是要反序列化的 JSON 字符串中的未知属性。
com.fasterxml.jackson.databind.exc.InvalidFormatException: 无法反序列化 String com..*
类型的映射键 "Test": 不是有效的表示,问题:(com.fasterxml.jackson.databind.exc.InvalidFormatException) 无法反序列化类型的映射键com....
来自字符串 "Test":不是枚举 class 除外的值之一:[ ]
有人可以帮我解决这个问题吗?
谢谢!
这最终通过编写自定义反序列化程序来过滤掉枚举值并进行设置来解决。
我正在尝试使用 jackson-databind Objectmapper 反序列化 JSON 字符串,其中包含一组 Enum 属性。当枚举中未定义的未知属性出现在 JSON 中时,就会发生这种情况。请在下面找到我正在使用的对象映射器配置。
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);
但是,反序列化 (objectMapper.readValue(jsonText, .class);) 会抛出这个错误。 "Test" 是要反序列化的 JSON 字符串中的未知属性。
com.fasterxml.jackson.databind.exc.InvalidFormatException: 无法反序列化 String com..*
类型的映射键 "Test": 不是有效的表示,问题:(com.fasterxml.jackson.databind.exc.InvalidFormatException) 无法反序列化类型的映射键com....
来自字符串 "Test":不是枚举 class 除外的值之一:[ ]
有人可以帮我解决这个问题吗?
谢谢!
这最终通过编写自定义反序列化程序来过滤掉枚举值并进行设置来解决。