Java 无法正确解析JSON数组
我从一个webserveice得到以下Java 无法正确解析JSON数组,java,android,json,Java,Android,Json,我从一个webserveice得到以下字符串响应: [ [ { "dgtype": "adhoc", "subtypename": "Person", "subtypedesc": "null", "summary": "Junaid (Self)", "subtype": "person", "birthdate": "1995
字符串响应:
[
[
{
"dgtype": "adhoc",
"subtypename": "Person",
"subtypedesc": "null",
"summary": "Junaid (Self)",
"subtype": "person",
"birthdate": "1995-1-23 ",
"name": "Junaid (Self)"
},
{
"dgtype": "adhoc",
"subtypename": "Job",
"subtypedesc": "null",
"summary": "Exa",
"subtype": "person",
"birthdate": "2010-01-30",
"name": "Junaid (Self)"
}
]
]
在Java中,我尝试执行以下操作:
JSONArray jArray = new JSONArray(result);
System.out.println("Response: "+jArray);
for(int i = 0; i<= jArray.length(); i++){
try {
JSONObject oneObject = jArray.getJSONObject(i);
String dgtype = oneObject.getString("dgtype");
String subtypename = oneObject.getString("subtypename");
String subtypedesc = oneObject.getString("subtypedesc");
String summary = oneObject.getString("summary");
String subtype = oneObject.getString("subtype");
String birthdate = oneObject.getString("birthdate");
String name = oneObject.getString("name");
System.out.println(i);
System.out.println("dgtype: "+dgtype);
System.out.println("subtypename: "+subtypename);
System.out.println("subtypedesc: "+subtypedesc);
System.out.println("summary: "+summary);
System.out.println("subtype: "+subtype);
System.out.println("birthdate: "+birthdate);
System.out.println("name: "+name);
} catch (JSONException e) {
System.out.println("JSON Exception: "+e);
}
}
我正在举一个例子。我哪里做错了?还要注意异常代码段中缺少的长括号 您有两个阵列,一个在另一个阵列中:
[
[
//Your objects
]
]
您可以更改数据格式,使其只有一个数组,也可以修改代码:
JSONArray outer = new JSONArray(result);
JSONArray jArray = outer.getJSONArray(0);
您有两个阵列,一个在另一个阵列中:
[
[
//Your objects
]
]
您可以更改数据格式,使其只有一个数组,也可以修改代码:
JSONArray outer = new JSONArray(result);
JSONArray jArray = outer.getJSONArray(0);
jArray
JSONArray包含另一个JSONArray
,其中包含JSONObeject
,因此首先获取JSONArray,然后从中获取所有JSONObject:
JSONArray oneArray = jArray.getJSONArray(i);
for(int j = 0; j<= oneArray.length(); j++){
JSONObject oneObject = oneArray.getJSONObject(j);
// get dgtype,subtypename,subtypedesc,.. from oneObject
}
JSONArray oneArray=jArray.getJSONArray(i);
对于(int j=0;jjArray
JSONArray包含另一个JSONArray
,其中包含JSONObeject
,因此首先获取JSONArray,然后从中获取所有JSONObject:
JSONArray oneArray = jArray.getJSONArray(i);
for(int j = 0; j<= oneArray.length(); j++){
JSONObject oneObject = oneArray.getJSONObject(j);
// get dgtype,subtypename,subtypedesc,.. from oneObject
}
JSONArray oneArray=jArray.getJSONArray(i);
对于(intj=0;j,正如它所说的,'JSONArray不能转换为JSONObject',在另一个数组中有一个数组,所以
JSONArray jArray1 = new JSONArray(result);
然后
现在它可以工作了。正如它所说,“JSONArray无法转换为JSONObject”,您在另一个数组中有一个数组,所以
JSONArray jArray1 = new JSONArray(result);
for(int i = 0; i<= jArray.length(); i++){
final JSONArray innerArray = jArray.getJSONArray(i);
for (int a = 0; a < innerArray.length(); a++) {
try {
final JSONObject oneObject = innerArray.getJSONObject(i);
String dgtype = oneObject.getString("dgtype");
String subtypename = oneObject.getString("subtypename");
String subtypedesc = oneObject.getString("subtypedesc");
String summary = oneObject.getString("summary");
String subtype = oneObject.getString("subtype");
String birthdate = oneObject.getString("birthdate");
String name = oneObject.getString("name");
System.out.println(i);
System.out.println("dgtype: "+dgtype);
System.out.println("subtypename: "+subtypename);
System.out.println("subtypedesc: "+subtypedesc);
System.out.println("summary: "+summary);
System.out.println("subtype: "+subtype);
System.out.println("birthdate: "+birthdate);
System.out.println("name: "+name);
} catch (JSONException e) {
System.out.println("JSON Exception: "+e);
}
}
}
然后
现在它可以工作了。for(int i=0;ifor(int i=0;我想我会改变数据格式,我刚刚意识到相同的!:)我想我会改变数据格式,我刚刚意识到相同的!:)
for(int i = 0; i<= jArray.length(); i++){
final JSONArray innerArray = jArray.getJSONArray(i);
for (int a = 0; a < innerArray.length(); a++) {
try {
final JSONObject oneObject = innerArray.getJSONObject(i);
String dgtype = oneObject.getString("dgtype");
String subtypename = oneObject.getString("subtypename");
String subtypedesc = oneObject.getString("subtypedesc");
String summary = oneObject.getString("summary");
String subtype = oneObject.getString("subtype");
String birthdate = oneObject.getString("birthdate");
String name = oneObject.getString("name");
System.out.println(i);
System.out.println("dgtype: "+dgtype);
System.out.println("subtypename: "+subtypename);
System.out.println("subtypedesc: "+subtypedesc);
System.out.println("summary: "+summary);
System.out.println("subtype: "+subtype);
System.out.println("birthdate: "+birthdate);
System.out.println("name: "+name);
} catch (JSONException e) {
System.out.println("JSON Exception: "+e);
}
}
}