Java 使用编号数组对json进行jackson反序列化

Java 使用编号数组对json进行jackson反序列化,java,arrays,json,list,jackson,Java,Arrays,Json,List,Jackson,我有一个JSON字符串,如下所示: { "1": { "entity_id":"1", "status":"canceled" }, "2": { "entity_id":"2", "status":"pending" } } ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPER

我有一个JSON字符串,如下所示:

{
  "1": {
    "entity_id":"1",
    "status":"canceled"
  },
  "2": {
    "entity_id":"2",
    "status":"pending"
  }
}
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);
我正在努力找到反序列化时要使用的正确设置。我偶然发现上面的
“1”
“2”
id的映射

我的对象映射器如下所示:

{
  "1": {
    "entity_id":"1",
    "status":"canceled"
  },
  "2": {
    "entity_id":"2",
    "status":"pending"
  }
}
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>>() {}); 
Map Map=mapper.readValue(消息,new-TypeReference(){});

在实际的代码中,我用一个java类替换了Object,该类映射了entity_id和status等字段,这不是一个“编号数组”,而是一个“对象”——一个映射。您能对服务器做些什么吗?在这种情况下,服务器应该返回一个数组,而不是以数字作为键的对象。这是第三方集成。感谢您为我指明了正确的方向。我现在使用这一行来反序列化json:Map=mapper.readValue(消息,new-TypeReference(){});