如何解析JSON并将其值转换为Array?

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可以使用的实际数组。我怎样才能做到这一点?谢谢。

回答:

例如:

{'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);

}

//Finally

JSONObject[] jsons = new JSONObject[arrays.size()];

arrays.toArray(jsons);

//The end...

您将必须确定数据是否为数组(只需检查charAt(0)以[字符开头的字符)。

希望这可以帮助。

以上是 如何解析JSON并将其值转换为Array? 的全部内容, 来源链接: utcz.com/qa/422025.html

回到顶部