这是我的json回复:
{
"destination_addresses" : [ "Perkinston, MS, USA" ],
"origin_addresses" : [ "Sunnyvale, CA, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "3,586 km",
"value" : 3585861
},
"duration" : {
"text" : "1 day 8 hours",
"value" : 115992
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
我想要的是,在解析后在列表中添加"text" : "3,586 km"
。
我所尝试的是:
jsonObj = new JSONObject(response);
List<String> list = new ArrayList<String>();
JSONArray array = jsonObj.getJSONArray("rows");
System.out.println("size:"+array.length());
for(i = 0 ; i < array.length() ; i++){
JSONObject objects = new JSONObject(array.getJSONObject(i));
JSONArray element = objects.getJSONArray("elements");
JSONObject distance = new JSONObject(element.getJSONObject(i));
list.add(element.getJSONObject("").getString("text"));
我得到的错误是:Object["elements"] not found
帮忙吧!
答案 0 :(得分:0)
将遍历for
对象的array
循环更改为此类。
for (int i = 0; i < array.length(); i++) {
JSONObject objects = array.getJSONObject(i);
JSONArray elements = objects.getJSONArray("elements");
for (int j = 0; j < elements.length(); j++) {
JSONObject element = elements.getJSONObject(i);
list.add(element.getJSONObject("distance").getString("text"));
}
}
System.out.println(list);
由于您的elements
也是一个数组,因此您需要loop
来迭代它。您所需的文本显示在distance
对象中。
答案 1 :(得分:-1)
Here,why are you do this:
JSONObject objects = new JSONObject(array.getJSONObject(i));
why not :
JSONObject object = array.getJSONObject(i);
和here is an article可能对您有所帮助