我正在将xml内容转换为JSON内容,内容如下
{
"response":
{
"seatlist":
{
"seat":
{
"balance":85694.6,"num":12
},
"seat":
{
"balance":85694.6,"num":12
}
},
"userid":"8970ca285d9c4e4d",
"seatnum":12,
"session":"online"
}
}
我可以通过以下方式获取用户ID和seatnum
JSONObject response = json.getJSONObject("response");
out.setUserid(response.getString("userid"));
out.setBalance(Double.valueOf(response.getString("balance")));
现在的问题是我需要解析以下内容并需要获得" num"值
"seatlist":
{
"seat":
{
"balance":85694.6,"num":12
},
"seat":
{
"balance":85694.6,"num":12
}
}
这是我正在使用的代码
JSONObject objList = response.getJSONObject(" seatlist");
String n = String.valueOf(objList.getJSONObject(" seat"));
如果(objList.getJSONObject("座位"。)得到("用户id")等于(用户id))
{
String num = String.valueOf(objList.getJSONObject(" seat")。get(" num"));
out.setSeatNum(Integer.valueOf(NUM));
}
如果我有一个席位值,我可以得到" num"值否则我得到JSON异常
请给我一个建议......
答案 0 :(得分:2)
您希望在JSONObject中获取JSONArray。这是不可能的。 获取数组,然后遍历数组以获取对象:
JSONObject objList = response.getJSONArray("seatlist");
for(int i = 0, i<objList.lenght(); i++){
JSONObject json = objList.get(i);
}
答案 1 :(得分:1)
{
"response":
{
"seatlist":
{
"seat":
{
"balance":85694.6,"num":12
},
"seat":
{
"balance":85694.6,"num":12
}
},
"userid":"8970ca285d9c4e4d",
"seatnum":12,
"session":"online"
}
}
表示具有称为响应的对象的对象。这包含一个名为seatlist的对象。这包含两个名为seat的对象(但这是错误的!这应该是一个数组!)。等等..
阅读本文可以使用
JSONObject json = new JSONObject(yourresponse);
JSONObject response = json.getJSONObject("response");
JSONObject seatlist = response.getJSONObject("seatlist");
JSONObject userid = response.getJSONObject("userid");
JSONObject seatnum = response.getJSONObject("seatnum");
JSONObject session = response.getJSONObject("session");
现在的座位表包含。
{
"seat":
{
"balance":85694.6,"num":12
},
"seat":
{
"balance":85694.6,"num":12
}
}
这是错误的,因为它包含2个具有相同名称的元素。现在你可以通过这样的索引来调用它:
JSONObject seat1 = seatlist.getJSONObject(1);
JSONObject seat2 = seatlist.getJSONObject(2);
seat1.getString("balanace"); seat1.getInt("num");
或者您可以遍历JSONObject。
至少它应该是一个数组而不是JSONOBject。
这意味着它应该是这样的。
{
"response": {
"seatlist": [
"seat":
{
"balance":85694.6,"num":12
},
"seat":
{
"balance":85694.6,"num":12
}
],
"userid":"8970ca285d9c4e4d",
"seatnum":12,
"session":"online"
}
}