我正在研究json解析项目。错误显示为json数组无法转换为json对象。这是json视图。
{
"State Name": [
[
{
"state_name": "New South Wales (NSW)"
}
],
[
{
"state_name": "Western Australia (WA)"
}
]
]
}
java代码是:
try {
JSONArray statesnames = json.getJSONArray(TAG_STATE_NAME);
Toast.makeText(getApplicationContext(), ""+statesnames.length(), 3000).show();
// looping through All Contacts
for(int i = 0; i < statesnames.length(); i++){
JSONObject c = statesnames.getJSONObject(i);
// Storing each json item in variable
String name = c.getString(TAG_NAME);
}
答案 0 :(得分:0)
如果您尝试在一个响应中发送两个数组,则可以这样做:
[
[{"state_name":"New South Wales (NSW)"}],
[{"state_name":"Western Australia (WA)"}]
]
首先将您的JSONObject作为
JSONObject result= new JSONObject(json);
JSONArray arr= result.getJSONArray("State Name");
整个JSON
字符串是JSONArray
:
getJSONArray(0)
包含JSONObjects
state_name
,如下所示:
for (int i = 0; i < arr.length(); i++) {
JSONArray firstArry = arr.getJSONArray(i);
for (int j = 0; j < firstArry.length(); j++) {
JSONObject secondarr= firstArry.getJSONObject(j);
System.out.println("state_name result: "+secondarr.getString("state_name"));
}
}
答案 1 :(得分:0)
试试这个..
{
"State Name":[ --> JSONArray
[ --> JSONArray
{ --> JSONObject
"state_name":"New South Wales (NSW)"
}
],
[
{
"state_name":"Western Australia (WA)"
}
]
]
}
示例:
JSONObject json = new JSONObject(response);
JSONArray statesnames = json.getJSONArray("State Name");
for (int i1 = 0; i1 < statesnames.length(); i1++) {
JSONArray jsonarray = statesnames.getJSONArray(i1);
for (int i2 = 0; i2 < jsonarray.length(); i2++) {
JSONObject jsonobject = jsonarray.getJSONObject(i2);
System.out.println("state_name : "+jsonobject.getString("state_name"));
}
}