我正在尝试读取一个json对象(或数组,tbh我不知道这到底是什么)。 无论如何,我要指出我昨天开始使用json数组,很抱歉,如果这是一个简单的问题。
以下是发生的事情:
//doesn’t work
JSONArray valarray = new JSONArray(result);
给出此错误:type org.json.JSONObject cannot be converted to JSONArray
//works
JSONObject jsonObject = new JSONObject(result);
Log.v("RESULTS" , jsonObject.get("results").toString());
//Doesn’t work
JSONObject jsonObject = new JSONObject(result);
JSONObject resultsObject = jsonObject.getJSONObject("results");
给出此错误:type org.json.JSONArray cannot be converted to JSONObject
这是JSON:
{
"html_attributions" : [],
"results" : [
{
"geometry" : {
"location" : {
"lat" : 50.6,
"lng" : -0.00
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
"id" : "242c6a9664ca28a2",
"name" : "whatever",
"place_id" : "ChIJ6xum8T",
"reference" : "CoQBdQAAAIp",
"scope" : "GOOGLE",
"types" : [ "establishment" ],
"vicinity" : "United Kingdom"
}
],
"status" : "OK"
}
我想如何在lat
内获取lng
和geometry
?
答案 0 :(得分:1)
您的JSON由object
组成。 object
包含名为results
的数组。该数组包含object
个元素。数组中的每个object
都包含一个名为object
的{{1}}。该对象包含名为geometry
的{{1}}。 object
包含location
和object
个浮点值。
所以,你的代码应该是这样的:
lat
由于您正在处理数组,因此您可以像这样迭代它:
lng