2013-12-18 129 views
0

我如何提取下面的json並將其保存在arraylist中。提取並保存Json到Arraylist Android

{ 
      "trains": { 
       "train": [ 
        { 
         "@id": 1000000103, 
         "@version": 1, 
         "@status": "active", 
         "@name": "dffffff", 
         "@description": "ffffff half of the nineteenth century.", 
         "@city": "fff", 
         "@phone": "+230 595-1454", 
         "@email": "[email protected]", 
         "@website": "www4u", 
         "@latitude": -5.2882, 
         "@longitude": 3.499, 
         "@defaultLocale": "", 
         "@holes": 48, 
         "@par": 72, 
         "@slope": 0, 
         "@distance": 5.005273, 
         "circuits": { 
          "circuit": [] 
         }, 
         "localizations": { 
          "localization": [] 
         } 
        }, 
        { 
         "@id": 1000000105, 
         "@version": 1, 
         "@status": "active", 
         "@name": " xClub", 
         "@description": "", 
         "@city": " xlet", 
         "@phone": "+44465\t", 
         "@email": "", 
         "@website": "wweffl.com", 
         "@latitude": -2.040318, 
         "@longitude": 54548, 
         "@defaultLocale": "", 
         "@holes": 18, 
         "@par": 32, 
         "@slope": 0, 
         "@distance": 2441673, 
         "circuits": { 
          "circuit": [] 
         }, 
         "localizations": { 
          "localization": [] 
         } 
        } 
       ] 
      } 

    } 

我的工作

try { 

       jobj_trouve_train = new JSONObject(reponse_trouve_train); 

       String jsonobj = jobj_trouve_golf.getString("trains"); 
       //String jsonobj1 = jobj_trouve_golf.getString("train"); 

       //jobj_trouve_train = new JSONObject(reponse_trouve_train); 

       //jsonArray = jobj_trouve_golf.getJSONArray("trains"); 
       //jsonArray= new JSONArray(jsonobj); 

       //System.out.println("jsonArray "+jsonArray); 

      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

回答

2

試試這個..

try { 

       jobj_trouve_train = new JSONObject(reponse_trouve_train); 

       JSONObject jsonobj = jobj_trouve_train.getJSONObject("trains"); 
       JSONArray jsonobj1 = jsonobj.getJSONArray("train"); 

      for(int i = 0;i< jsonobj1.length();i++){ 
       JSONObject jsonj = jsonobj1.getJSONObject(i); 

       System.out.println("@id "+jsonj.getString("@id")); 
       // Same for remaining all 
       } 

      } catch (JSONException e) { 
       // TODO Auto-generated catch block     

        e.printStackTrace(); 
     } 
+0

謝謝你這一行JSONArray jsonobj1 = jsonobj.getJSONArray(「train」);是解決方案aligato – Dimitri

0
JSONObject trains = jobj_trouve_train.getJSONObject("trains"); 
JSONArray trainArray = trains.getJSONArray("train"); 

JSONObject train1 = trainArray.getJSONObject(0); 
... 

,如果我沒有得到混淆,也許這將是一個正確的

0
JSONArray jasonArray = new JSONArray(result.getProperty("trains").toString()); 

for(int i = 0; i < jasonArray。長度();我++){

JSONObject jsonObj = jasonArray.optJSONObject(i); 
trainObject = new JSONObject(jsonObj.optString("train").toString()); 
int id = trainObject.optInt("id"); 

and so on.. 

}

0
public Object void toObject(String jsonMsg) throws JSONException { 
    JSONObject trains= (JSONObject) new JSONTokener(jsonMsg).nextValue(); 
    if(trains.has("trains")){ 
       JSONArray train = (JSONArray) new JSONTokener(object.getString("train")).nextValue(); 
       for (int t = 0; t < jsonArray.length(); t++) { 
        String temp = jsonArray.getJSONObject(t).toString(); 
        JSONObject object = (JSONObject) new JSONTokener(temp).nextValue(); 
        if(object.has("@id")) 
         object.getString("@id"); 
        // now similar procedure of reading 
        // read values and save it in an "object" 
    }  
    return savedObject; 
} 

- 測試,我試圖修改代碼以匹配您的JSON數據。完成剩下的工作。