假设我有一个打印出来的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变量中的三个对象。
由于
答案 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)
}