如何解析JSON并将其值转换为数组?public static void parseProfilesJson(String the_json){
try {
JSONObject myjson = new JSONObject(the_json);
JSONArray nameArray = myjson.names();
JSONArray valArray = myjson.toJSONArray(nameArray);
for(int i=0;i<valArray.length();i++)
{
String p = nameArray.getString(i) + "," + ValArray.getString(i);
Log.i("p",p);
}
} catch (JSONException e) {
e.printStackTrace();
}
}如您所见,此示例代码将打印出JSON 的KEY,然后是JSONS的VALUES。它将打印配置文件,如果json是这样的约翰:{'profiles':'john'}这很酷。那很好,因为我可以使用这些变量。但是,如果JSON是这样的:{'profiles': [{'name':'john', 'age': 44}, {'name':'Alex','age':11}]}在这种情况下,整个值将是数组。基本上,我只想获取该数组(在这种情况下是“值”)...并将其转换为JAVA可以使用的实际数组。我怎样才能做到这一点?谢谢。
2 回答

慕的地8271018
TA贡献1796条经验 获得超4个赞
为你的例子:
{'profiles': [{'name':'john', 'age': 44}, {'name':'Alex','age':11}]}
你将不得不做这样的事情:
JSONObject myjson = new JSONObject(the_json);JSONArray the_json_array = myjson.getJSONArray("profiles");
这将返回数组对象。
然后迭代将如下:
int size = the_json_array.length(); ArrayList<JSONObject> arrays = new ArrayList<JSONObject>(); for (int i = 0; i < size; i++) { JSONObject another_json_object = the_json_array.getJSONObject(i); //Blah blah blah... arrays.add(another_json_object); }//FinallyJSONObject[] jsons = new JSONObject[arrays.size()];arrays.toArray(jsons);//The end...
您必须确定数据是否是数组(只需检查charAt(0)
以[
字符开头)。
希望这可以帮助。
添加回答
举报
0/150
提交
取消