在android中解析json数组
我正在编写一个android代码来解析json数组。我不知道该怎么做。但是,我尝试分析数组 以下是我需要做的事情: 我想将“status”存储在一个变量中 另外,我想以字符串的形式迭代存储“ButtonImageUrl”、“ImageUrl”、“Title”、“Url” 如果有人能指导我该如何进行,那将非常有帮助在android中解析json数组,android,json,Android,Json,我正在编写一个android代码来解析json数组。我不知道该怎么做。但是,我尝试分析数组 以下是我需要做的事情: 我想将“status”存储在一个变量中 另外,我想以字符串的形式迭代存储“ButtonImageUrl”、“ImageUrl”、“Title”、“Url” 如果有人能指导我该如何进行,那将非常有帮助 { "first": { "message": "", "status": "Success" }, "second": [ { "Bu
{
"first": {
"message": "",
"status": "Success"
},
"second": [
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
},
{
"ButtonImageUrl": "string1",
"ImageUrl": "string2",
"Title": "string3",
"Url": "string4"
}
]
}
代码:
private void jsonrequest2()
{
request=newjsonarrayrequest(JSON_URL2,newresponse.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
尝试
{
jsonArray=null;
jsonArray=response.getJSONArray(“第二”);
//jsonObject=response.getJSONArray(“第二”);
}捕获(JSONException e){
e、 printStackTrace();
}
对于(inti=0;i首先,响应是一个JSONObject,而不是JSONArray。
您的代码应该是这样的
public void onResponse(JSONObject response) {
//Storing status into a variable
try{
JSONObject firstObject = response.getJSONObject("first");
String status = firstObject.getString("status");
//Accessing the JSONArray
JSONArray jsonArray = response.getJSONArray("second");
String mButtonImageUrl, mUrl, mImageUrl, mTitle;
for(int i=0; i<jsonArray.length(); i++){
JSONObject innerObject = jsonArray.getJSONObject(i);
mButtonImageUrl = innerObject.getString("ButtonImageUrl");
mUrl = innerObject.getString("Url");
mImageUrl = innerObject.getString("ImageUrl");
mTitle = innerObject.getString("Title");
//These variables will be updated in every iteration. Store them or use them as you want here.
}
}
catch(JSONException e){
e.printStackTrace();
}
}
//...
public void onResponse(JSONObject-response){
//将状态存储到变量中
试一试{
JSONObject firstObject=response.getJSONObject(“第一”);
字符串状态=firstObject.getString(“状态”);
//访问JSONArray
JSONArray JSONArray=response.getJSONArray(“第二”);
字符串mbutonimageurl、mUrl、mImageUrl、mTitle;
对于(int i=0;使用gson库到parson json到POJO您的响应
不是一个JSONArray
,它是一个JSONObject
@VladyslavMatviienko先生,您能检查更新的代码是否正确吗?同样不正确。您的json是json对象,而您正在执行JSONarraryRequest
@VladyslavMatviienko先生我已经将JSONArray响应更改为JSONObject响应,并相应地更改了代码。先生,您能看一下代码吗。
public void onResponse(JSONObject response) {
//Storing status into a variable
try{
JSONObject firstObject = response.getJSONObject("first");
String status = firstObject.getString("status");
//Accessing the JSONArray
JSONArray jsonArray = response.getJSONArray("second");
String mButtonImageUrl, mUrl, mImageUrl, mTitle;
for(int i=0; i<jsonArray.length(); i++){
JSONObject innerObject = jsonArray.getJSONObject(i);
mButtonImageUrl = innerObject.getString("ButtonImageUrl");
mUrl = innerObject.getString("Url");
mImageUrl = innerObject.getString("ImageUrl");
mTitle = innerObject.getString("Title");
//These variables will be updated in every iteration. Store them or use them as you want here.
}
}
catch(JSONException e){
e.printStackTrace();
}
}
//...