0

Googleブックスにクエリを実行するアプリケーションを作成しています。このアプリケーションは、JSONファイルを解析し、本のタイトルと作成者、およびISBN_10識別子を表示します。たとえば、次のリンクからJSONファイルを解析しようとしています。私がこれまでに達成したことは、すばらしい本のタイトルと著者を取得することです。私がやりたかった主なことの1つは、ISBN 10番号(この場合は「1558607129」)を取得することです。これまでのところ、現在のコードを使用すると、次の結果が返されます。

{"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番号を解析するように指定する方法、または誰かがそうすることで正しい方向を示すことができるかどうかを知りたいです。

ありがとうございました。

4

2 に答える 2

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();
    }
}

:)

于 2013-02-21T00:19:20.537 に答える
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;
    }
}
于 2013-02-20T22:50:21.863 に答える