2013-06-20 137 views
-4

将电子邮件参数发送到服务器时,响应显示为下面的字符串。从JSON数组读取数据android

[ 
{ 
    "nid": "478", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1" 
}, 
{ 
    "nid": "480", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1"  
} 
] 

我想读这个响应字符串格式到jsonobject。我是第一次与json合作。

+0

使用JsonArray类。解析json并创建JSON对象数组 –

+0

是否有效json。请点击这里http://jsonlint.com/ – Raghunandan

+0

使用[new JSONObject(string)](http://developer.android.com/reference/org/json/JSONObject.html#JSONObject%28java.lang.String%29) ... – devconsole

回答

0

它不是有效的JSON,最后还有一个额外的}。

[ 
    { 
    "nid": "478", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1" 
    }, 
    { 
    "nid": "480", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1" 
    } 
} <-- this is invalid 
] 

您可以检查此:http://jsonviewer.stack.hu/

这个问题有JSON解析更多的提示:How to parse JSON in Android

+0

这是一个json格式的例子,我想将它转换为JSNOBject,以获得 – Dimitri

+0

的值很酷,不错的在线JSON检查器! – user2340612

2

删除这个多余的花括号 '}'

您可以参考下面的代码为json

[ 
{ 
    "name" : "Test", 
    "id" : 512 
}, { 
    "name" : "Test2", 
    "id" : 573 
}, { 
    "name" : "Test3", 
    "id" : 585 
} 
] 

Parse Like thi小号

ArrayList<String> arrProducts = new ArrayList<String>(); 

try { 
    JSONArray valarray = new JSONArray(jsonstring); 
    for (int i = 0; i < valarray.length(); i++) { 

     String str = valarray.getJSONObject(i).getString("name"); 
     arrProducts.add(str); 
    } 
} catch (JSONException e) { 
    Log.e("JSON", "There was an error parsing the JSON", e); 
} 
+0

如果我不得不添加id字段,那么我需要setter和getter方法? – Dimitri

+0

是的,你需要创建方法。你可以参考这个答案http://stackoverflow.com/a/16938507/1441666 – Nirali

1

试试这个

jString=[{"nid":"478","field_mc_bacheliers_value":"0","field_mc_defi_collectif_value":"1"},{"nid":"480","field_mc_bacheliers_value":"0","field_mc_defi_collectif_value":"1"}}] 
    jObject = new JSONObject(jString); 
    String id = jObject .getString("id"); 

希望它可以帮助

5

考虑以下去除多余的花括号}

[ 
{ 
    "nid": "478", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1" 
}, 
{ 
    "nid": "480", 
    "field_mc_bacheliers_value": "0", 
    "field_mc_defi_collectif_value": "1" 
} 
] 

为了解析

JSONArray myListsAll= new JSONArray(myjsonstring); 
    for(int i=0;i<myListsAll.length();i++){ 
    JSONObject jsonobject= (JSONObject) myListsAll.get(i); 
    String id=jsonobject.optString("nid"); 
    String value1=jsonobject.optString("field_mc_bacheliers_value"); 
    String value2=jsonobject.optString("field_mc_defi_collectif_value"); 
    System.out.println("nid="+id); 
    System.out.println("value1="+value1); 
    System.out.println("value2="+value2); 
    } 

输出

nid=478 
value1=0 
value2=1 
nid=480 
value1=0 
value2=1