как разобрать строку JSON со значением в виде массива - PullRequest
0 голосов
/ 20 марта 2012

Мне нужно проанализировать данные JSON, приведенные ниже.

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

до "продано" оно работает нормально. Но когда я пытаюсь разобрать категории, оно не работает. ниже приведен код для разбора данных.

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 голосов
/ 20 марта 2012

category - это JSONArray для получения JSONArray

заменить

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

с

item.setCategory(hierarchies.getJSONArray("categories").getInt(0));
0 голосов
/ 20 марта 2012

Для вас лучшим решением, вероятно, является библиотека GSON. Он выполняет сериализацию и десериализацию самостоятельно, и вы получите ваши объекты. http://code.google.com/p/google-gson/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...