2013-06-20 169 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