如何使用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
}
}
}
答案 0 :(得分:3)
这里,variety
和distance
不是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