2015-10-20 45 views
-1

顯示我有這樣一個JSON:變化的JSONObject到ArrayList和在列表視圖

{ 
    "Output": [ 
     { 
      "Description": "Desc1", 
      "Amount": 40, 
      "TotalQuota": 40, 
      "QuotaPerOne": 2 
     }, 
     { 
      "Description": "Desc2", 
      "Amount": 50, 
      "TotalQuota": 60, 
      "QuotaPerOne": 3 
     } 
    ] 
} 

我試圖讓列以上2項的「說明」的值,並通過代碼放在一個數組列表如下:

try{ 
     JSONArray output = importData.getJSONArray("Output"); 

     ArrayList<String>Title = new ArrayList<String>(); 
     for(int i=0;i<output.length();i++) { 
      String bookingInfo = output.getJSONObject(i).toString(); 
      bookingList.add(bookingInfo); 
     } 
    }catch (Exception e) { 
     System.out.println(e.toString()); 
    } 

但我只得到item1和item2的整個列。我期望的結果是將「Desc1」,「Desc2」放入ArrayList標題中,請幫助!

+0

*但是我只得到th然後不要使用toString(),但適當的方法來獲得適當的屬性... – Selvin

+0

可能重複的[如何解析Java中的JSON](http://stackoverflow.com/questions/) 2591098/how-to-parse-json-in-java) – Selvin

回答

2

要從JSON

ArrayList<String> Title = new ArrayList<String>(); 
for(int i=0;i<output.length();i++) { 
    JSONObject jsonObject = output.getJSONObject(i) 
    // Check if the jsonObject contains "Description Tag" 
    if(jsonObject.has("Description")){ 
     String descrption = jsonObject.getString("Description"); 
     Title.add(descrption); 
    } 
} 
+0

我想在這裏添加一件事:使用'Title.add()'而不是'bookingList.add()'將描述值添加到'Title'中數組列表。 –

+0

然後添加到'標題'數組列表 –

0

我想你使用的是icorrect方法 用這個代替只得到Description,這個工作對我來說:

for(int i = 0;i<ja.length();i++) 
         { 
          JSONObject jo = ja.getJSONObject(i); 
          User u = new User(); 
          u.userid = jo.getString("userId");//add descripton here 
          u.id = jo.getString("id");//amount and so on 
          u.title = jo.getString("title"); 
          u.body = jo.getString("body"); 
          list_user.add(u); 
          h.sendEmptyMessage(i); 
          Thread.sleep(300); 

         } 
} 

你只需要改變它符合你的json數據,就像你需要添加書籤而不是用戶等等