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

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


慕的地6264312
浏览 2728回答 2
2回答

慕的地8271018

为你的例子:{'profiles':&nbsp;[{'name':'john',&nbsp;'age':&nbsp;44},&nbsp;{'name':'Alex','age':11}]}你将不得不做这样的事情:JSONObject&nbsp;myjson&nbsp;=&nbsp;new&nbsp;JSONObject(the_json);JSONArray&nbsp;the_json_array&nbsp;=&nbsp;myjson.getJSONArray("profiles");这将返回数组对象。然后迭代将如下:&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;size&nbsp;=&nbsp;the_json_array.length(); &nbsp;&nbsp;&nbsp;&nbsp;ArrayList<JSONObject>&nbsp;arrays&nbsp;=&nbsp;new&nbsp;ArrayList<JSONObject>(); &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;size;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;another_json_object&nbsp;=&nbsp;the_json_array.getJSONObject(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Blah&nbsp;blah&nbsp;blah... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrays.add(another_json_object); &nbsp;&nbsp;&nbsp;&nbsp;}//FinallyJSONObject[]&nbsp;jsons&nbsp;=&nbsp;new&nbsp;JSONObject[arrays.size()];arrays.toArray(jsons);//The&nbsp;end...您必须确定数据是否是数组(只需检查charAt(0)以[字符开头)。希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java