【问题标题】:How can parse my json result如何解析我的 json 结果
【发布时间】:2012-01-03 10:25:54
【问题描述】:

我在安卓系统中工作。我想解析我的 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
              }
           }

        ]
     }
  ]

} }

我想使用 iconimageview 中显示图标。 请建议我如何获取此图标值以及如何在 imageview 中使用此图标 url。

提前谢谢你。

我正在尝试这个,但它仍然会产生错误:- 这是我的代码:- 但仍在创建错误:-

JSONArray groups= (JSONArray) jsonObj.getJSONObject("response").getJSONArray("groups");

int length=groups.length(); if (length > 0){ for (int i = 0; i

{

 JSONObject group= (JSONObject) groups.get(i); JSONArray items =(JSONArray) group.getJSONArray("items"); 

for (int j = 0; j

{

JSONObject item = (JSONObject) items.get(j);

JSONObject iconobject=(JSONObject) item.getJSONObject("categories");//this is created error that JSON.typeMismatch

venue.icon=iconobject.getString("icon");

}}}}

【问题讨论】:

    标签: java android json


    【解决方案1】:

    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");
    

    获得网址后,您必须先下载图像,然后才能使用它。描述了如何从 url 下载图像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);
    

    【讨论】:

      【解决方案2】:

      试试这个:

      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);
      }
      

      希望对你有帮助

      【讨论】:

      • @micha 的帖子有很好的解释。获得 iconURL 字符串后,只需按照他的说明更新 ImageView
      【解决方案3】:

      请参阅 JSON 文档:http://www.json.org/javadoc/org/json/package-summary.html。真的很简单。

      在您的情况下,您必须将 JSON 字符串读取为 JSON 对象,然后将“response”解析为 JSONObject,将“groups”解析为“response”中的 JSONArray,遍历“groups”中包含的 JSONObject数组,将“Items”解析为 JSONObject 中的 JSONArray,然后继续...

      您应该能够立即访问该 URL。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        • 2012-05-02
        • 2013-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多