为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 RestTemplate 解析没有键的 json 值?

如何使用 RestTemplate 解析没有键的 json 值?

慕森卡 2023-03-23 15:14:08
我想解析 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 建议)。



查看完整回答
反对 回复 2023-03-23
?
千巷猫影

TA贡献1829条经验 获得超7个赞

对不起,我来晚了。


我使用 JsonNode 解决了这个问题。


这是我的代码。


public class Geometry {

    private String type;

    private JsonNode coordinates;

}


查看完整回答
反对 回复 2023-03-23
?
桃花长相依

TA贡献1860条经验 获得超8个赞

在您的数据中,coordinates是list. list因此,以这种方式定义您的 Geometry 类:


@Getter

@NoArgsConstructor(access = AccessLevel.PROTECTED)

@ToString

public class Geometry {

    private String type;

    private List<Coordinate> coordinates;

}

希望这可以帮助。



查看完整回答
反对 回复 2023-03-23
  • 3 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信