【发布时间】:2019-05-24 21:15:56
【问题描述】:
我想使用 Spring Boot 中可用的本机 JsonParser 解析 JSON 数组:
String url="https://restservice.com";
RestTemplate restTemplate = new RestTemplate();
String resp = restTemplate.getForObject(url, String.class);
JsonParser springParser = JsonParserFactory.getJsonParser();
Map<String, Object> map = springParser.parseMap(resp);
如果 Array 中只有一项,则此方法有效。如果返回多个项目,则抛出异常:
Caused by: org.springframework.boot.json.JsonParseException: Cannot parse JSON
at org.springframework.boot.json.AbstractJsonParser.tryParse(AbstractJsonParser.java:60) ~[spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at org.springframework.boot.json.JacksonJsonParser.parseMap(JacksonJsonParser.java:55) ~[spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
at com.example.samplewebapp.DemoApplication.lambda$demo$2(DemoApplication.java:50) [classes!/:0.0.1-SNAPSHOT]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) [spring-boot-2.1.0.RELEASE.jar!/:2.1.0.RELEASE]
... 13 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.LinkedHashMap` out of START_ARRAY token
返回 Map JSON 对象列表的正确 API 是什么?
【问题讨论】:
-
你试过
parseList吗? -
您能否举例说明您要解析的数据是什么样的?
-
这意味着你的数据是一个数组。
Cannot deserialize instance of java.util.LinkedHashMap out of START_ARRAY token如果你能提供输入和预期的输出,帮助你会更容易。 stackoverflow.com/help/mcve
标签: spring-boot