我想解析 json 值,但有些值没有键。像这样"geometry": { "type": "LineString", "coordinates": [ [ 127.08373748622218, 37.529508099979225 ], [ 127.08355138558433, 37.529735847943925 ] ] }几何类@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToStringpublic class Geometry { private String type; private Coordinate coordinates;}坐标类@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToStringpublic class Coordinate { private List<Double[]> xy;}然后我看到了这个错误Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `kr.seoulmaas.ieye.service.dto.path.walk.Coordinate` out of START_ARRAY token at [Source: (PushbackInputStream); line: 1, column: 133] (through reference chain: kr.seoulmaas.ieye.service.dto.path.WalkPathResDto["features"]->java.util.ArrayList[0]->kr.seoulmaas.ieye.service.dto.path.walk.Feature["geometry"]->kr.seoulmaas.ieye.service.dto.path.walk.Geometry["coordinates"])
3 回答

MMTTMM
TA贡献1869条经验 获得超4个赞
private Coordinate coordinates;
应该是private List<Coordinate> coordinates;
因为它是 JSON 中的一个数组,但由于该数组仅包含数组,因此您需要有一个列表列表:List<List<Double>> coordinates
(@JBNizet 建议)。

千巷猫影
TA贡献1829条经验 获得超7个赞
对不起,我来晚了。
我使用 JsonNode 解决了这个问题。
这是我的代码。
public class Geometry {
private String type;
private JsonNode coordinates;
}

桃花长相依
TA贡献1860条经验 获得超8个赞
在您的数据中,coordinates是list. list因此,以这种方式定义您的 Geometry 类:
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString
public class Geometry {
private String type;
private List<Coordinate> coordinates;
}
希望这可以帮助。
添加回答
举报
0/150
提交
取消