如何在android中循环访问JSON参数

时间:2011-08-09 09:03:27

标签: java android json

假设我有一个打印出来的JSON

{"_id"              :"4e3f2c6659f25a0f8400000b",
 "confirmation_code":"TWLNX8BT",
 "confirmed"        :true,
 "created_at"       :"2011-08-08T00:23:02+00:00",
 "email_address"    :"dd5dc43ea6bf12ec604b0a7025b94105d419616b",
 "first_name"       :"sean",
 "invites"          :[],
 "last_name"        :"pan",
 "raw_email_address":null,
 **"tracking_users" :[{ 
                        "_id"       :"4e407f0659f25a1ce9000007",
                        "active"    :true,
                        "first_name":"Sean",
                        "last_name" :"Pan",
                        "user_id"   :"4e3da65e59f25a3956000005"
                     },{
                        "_id"       :"4e407f7a59f25a1d19000007",
                        "active"    :true,
                        "first_name":"Sean",
                        "last_name" :"Pan",
                        "user_id"   :"4e3da65e59f25a3956000005"
                     },{
                        "_id"       :"4e4085c959f25a204b000004", 
                        "active"    :true,
                        "first_name":"Sean",
                        "last_name" :"Pan",
                        "user_id"   :"4e3da65e59f25a3956000005"
                     }],
 "updated_at"       :"2011-08-08T06:44:31+00:00",
 "user_id"          :137141}**

在跟踪用户部分中,我有三个“不同”(它们在测试目的上是相同的)原始JSON中的JSON字符串。如何在android的for循环中浏览内部参数(user_id [0]),(user_id [1]),(user_id [2])...的tracking_users?

我将我的JSON转换为字符串然后使用 obj = new org.json.JSONObject(响应)将它更改为一个对象然后我使用 String trackingusers = obj.getString(“tracking_users”)来获取tracking_users变量中的三个对象。

由于

3 个答案:

答案 0 :(得分:4)

将tracking_users作为JSONArray获取,然后将它们作为JSONObject循环,使用JSONObject,您可以获取它的属性,试试这个:

JSONArray tracking_users = obj.getJSONArray("tracking_users");
for (int i = 0; i < tracking_users.length(); i++) {
    JSONObject user = tracking_users.getJSONObject(i);
    String _id = user.getString("_id");
    and etc..
}

答案 1 :(得分:1)

使用getJSONArray("tracking_users")并将数组中的每个项目作为JSONObject处理。

答案 2 :(得分:1)

JSON由Objects和Objects对象组成。整个结果字符串是一个对象。所以你加载它很好。之后,您必须将tracking_users作为对象数组处理。所以使用:

JSONAeeay users = obj.getJSONArray("tracking_users");

通过这个,您可以遍历对象:

int users_count = users.length();
for (int i=0; i<users_count; i++)
{
    users.getJSONObject(i)
}