杰克逊使用编号数组对 JSON 进行反序列化



我有一个这样的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 类

最新更新