【发布时间】:2016-11-26 12:15:58
【问题描述】:
我嵌套了以下格式的 json 数组。我正在使用 volley 库进行 JSON 解析。
{
"City": [{
"name": "Mumbai",
"Mumbai": [{
"area": "andheri",
"diler": [{
"DName": "yuvraj"
}]
}, {
"area": "jogeshwari"
}, {
"area": "goregaon"
}]
},
{
"name": "Nashik",
"Nashik": [{
"area": "clg rd",
"diler": [{
"DName": "yuvraj"
}]
}, {
"area": "GP RD",
"diler": [{
"DName": "Roshan"
}]
}, {
"area": "CBS",
"diler": [{
"DName": "Deepak"
}]
}]
}, {
"name": "Bengaluru"
}
]}
以下是我在android中编写的代码。
jsonURL = "http://192.168.1.11/cycle_webservices/testing.json";
buttonReq.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(
jsonURL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for (int i = 0; i < response.length(); i++) {
JSONObject jsonObject = response.getJSONObject(i);
String name = jsonObject.getString("name");
String area = jsonObject.getString("area");
String diler = jsonObject.getString("diler");
textView.append("\nCity: " + name + "\nArea: " + area + "\nDealer: " + diler + "\n");
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("VOLLEY", "ERROR");
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
}
);
requestQueue.add(jsonArrayRequest);
}
});
但是我在 Android 中解析它时遇到错误。 错误是 - JSONObject 无法转换为 JSONArray
谁能提供解析这个json数组的示例代码。
提前致谢
【问题讨论】:
-
请添加您迄今为止尝试过的代码来解析响应
-
好的,让我编辑我的问题
-
请将您的代码粘贴到这里,只有别人才能理解您的问题,您会得到快速的答复。
-
我认为您正在将一个对象城市解析为一个城市数组,将城市更改为对象,这样问题就可以解决了。
-
您的响应是 JsonObject 并且您正在解析 JsonArray 这就是出现此错误的原因。在 JsonArrayRequest @Monali 的 volley 中调用 JsonObjectRequest
标签: android json android-volley