繁体   English   中英

Jackson Object Mapper 读取具有可变字段/val 类型的对象

[英]Jackson Object Mapper reading objects with variable field/val types

我有一个看起来像这样的对象

{
field1: "val1",
field2: "val2",
field3: {{ val3 }},
field4:{
   x:a,
   y:"b"
}
}

如您所见,字段没有被引号包围,而某些 val 则没有。 我正在尝试使用 Jackson 的对象映射器像这样读取这个对象的字节数组

OBJECT_MAPPER.readValue(IOUtils.toByteArray(objectContent, Map.class)但我OBJECT_MAPPER.readValue(IOUtils.toByteArray(objectContent, Map.class)

[junit] Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name

我相信它是在抱怨 field3 值的第二个左括号。

有没有一种简单的方法可以使用对象映射器解析这样的 json 对象?

由于该格式不是有效的 JSON,因此您必须创建自定义反序列化器。

参见: https : //fasterxml.github.io/jackson-databind/javadoc/2.3.0/com/fasterxml/jackson/databind/JsonDeserializer.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM