繁体   English   中英

如何从数组Android Studio中的年度数组中获取数据JSON?

[英]How to get data json from array of the year in array android studio?

当我尝试从Android Studio中的JSON数组获取数据时遇到问题。 我想从2015年,2016年和2018年获取数据,并在不同的textview中填充它们。

这是我的JSON:

"data": [
    {
      "id": "7",
      "kecamatan": "Blambangan Umpu",
      "year": {
        "2015": {
          "id": "27",
          "value": "60200"
        },
        "2016": {
          "id": "41",
          "value": "61516"
        },
        "2018": {
          "id": "7",
          "value": ""
        }
      },
      "avg": 2.14
    },

这是我的主要活动

try {
    JSONObject jsonObject = new JSONObject(s);
    JSONArray array = jsonObject.getJSONArray("data");
    // JSONArray array = new JSONArray(s);

    for (int i = 0; i < array.length(); i ++) {
        JSONObject o = array.getJSONObject(i);
        String id = o.getString("id");
        String kec = o.getString("kecamatan");
        String avg = o.getString("avg");
        String tahun = o.getString("year");

        // JSONArray array2 = o.getJSONArray("year");
        // for (int j = 0; j<array2.length(); j++) {
        // JSONObject p = array2.getJSONObject(j);
        // String value = p.getString("value");

        ListItem item = new ListItem(id, kec, avg, tahun, avg);
        listItems.add(item);
        // }
    }

    adapter = new MyAdapter(listItems, getApplicationContext());
    recyclerView.setAdapter(adapter);

} catch (JSONException e) {
    e.printStackTrace();
}

year是一个JSONObject2015,2016 and 2018为键和JSONObject作为值,因此,获得year JSONObject ,然后通过迭代得到它的键和值

 for (int i = 0 ; i<array.length(); i++)   {
   JSONObject o = array.getJSONObject(i);
   String id = o.getString("id");
   String kec = o.getString("kecamatan");
   String avg = o.getString("avg");
   JSONObject yearObject = o.JSONObject("year");   //get JSONObject 

   Iterator<String> itr = yearObject.keys();
    while(itr.hasNext()) {

        String year = itr.next(); 
       JSONObject obj = o.get("year");                //2015
        System.out.println(obj.getString("id"));      //27
        System.out.println(obj.getString("value"));   //60200
    }

     //Add required fields into `ListItem`
     ListItem item = new ListItem(id,kec,avg,tahun,avg);
     listItems.add(item);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM