Mon*_*ali 5 android json android-volley
我以以下格式嵌套了json数组。我正在使用凌空库进行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"
}
]}
Run Code Online (Sandbox Code Playgroud)
以下是我在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);
}
});
Run Code Online (Sandbox Code Playgroud)
但是我在Android中解析时遇到错误。错误是-JSONObject无法转换为JSONArray
任何人都可以提供示例代码来解析此json数组。
提前致谢
这是您的问题解决方案,请使用以下代码
try {
JSONObject jsonObject = new JSONObject("response");
JSONArray jsonArray = jsonObject.getJSONArray("City");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
String name = object.getString("name");
if (object.length() != 0) {
Iterator<String> key = object.keys();
while (key.hasNext()) {
String cityname = key.next();
JSONArray ja = object.getJSONArray(cityname);
for (int j = 0; j < ja.length(); j++) {
JSONObject object1 = ja.getJSONObject(j);
String area = object1.getString("area");
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
并尝试使您的 JSON 格式相同。
| 归档时间: |
|
| 查看次数: |
3496 次 |
| 最近记录: |