如何解析我的json结果

时间:2012-01-03 10:25:55

标签: java android json

我在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);

}}}}

3 个答案:

答案 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,并将其解析为...

您应该能够立即访问该网址。

相关问题