我在android工作。我想解析我的json数据。
这是我的json数据: -
{
"响应" {
"groups":[
{
"type":"nearby",
"name":"Nearby",
"items":[
{
"id":"4ed0c8f48231b9ef88fe5f09",
"name":"Banayan Tree School",
"contact":{
},
"location":{
"lat":26.857954980225713,
"lng":75.76602927296061,
"distance":510
},
"categories":[
{
"id":"4bf58dd8d48988d1a8941735",
"name":"General College & University",
"pluralName":"General Colleges & Universities",
"shortName":"Other - Education",
"icon":"https:\/\/foursquare.com\/img\/categories\/education\/default.png",
"parents":[
"Colleges & Universities"
],
"primary":true
}
],
"verified":false,
"stats":{
"checkinsCount":5,
"usersCount":4,
"tipCount":0
},
"hereNow":{
"count":0
}
}
]
}
]
} }
我想使用图标在 imageview中显示图标。请建议我如何获取此图标值以及如何在imageview中使用此图标网址。< / p>
提前谢谢。
我正在尝试这个,但它仍在创建错误: - 这是我的代码: - 但仍然在创建错误: -
JSONArray groups =(JSONArray)jsonObj.getJSONObject(&#34; response&#34;)。getJSONArray(&#34; groups&#34;);
int length = groups.length(); if(length&gt; 0){for(int i = 0; i&lt; length; i ++)
{
JSONObject group= (JSONObject) groups.get(i); JSONArray items =(JSONArray) group.getJSONArray("items");
for(int j = 0; j&lt; items.length(); j ++)
{
JSONObject item =(JSONObject)items.get(j);
JSONObject iconobject =(JSONObject)item.getJSONObject(&#34; categories&#34;); / /这是创建JSON.typeMismatch
的错误venue.icon = iconobject.getString(&#34;图标&#34);
}}}}
答案 0 :(得分:2)
班级JSONObject可以帮助您:
String data = ... // your json data
JSONObject json = new JSONObject(data);
您可以借助getJSONObject(String)
和getJSONArray(String)
来访问结构中的节点。
例如:
JSONObject response = json.getJSONObject("response");
JSONArray groups = response.getJSONArray("groups");
JSONObject firstGroup = groups.getJSONObject(0);
// and so on
如果您的节点包含您的图标值,则可以使用getString(String)
方法获取图标网址:
JSONObject firstCategory = categories.getJSONObject(0);
String iconUrl = firstCategory.getString("icon");
获得网址后,您必须先下载图片才能使用它。如何从网址下载图片here
下载图像后,您可以更新图像视图:
Bitmap image = loadBitmap(iconUrl); // how to implement loadBitmap is shown in the link above
ImageView iv = findViewById(R.id.my_imageview);
iv.setImageBitamp(image);
答案 1 :(得分:1)
试试这个:
try {
JSONArray jArray = new JSONArray(result);
// get into the 'groups' array
JSONObject jData = jArray.getJSONObject(0);
JSONArray jGroupsArray = jData.getJSONArray("groups");
// get into the 'items' array
jData = jArray.getJSONObject(2);
JSONArray jItemsArray = jData.getJSONArray("items");
// get into the 'categories' array
jData = jArray.getJSONObject(4);
JSONArray jCategoriesArray = jData.getJSONArray("categories");
// get into the 'icon' value as String and use it as you please
jData = jArray.getJSONObject(4);
String iconURL = jData.getString("icon");
} catch (JSONException e) {
Log.e(Constants.LOG_TAG, "Error parsing data", e);
}
希望这有帮助
答案 2 :(得分:0)
请参阅JSON文档:http://www.json.org/javadoc/org/json/package-summary.html。这很简单。
在您的情况下,您必须将JSON字符串读取为JSON对象,然后将“response”解析为JSONObject,将“groups”分组为“response”中的JSONArray,遍历“groups”中包含的JSONObjects数组,将“Items”解析为JSONObject中的JSONArray,并将其解析为...
您应该能够立即访问该网址。