jsonArray.length() 没有给出正确数量的数组元素
jsonArray.length() not given the right number of array element
我正在使用 org.json 解析器。
我使用 jsonObject.getJSONArray(key)
得到一个 json 数组。
问题是 jsonArray.length()
返回我 1
而我的 json 数组有 2 个元素,我做错了什么?
String key= "contextResponses";
JSONObject jsonObject = new JSONObject(jsonInput);
Object value = jsonObject.get("contextResponses");
if (value instanceof JSONArray){
JSONArray jsonArray = (JSONArray) jsonObject.getJSONArray(key);
System.out.println("array length is: "+jsonArray.length());/*the result is 1! */
}
这是我的 json:
{
"contextResponses" : [
{
"contextElement" : {
"type" : "ENTITY",
"isPattern" : "false",
"id" : "ENTITY3",
"attributes" : [
{
"name" : "ATTR1",
"type" : "float",
"value" : ""
}
]
},
"statusCode" : {
"code" : "200",
"reasonPhrase" : "OK"
}
}
]
}
您的数组只包含一个对象,因此长度正确:
"contextResponses" : [
{
... content of the object ...
}
]
结果完全正常,因为 JSONArray
只包含一个 JSONObject
。要获取您要查找的 JSONObject
的 length
,请使用:
// Get the number of keys stored within the first JSONObject of this JSONArray
jsonArray.getJSONObject(0).length();
//----------------------------
{
"contextResponses" : [
// The first & only JSONObject of this JSONArray
{
// 2 JSONObjects
"contextElement" : {
// 1
},
"statusCode" : {
// 2
}
}
]
}
我正在使用 org.json 解析器。
我使用 jsonObject.getJSONArray(key)
得到一个 json 数组。
问题是 jsonArray.length()
返回我 1
而我的 json 数组有 2 个元素,我做错了什么?
String key= "contextResponses";
JSONObject jsonObject = new JSONObject(jsonInput);
Object value = jsonObject.get("contextResponses");
if (value instanceof JSONArray){
JSONArray jsonArray = (JSONArray) jsonObject.getJSONArray(key);
System.out.println("array length is: "+jsonArray.length());/*the result is 1! */
}
这是我的 json:
{
"contextResponses" : [
{
"contextElement" : {
"type" : "ENTITY",
"isPattern" : "false",
"id" : "ENTITY3",
"attributes" : [
{
"name" : "ATTR1",
"type" : "float",
"value" : ""
}
]
},
"statusCode" : {
"code" : "200",
"reasonPhrase" : "OK"
}
}
]
}
您的数组只包含一个对象,因此长度正确:
"contextResponses" : [
{
... content of the object ...
}
]
结果完全正常,因为 JSONArray
只包含一个 JSONObject
。要获取您要查找的 JSONObject
的 length
,请使用:
// Get the number of keys stored within the first JSONObject of this JSONArray
jsonArray.getJSONObject(0).length();
//----------------------------
{
"contextResponses" : [
// The first & only JSONObject of this JSONArray
{
// 2 JSONObjects
"contextElement" : {
// 1
},
"statusCode" : {
// 2
}
}
]
}