如何使用值作为数组解析JSON字符串

时间:2012-03-20 11:53:21

标签: android json parsing

我需要解析下面给出的JSON数据。

{"result":[{"bookId":142645,"bookpb":"MF",
"bookTs":1328999630000,"clipStatus":"D","bookDetail":{"arrival":1,"purchase":1,"sold":1},
"hierarchies":{"categories":["4"],"events":[]},"shopId":769752},

upto“sold”它工作正常。但是当我试图解析类别时,它无法正常工作。 下面给出的是解析数据的代码。

ArrayList<BookItem> resultdata = new ArrayList<BookItem>();
 JSONArray jsonArray = (new JSONObject(inputString))
    .getJSONArray("result");

for (int i = 0; i < jsonArray.length(); i++) {

JSONObject jsonObject = jsonArray.getJSONObject(i);
item = new BookItem();
item.setbookId(jsonObject.optString(book_ID));
item.setPurchase(jsonObject.optInt(PURCHASE));
item.setArrival(jsonObject.optInt(ARRIVAL));
item.setSold(jsonObject.optInt(SOLD));
item.setbookTs(jsonObject.optString(book_TS));
JSONObject hierarchies=jsonObject.getJSONObject(HIERARCHY);
item.setCategory(hierarchies.getInt("categories"));
resultdata.add(item);
  }

任何人都可以帮助我吗?

我开始知道这是

的问题
 {"categories":["4"],"events":[]}

data.how我可以解析这个数组值吗?

2 个答案:

答案 0 :(得分:0)

为了您的目的,最好的解决方案可能是GSON库。它自己进行序列化和反序列化,你将得到你的对象。 http://code.google.com/p/google-gson/

答案 1 :(得分:0)

categories是JSONArray以获取JSONArray

替换

item.setCategory(hierarchies.getInt("categories"));

item.setCategory(hierarchies.getJSONArray("categories").getInt(0));