获取json android数据
如何使用json获取此数据。它是对象还是数组?我很困惑。下面是我的数据和我实施的内容。我无法获取任何值。请帮我取值获取json android数据,android,json,fetch,Android,Json,Fetch,如何使用json获取此数据。它是对象还是数组?我很困惑。下面是我的数据和我实施的内容。我无法获取任何值。请帮我取值 JSONObject jobject = new JSONObject(response); JSONArray jsonArray = jobject.getJSONArray("variety"); for (int i =0; i<=jsonArray.length();i++){ jobject= jsonArray.getJ
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
}
}
}
JSONObject jobject=新的JSONObject(响应);
JSONArray JSONArray=jobject.getJSONArray(“变种”);
对于(inti=0;i这里,variation
和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 varietyObject=jobject.getJSONObject(“variety”);
迭代器keysVariation=varietyObject.keys();
while(keysVariation.hasNext()){
字符串keyVariation=keyVariation.next();
JSONObject objectVariety=varietyObject.getJSONObject(keyVariety);
//这里您将获得内部字符串/int值
inttoday=objectvariation.getInt(“today”);
inttodate=objectvariation.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");
}
JSONObject distance object=jobject.getJSONObject(“距离”);
迭代器keysDistance=distanceObject.keys();
while(keysDistance.hasNext()){
字符串keydestance=keydestance.next();
JSONObject objectDistance=distanceObject.getJSONObject(keyDistance);
//这里您将获得内部字符串/int值
inttoday=objectDistance.getInt(“today”);
int todate=objectDistance.getInt(“todate”);
}
请记住,JSONArray以[
开头,JSONObject以{
开头,这里,多样性
和距离
不是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 varietyObject=jobject.getJSONObject(“variety”);
迭代器keysVariation=varietyObject.keys();
while(keysVariation.hasNext()){
字符串keyVariation=keyVariation.next();
JSONObject objectVariety=varietyObject.getJSONObject(keyVariety);
//这里您将获得内部字符串/int值
inttoday=objectvariation.getInt(“today”);
inttodate=objectvariation.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");
}
JSONObject distance object=jobject.getJSONObject(“距离”);
迭代器keysDistance=distanceObject.keys();
while(keysDistance.hasNext()){
字符串keydestance=keydestance.next();
JSONObject objectDistance=distanceObject.getJSONObject(keyDistance);
//这里您将获得内部字符串/int值
inttoday=objectDistance.getInt(“today”);
int todate=objectDistance.getInt(“todate”);
}
请始终记住,JSONArray以[
开头,JSONObject以{
开头。仅举一点例子,演示中可能会出现打字错误
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
仅举一点例子,演示中可能会出现打字错误
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
json对象从{}开始,数组从[]开始,所以现在再看一遍,告诉我们是什么it@Shararti卡基-所有都是对象,现在你可以得到你想要的want@SharartiKAKI-帮助我获取值..而不是JSONArray JSONArray=jobject.getJSONArray(“变种”)
你应该像JSONObject object=jobject.getJSONObject(“variation”);
variation是JSONObject
而不是JSONArray
在{}中包装的所有东西都是对象,在[]中包装的所有东西都是对象是一个数组。你可以迭代对象而不是循环。看看这个答案,json对象从{}开始,数组从[]开始,所以现在再看一次,告诉我是什么it@Shararti卡基-所有都是对象,现在你可以得到你想要的want@SharartiKAKI-帮助我获取值..而不是JSONArray JSONArray=jobject.getJSONArray(“变化”);
您应该像JSONObject object=jobject.getJSONObject(“变化”)那样获取它
variety是JSONObject
notJSONArray
包装在{}中的一切都是对象,包装在[]中的一切都是对象是一个数组。您可以在对象上迭代而不是循环。请查看此答案,它应该是迭代器而不是迭代器。对于此错误,我深表歉意。请检查我更新的答案,如果它有助于您解决问题,请接受答案。:)@Exigente05这应该是注释而不是答案。@Exigente05-我无法获取距离值检查您的json是否有效-我已更改了某些内容以使其有效上面的代码正在工作-变量命名几乎没有更改。请参阅更新的回答它应该是迭代器而不是迭代器。对于此错误,请检查我更新的答案如果这有助于您解决问题,请接受答案。@Exigente05这应该是注释而不是答案。@Exigente05-我无法获取距离值检查您的json是否有效-我已更改了一些内容以使其有效上面的代码正在工作-变量命名几乎没有更改。请参阅更新的答案