将JSONObject更改为arraylist并在listview

时间:2015-10-20 10:37:17

标签: java android arraylist

我有一个像这样的JSON:

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

我尝试获取列的值"描述"以上两个项目,并通过以下代码输入Arraylist:

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的整个列。我期望的结果是放入&#34; Desc1&#34;,#34; Desc2&#34;进入ArrayList标题,请帮忙!

2 个答案:

答案 0 :(得分:2)

仅从 JSON

获取Description
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);
  }
} 

答案 1 :(得分:0)

我认为你使用的是一种错误的方法 使用它,这适用于我:

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数据更改它,就像你需要添加booklist而不是用户等等