【发布时间】:2018-04-01 15:20:51
【问题描述】:
我希望将带有嵌套 JSON 数据的响应解析为 Java 对象列表。 JSON 响应采用以下格式。
{
"IsSuccess": true,
"TotalCount": 250,
"Response": [
{
"Name": "Afghanistan",
"CurrencyCode": "AFN",
"CurrencyName": "Afghan afghani"
},
{
"Name": "Afghanistan",
"CurrencyCode": "AFN",
"CurrencyName": "Afghan afghani"
},
{
"Name": "Afghanistan",
"CurrencyCode": "AFN",
"CurrencyName": "Afghan afghani"
}
]
}
我创建了相应的 Country 类,用于解析为 POJO。我正在使用 Jackson 来解析数据。
Client c = ClientBuilder.newClient();
WebTarget t = c.target("http://countryapi.gear.host/v1/Country/getCountries");
Response r = t.request().get();
String s = r.readEntity(String.class);
System.out.println(s);
ObjectMapper mapper = new ObjectMapper();
try {
List<Country> myObjects = mapper.readValue(s, new TypeReference<List<Country>>(){});
System.out.println(myObjects.size());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
国家/地区的实际列表带有 JSON 字符串中的“响应”。如何检索 Response 下的内容,然后将其解析为国家列表?
【问题讨论】:
-
你得到的是一个响应,其中包含一个列表
。但是您尝试将此响应解析为 List 。所以那行不通。将响应解析为响应,它将正常工作。然后从解析后的响应中获取国家列表。
标签: java json jackson gson pojo