下面提到的是JSON字符串ResultString:
{
"imageMaps": [{
"crc": "c2c4",
"flags": "0",
"length": "117384",
"index": 1,
"version": "1.1.90ea",
"status": ""
}, {
"crc": "7601",
"flags": "8",
"length": "117592",
"index": 2,
"version": "1.1.90ed",
"status": ""
}],
"complete": true,
"nextBootImageVersion": "",
"lastKnownGoodImageVersion": "1.1.90ed",
"runningImageVersion": "1.1.90ed"
}
我想将相同的内容转换为A类的对象:
public class A {
private boolean complete;
private String message;
private String lastKnownGoodImageVersion;
private String nextBootImageVersion;
private String runningImageVersion;
private Map<String, B> imageMaps;
private List<B> images;
private MacID macId;
}
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
A a = objectMapper.readValue(resultString, A.class);
B类代码为:
public static class B {
public String version;
public int flags;
public int crc;
public long length;
public String index;
public String status;
}
但是获取异常:
JSONMappingException:无法从START_ARRAY标记反序列化java.util.LinkedHashMap实例
在类中,您将属性ImageMaps
声明为映射
,但在JSON中ImageMaps
是B的数组。如果在JSON中将ImageMaps
更改为Images
,则反序列化应该可以工作。
我有一个高度嵌套的api响应: 我试图通过使用许多包装来解析它。因为当我想获得带令牌的字段'value'时,它只从一个dataRequest dto返回'null'。 元素DTO: 属性DTO: 然后我试着用不是最好的方式解析这棵树,但是我无法理解如何更容易地解析它?并获取上面的异常: 试图通过将JsonIgnoreProperties更改为 在valuesDto中,但最终具有相同的异常
给定以下JSON文件: 我试图使用Jackson对象映射器访问JSON文件中的值。具体如下:
但是我得到了这个错误: “无法读取文档:无法反序列化com.advice.domain.family.income实例,从[source:java.io.pushbackInputStream@3d3298f9;行:1,列:2]处的START_ARRAY令牌中取出(通过引用链:java.util.ArrayList[0]);嵌套异常是com.fasterxml.jackson.databind.j
问题内容: 我正在使用来自外部合作伙伴的API。不幸的是,返回的响应似乎没有固定的结构。理想情况下,API合同意味着它不会被违反,但是这种情况一直在发生。 无论如何,所以发生的事情是JSON响应中的字段主要是一个地图,但有时却是一个列表。 例如,假设以下是我通常得到的响应: 但是在极少数情况下,我会得到列表,而不是地图或其他违反合同的情况。 例如: 我正在使用杰克逊将此响应映射到POJO。在某些情