为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2019-07-27 09:44:21
如何解析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)[字符开头)。

希望这可以帮助。


查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 2727 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号