数组中有数组:
Array
(
[0] => Array ( [0] => v1 [1] => v2 [2] => v3 )
[1] => Array ( [0] => v1 [1] => v2 [3] => v3 )
[2] => Array ( [0] => v1 [1] => v2 [10] => v3 )
[4] => Array ( [0] => v1 [1] => v2 [3] => v3 )
)
在android上json_encode
之后我得到以下内容:
{
«0»: [ «v1», «v2», «v3» ],
«1»: { «0»:«v1», «1»:«v2», «3»:«v3», },
«2»: { «0»:«v1», «1»:«v2», «10»:«v3» },
«4»: { «0»:«v1», «1»:«v2», «3»:«v2» }
}
JSONArray jList = jb.getJSONArray(response); //exception is not array
有没有一种好方法可以在Android上解析为Array[Array[]]
?
答案 0 :(得分:0)
这是因为您有不连续的索引。如果使用
“重新编号”数组$a = array_values($a);
你会有
Array
(
[0] => Array ( [0] => v1 [1] => v2 [2] => v3 )
[1] => Array ( [0] => v1 [1] => v2 [3] => v3 )
[2] => Array ( [0] => v1 [1] => v2 [10] => v3 )
[3] => Array ( [0] => v1 [1] => v2 [3] => v3 )
)
因此json_encode
将创建
[ ["v1", "v2", "v3"], { "0": "v1", ...}, ... ]
如果你想拥有内部数组,你必须确保内部数组也有连续的索引。
如果您无法更改PHP代码,唯一的方法是将其解析为JSON对象,并使用keys()
迭代属性并单独选择值。