我有一个这样的JSON字符串:
{
"1": {
"entity_id":"1",
"status":"canceled"
},
"2": {
"entity_id":"2",
"status":"pending"
}
}
我正在努力找到反序列化时要使用的正确设置。我偶然发现了上面看起来像映射"1"
和"2"
id的东西。
我的对象映射器如下所示:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(DeserializationConfig.Feature.READ_ENUMS_USING_TO_STRING, true);
mapper.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
我已经尝试了各种类来将其映射到,但是在使用以下行时,它们都不起作用:
XXX jsonObject = mapper.readValue(json, XXX.class);
关于XXX
类应该是什么样子的任何建议?
解决方案是将 json 映射到映射中,如下所示:
Map<String, Object> map = mapper.readValue(message, new TypeReference<Map<String, Object>>() {});
在实际代码中,我将 Object 替换为映射entity_id和状态等字段的 java 类