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可以使用的实际数组。我怎样才能做到这一点?谢谢。
例如:
您将必须执行以下操作:
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)以[字符开头的字符)。
charAt(0)
[
希望这可以帮助。