2013-02-05 77 views
1

我對Android比較陌生,從未使用任何解析器,然後嘗試從Google書籍API中解析以下Json,提取書籍和作者的標題。這是迄今爲止代碼:在Android中解析Google圖書JSON

 
public void parseJson(String stringFromInputStream) 
    { 
     String strParsed = null; 
     try 
     { 
      JSONobject jsonObject= new JSONObject(stringFromInputStream);

JSONArray jArray = jsonObject.getJSONArray("items"); for(int i = 0; i < jArray.length(); i++) { strParsed = jArray.getJSONObject(i).getString("volumeinfo").toString(); }

我想在上面的代碼做通過JSON陣列,這是「項目」,並獲得「volumeinfo」然後從那裏我希望提取標題是循環和作者,但我不知道如何繼續。所以我希望有人能指出我正確的方向並糾正我,因爲上面很可能是不正確的。

謝謝。

回答

4

Volumeinfo不是一個字符串,不要把它作爲一個

for(int i = 0; i < jArray.length(); i++){ 
    JSONObject volumeInfo = jArray.getJSONObject(i).getJSONObject("volumeInfo"); 
    String title = volumeInfo.getString("title"); 
    JSONArray authors = volumeInfo.getJSONArray("authors"); 
    for(int j =0; j< authors.length(); j++){ 
     String author = authors.getString(i); 
    } 
} 
+0

感謝您的答覆。我試過你的代碼,但我得到一個JSONException說「沒有值的音量信息」。我環顧四周,用[JSON查看器](http://jsonviewer.stack.hu/)查看JSON,我可以看到volumeinfo包含在「0」內,但即使修改了代碼,我似乎仍然得到同樣的錯誤。 – user1832478

+0

對不起,它應該是volumeInfo。我忘了大寫I –

+0

哇,我一直在看Json文件,我沒注意到小寫字母是我的意思是大寫。感謝它現在完全有效! – user1832478