【发布时间】:2015-01-01 16:06:58
【问题描述】:
所以我有一个像这样的网络服务的 json 响应
{
error: false
types: [2]
-0: {
card_type_id: 5
category: "Food & Beverages"
}
-1: {
card_type_id: 8
category: "Entertaiment"
}
}
我想要做的是获取json数组“类型”中的数字并使用它来循环设置将在listview中使用的arraylist的值,但是我的代码似乎无法获取json数组长度,这个是我的代码
JSONObject obj = new JSONObject(response);
if(!obj.getBoolean("error")){
JSONArray types = obj.getJSONArray("types");
for(int i=0; i<types.length();i++)
{
JSONObject a = types.getJSONObject(i);
int ct_id = a.getInt("card_type_id");
String category = a.getString("category");
CardType ct = new CardType();
ct.setTypeId(_ct_id);
ct.setTypeCategory(_category);
categoryArray.add(ct);
}
}
谁能帮帮我?谢谢之前
【问题讨论】:
-
对于初学者,您的 JSON 字符串无效。其次,在这种情况下 types.length() 是 1,而我怀疑你指望它是 2。目前还不清楚你在追求什么,但如果我走在正确的轨道上,我会发布带有正确 JSON 响应的答案。
-
@mjp66 感谢您的快速回复,它实际上是来自Web服务的json响应,您的无效是什么意思?你能给我一个正确的 JSON 响应的答案吗?对不起我的英语
-
发布了一个带有正确响应示例的答案。至于您的网络服务,您将不得不对其进行调查,并找出为什么您得到的响应格式不正确。
-
@mjp66 谢谢先生,找到解决方案后我会立即发布正确答案。