我正在使用REST应用程序,并且从服务器获得的响应是Json字符串,其格式如下:
[{"car": "ford"}, {"car": "nissan"}, {"car": "bmw"}]
我想使用Gson通过该列表中的每个元素通过键检索信息,但是由于它是以字符串形式返回的,所以我不确定该如何处理。
如果我只是收到以下答复:
String json = {"car:": "ford"};
然后我可以按以下方式获取汽车的价值:
Map<String,Object> result = new Gson().fromJson(json, Map.class);
System.out.println( result.get( "car" ) );
但是由于原始字符串是json的列表,所以更加困难。
帮助表示赞赏。理想情况下仍使用Gson
类
谢谢
答案 0 :(得分:1)
这将帮助您:
[
{
"category": "country",
"list": [
{
"name": "Germany",
"enabled": true
},
{
"name": "US",
"enabled": false
}
]
},
{
"category": "state",
"list": [
{
"name": "Arizona",
"enabled": false
},
{
"name": "Alabama",
"enabled": true
}
]
},
{
"category": "city",
"list": [
{
"name": "Greenville",
"enabled": true
},
{
"name": "Houston",
"enabled": false
}
]
}]
答案 1 :(得分:0)
您拥有的json字符串实际上是一个数组。请尝试以下:
String json = "[{\"car\": \"ford\"}, {\"car\": \"nissan\"}, {\"car\": \"bmw\"}]";
List<Map<String,Object>> result = new Gson().fromJson(json, List.class);
result.forEach(l ->{
l.forEach((k, v)->{
System.out.println(k + ": " + v);
});
});