0

有人可以帮助指导我如何将 JSONArray 解析为 TextViews 吗?到目前为止,每次我解析它时,它只显示最后的结果,而不是一切。

到目前为止,我有:

            try {
            standby_position = json.getString("standby_position");
            zone_name = json.getString("zone_name");
            zone_no = json.getString("zone_no");
            status = json.getString("status");


            JSONArray standby_list = json.getJSONArray("standby_list");

            for (int i1 = 0; i1 < standby_list.length(); i1++) {
                JSONObject c = standby_list.getJSONObject(i1);


            DRIVER = c.getString(driver);
            SINCE = c.getString(since);
            WAITING = c.getString(waiting);
            GPS_DATA = c.getString(gps_data);



            }

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

我试图做:

 TextView information = (TextView) findViewById(R.id.information);
  information.setText ( DRIVER + SINCE + WAITING ); 

这是我要解析的内容:

 {
"driver": "819",
"gps_data": "1",
"last_geocode": "",
"lastLatitudeUpdate": "12/31/1969 5:00:00 PM",
"standby_position": "1",
"zone_name": "STK",
"zone_no": "STK",
"status": "Your are checked-in and currently #1 STK. (as of: 7/19/2012 1:50:02 PM)",
"standby_list": [
    {
        "driver": "291",
        "since": "12:33:00 PM",
        "waiting": "77",
        "gps_data": "0"
    },
    {
        "driver": "103",
        "since": "12:49:21 PM",
        "waiting": "61",
        "gps_data": "0"
    },
    {
        "driver": "287",
        "since": "12:51:00 PM",
        "waiting": "59",
        "gps_data": "0"
    },
    {
        "driver": "271",
        "since": "1:22:00 PM",
        "waiting": "28",
        "gps_data": "0"
    },
    {
        "driver": "819",
        "since": "8:58:36 AM",
        "waiting": "292",
        "gps_data": "1"
    }
]
 }

当我这样做时,将显示唯一的最后一个解析 Json。有任何想法吗?

4

3 回答 3

0

您在一个循环中获取值,但您只为一个区域提供食物。当然,最后一个区域是唯一要显示的区域。如果您只需要在有限的时间内查看值,请尝试对列表的每个元素或“Toast.makeText(...)”使用文本视图。

于 2012-07-19T20:55:07.813 回答
0

你总是重写这个变量。这就是为什么你总是只有最后一个 json

于 2012-07-19T20:55:21.597 回答
0

最后一个 JSON 是什么意思?

您指的是 JSONArray 中名为“standby_list”的最后一个对象吗?

如果是这样,那是因为您只处理最后一个。相反,您应该使用某种集合并在其上调用 Add 。

例如

class MyObject {
    public String driver, since, waiting, gps;
}

List<MyObject> list = new ArrayList<MyObject>();

for (int i1 = 0; i1 < standby_list.length(); i1++) {
    JSONObject c = standby_list.getJSONObject(i1);
    MyObject myContainer = new MyObject();   

    myContainer.driver = c.getString(driver);
    myContainer.since = c.getString(since);
    myContainer.waiting = c.getString(waiting);
    myContainer.gps = c.getString(gps_data);
    list.add(myContainer);
}
于 2012-07-19T20:57:00.213 回答