有人可以帮我指导如何将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将展示的唯一最后一个解析。有任何想法吗?
答案 0 :(得分:0)
您可以在循环中获取值,但只能为一个区域添加食物。当然最后一个区域是唯一要显示的区域。 如果您只需要查看有限时间内的值,请尝试使用列表中每个元素的文本视图或“Toast.makeText(...)”。
答案 1 :(得分:0)
您始终会重写此变量。这就是为什么你总是只有最后一个json
答案 2 :(得分: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);
}