2013-02-20 5 views
0

Я пишу приложение, которое запрашивает Google Книги, и оно будет анализировать JSON-файл и отображать название и автора и идентификатор ISBN_10 книги. Например, я пытаюсь разобрать JSON-файл из следующих link. То, что я достиг до сих пор, - это получить титул и автора книги. Одно из основных, что я хотел сделать, это получить номер ISBN 10, который в этом случае «1558607129». До сих пор с помощью моего текущего кода возвращает следующий результат:Разбор JSON: Googlebooks JSON-файл, получающий определенный идентификатор

{"type":"ISBN_10", "identifier":"1558607129"} 
{"type":"ISBN_13", "identifier":"9781558607125"} 

Полученный результат показывает, что функция разобраны все в пределах «industryIdentifiers» JSON массив, который я не хочу. Я хочу только «1558607129».

Вот функция для разбора JSON до сих пор:

public void parseJson(String stringFromInputS) 
{ 
    try 
    { 
     JSONObject jsonObject= new JSONObject(stringFromInputS); 

     JSONArray jArray = jsonObject.getJSONArray("items"); 
     for(int i = 0; i < jArray.length(); i++) 
     { 
      JSONObject jsonVolInfo = jArray.getJSONObject(i).getJSONObject("volumeInfo"); 
      String bTitle = jsonVolInfo.getString("title"); 

      JSONArray bookAuthors = jsonVolInfo.getJSONArray("authors"); 
      for(int j = 0; j < bookAuthors.length(); j++) 
      { 
       String bAuthor = bookAuthors.getString(i); 
      } 

      JSONArray jsonIndustrialIDArray = jsonVolInfo.getJSONArray("industryIdentifiers"); 
      for(int k = 0; k < jsonIndustrialIDArray.length(); k++) 
      { 
       String isbn10 = isbn10 + "\n" + jsonIndustrialIDArray.getString(k); 
      } 
     } 
    } 
} 

Так что я хочу сделать, чтобы захватить конкретно идентификатор ISBN_10 и только что. И в этом случае это «1558607129». Я хотел бы знать, как указать, просто проанализировать номер isbn_10, или если кто-то может указать мне в правильном направлении.

спасибо.

+0

Я правильно думать, что вы хотели бы, чтобы разобрать строку, возвращаемую из массива JSON; а именно «1558607129». – blackpanther

+0

Что я хочу сделать, так это разобрать цифры ISBN_10 с любой страницы JSON, возвращенной из Google Книги. В этом случае это «1558607129». – user1832478

ответ

1

Может быть, что-то в этом роде?

JSONArray jsonIndustrialIDArray = jsonVolInfo.getJSONArray("industryIdentifiers"); 
for(int k = 0; k < jsonIndustrialIDArray.length(); k++) { 
    JSONObject isbn = jsonIndustrialIDArray.getJSONObject(k); 
    if (isbn.getString("type").equals("ISBN_10")) { 
     String isbn10 = isbn.getString("identifier"); 
     break; 
    } 
} 
+0

Да, спасибо, это было то, чего я пытался добиться. – user1832478

1

точно ореховатый, я добавлю небольшой пример

private void test() { 
    try { 
     JSONObject jso = new JSONObject("{ \"type\" : \"ISBN_10\" , \"identifiant\" : \"1558607129\" }"); 
     String type = jso.getString("type"); 
     int idNumber = jso.getInt("identifiant"); 
     System.out.println("RESULT=> type: "+type+" and number: "+idNumber); 
       //RESULT=> type: IBSN_10 and number: 1558607129 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

:)

 Смежные вопросы

  • Нет связанных вопросов^_^