获取json android数据

时间:2018-12-10 05:15:29

标签: android json fetch

如何使用json获取此数据。它是对象还是数组?我很困惑。以下是我的数据以及实现的内容。我无法获得任何价值。请帮助我获取值。

    JSONObject jobject = new JSONObject(response);
    JSONArray jsonArray = jobject.getJSONArray("variety");
    for (int i =0; i<=jsonArray.length();i++){
        jobject=  jsonArray.getJSONObject(i);
        txt_today_671.setText(jobject.getString("variety.coc671"));
      }

     {
    "status": 200,
    "variety": {
        "coc671": {
            "today": 0,
            "todate": 0
        },
        "co92005": {
            "today": 0,
            "todate": 0
        },
     },
        "others": {
            "today": 0,
            "todate": 0
        }
    },
    "distance": {
        "0to20": {
            "today": 0,
            "todate": 0
        },
        "20to40": {
            "today": 0,
            "todate": 0
        },
    "above100": {
            "today": 0,
            "todate": 0
        }
    }
}

2 个答案:

答案 0 :(得分:3)

这里,varietydistance不是jsonArray,它是一个jsonObject。

要遍历jsonObject,请遵循以下机制-

JSONObject varietyObject = jobject.getJSONObject("variety");
Iterator<JSONObject> keysVariety = varietyObject.keys();

while(keysVariety.hasNext()) {
String keyVariety = keysVariety.next();
    JSONObject objectVariety = varietyObject.getJSONObject(keyVariety);
    // here you will get inner String/int values
    int today = objectVariety.getInt("today");
    int todate = objectVariety.getInt("todate");
}

对距离对象执行相同操作

JSONObject distanceObject = jobject.getJSONObject("distance");
Iterator<JSONObject> keysDistance = distanceObject.keys();

while(keysDistance.hasNext()) {
String keyDistance = keysDistance.next();
    JSONObject objectDistance = distanceObject.getJSONObject(keyDistance);
    // here you will get inner String/int values
    int today = objectDistance.getInt("today");
    int todate = objectDistance.getInt("todate");
}

始终记住JSONArray以[开头,而JSONObject以{开头

答案 1 :(得分:0)

只是为了向您说明一点,在演示中,这里可能有错别字,

JSONObject jobject = new JSONObject(response); // here you are getting all your object in one object
JSONObject varityObject= jobject.getJSONObject("variety");
//NOW USE varityObject to get coc671 and  co92005
//Similarly 
JSONObject distanceObject= jobject.getJSONObject("distance");
// now use distanceObject to get its items