2015-10-16 85 views
-1
String json =  
[ 
{"a":{"aa":"string","ab":"string"} }, 
{"b":{"ba":"string","bb":"string"} } 
] 

我想解析这个数据使用JsonObject。 当我使用此代码:如何阅读这个JSON

JSONStringer Js= new JSONStringer(json); 
Log.d("json", ""+Js); 

它给了我这样的:(JSON的第一线,但我希望所有数据)

{"a":{"aa":"string","ab":"string"} } 

我如何与Android阅读本?

回答

3

这是一个JsonArray不是一个简单的JsonObject

试试这个:

JSONArray a = new JSONArray(json); 
    for (int i = 0; i < a.length(); i++) { 
     JSONObject row = a.getJSONObject(i); 
     Log.d("json", ""+row); 
    } 
+0

抛出exeption。值... json ...是JSONobject类型不可转换的JSON数组。我认为这是关于串行JSON。我正在寻找它。 –

+0

你已经发布了绝对的JsonArray。我不确定什么是串行JSON。 – pgiitu

0

其实,这JSON是一种奇怪的,因为它包装的对象数组到一个额外的对象的每个( “A”和“b”),这将很难解析。它应该是这样的:

字符串JSON = [{ “名”: “A”, “AA”: “串”, “AB”: “串”}, { “名”:“B ”, “BA”: “串”, “BB”: “串”}]

然后你会分析它是这样的:

JSONArray root = new JSONArray(jsonString); //this is the above string 
for(int i = 0; i < root.length(); i++){ 
    JSONObject current = root.getJSONObject(i); 

    //Do the parsing here 
}