Android - 如何从JSON字符串中提取嵌套值

时间:2013-06-20 15:08:44

标签: java android json

这是从JSON文件收集的字符串。这是预期的:

{
   "catalog":{
      "book":{
         "id":"bk101",
         "author":"Gambardella, Matthew",
         "title":"XML Developer's Guide",
         "genre":"Computer",
         "price":"44.95",
         "publish_date":"2000-10-01",
         "description":"An in-depth look at creating applications with XML."
      }
   }
}

使用此String我创建了一个JSONObject ..

JSONObject jsonBook = new JSONObject(sb.toString());

然后我只是尝试提取字符串中的一些参数,例如id和author。

"id": "bk101"`  `"author": "Gambardella, Matthew" 

这是我的方法..

book.setAuthor(jsonBook.getString(Book.AUTHOR));
book.setId(jsonBook.getString(Book.ID));

然而,我一直在收到错误,说id / author没有任何价值。有什么想法吗?

干杯

1 个答案:

答案 0 :(得分:3)

那是因为idauthor都在书内,而不是在json根目录

JSONObject jsonBook = new JSONObject(sb.toString());
JSONObject catalogue = jsonBook.getJSONObject("catalog");
JSONObject jbook = catalogue.getJSONObject("book");

book.setAuthor(jbook.getString(Book.AUTHOR));
book.setId(jbook.getString(Book.ID));