如何parsingJSON并将其值转换为数组?
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 。
它会打印configuration文件,约翰如果json是这样的:
{'profiles':'john'}
这很酷。 这很好,因为我可以使用这些variables。 但是,如果JSON是这样的:
{'profiles': [{'name':'john', 'age': 44}, {'name':'Alex','age':11}]}
在这种情况下,整个值将是数组。 基本上,我只是想抓住这个数组(在这个例子中是“value”),然后把它变成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)
以[
字符]开始。
希望这可以帮助。
你可以selectquick-jsonparsing器来满足你的需求
quick-jsonparsing器非常简单,灵活,速度非常快,可以自定义。 试试这个
[quick-jsonparsing器]( https://code.google.com/p/quick-json/ ) – quick-json特性 –
-
符合JSON规范(RFC4627)
-
高性能的JSONparsing器
-
支持灵活/可configuration的分析方法
-
任何JSON Heirarchy的键/值对的可configurationvalidation
-
易于使用#非常less的脚印
-
提高开发人员的便利性,便于追踪exception
-
可插入的自定义validation支持 – 键/值可以通过在遇到时configuration自定义validation器进行validation
-
validation和不validationparsing器支持
-
支持使用quick-jsonvalidationparsing器的两种types的configuration(JSON / XML)
-
需要JDK 1.5#不依赖于外部库
-
通过对象序列化支持Json生成
-
支持parsing过程中的集合typesselect
例如
JsonParserFactory factory=JsonParserFactory.getInstance(); JSONParser parser=factory.newJsonParser(); Map jsonMap=parser.parseJson(jsonString);