Android 解析JSON:Googlebooks JSON文件获取特定标识符

Android 解析JSON:Googlebooks JSON文件获取特定标识符,android,json,parsing,google-books,Android,Json,Parsing,Google Books,我正在编写一个查询谷歌图书的应用程序,它将解析JSON文件,并显示图书的标题、作者和ISBN_10标识符。例如,我试图从以下代码解析JSON文件。到目前为止,我所取得的成就是获得了这本书的书名和作者。我想做的主要事情之一是得到ISBN 10号,在本例中是“1558607129”。到目前为止,它使用我的当前代码返回以下结果: {"type":"ISBN_10", "identifier":"1558607129"} {"type":"ISBN_13", "identifier":"97815586

我正在编写一个查询谷歌图书的应用程序,它将解析JSON文件,并显示图书的标题、作者和ISBN_10标识符。例如,我试图从以下代码解析JSON文件。到目前为止,我所取得的成就是获得了这本书的书名和作者。我想做的主要事情之一是得到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);
            }
       }
    }
}
public void parseJson(String stringFromInputS)
{
尝试
{
JSONObject JSONObject=新的JSONObject(stringFromInputS);
JSONArray jArray=jsonObject.getJSONArray(“项”);
for(int i=0;i
所以我想做的就是特别地获取ISBN_10标识符,就这样。在本例中,它是“1558607129”。我想知道如何指定只解析isbn_10数字,或者是否有人可以为我指出正确的方向


多谢各位

也许是这样的

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;
    }
}
JSONArray jsonIndustrialIDArray=jsonVolInfo.getJSONArray(“行业标识”);
for(int k=0;k
就像坚果一样,我将添加一个小示例

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

:)

我认为您想解析从JSON数组返回的字符串,对吗;即“1558607129”。我想做的是解析从GoogleBooks返回的任何JSON页面中的ISBN_10位数字。在本例中,它是“1558607129”。