Java 错误JSONException:没有的值

Java 错误JSONException:没有的值,java,android,Java,Android,我想用jsonarray显示数据 我的代码活动 params.add(new BasicNameValuePair("id_gadai", id_gadai)); // getting JSON string from URL String json = jsonParser.makeHttpRequest(URL_GADAI_DETAIL, "GET", params); // Check y

我想用jsonarray显示数据

我的代码活动

params.add(new BasicNameValuePair("id_gadai", id_gadai));          
        // getting JSON string from URL
        String json = jsonParser.makeHttpRequest(URL_GADAI_DETAIL, "GET",
                params);

        // Check your log cat for JSON reponse
        Log.d("Data Gadai Detail: ", json);

        try {
            JSONObject jObj = new JSONObject(json);
            if(jObj != null){
                nama_brg = jObj.getString(TAG_NAMA_BRG);
                taksiran = jObj.getString(TAG_TAKSIRAN);
                pinjaman = jObj.getString(TAG_PINJAMAN);
            }          

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

        return null;
    }
我的jsonarray来自数据库 {data_gadai____________________________________________________________________ BERSERTIFIKAT NO.SERI JS 006 DTM 24K BRT 10 格拉姆、平贾曼:2000000,塔克西兰:4000000,tgl_bts_tebus:2013年5月5日,tgl_bts_lelang:2013年5月9日}]

显示错误: 错误JSONException:nama_brg没有值


我的问题需要帮助。thks

您的JSON表示一个对象,只有一个字段:data\u gadai\u detail:

此字段的值是具有单个元素的数组:

{"data_gadai_detail": [...]}
这个元素是一个具有多个字段的对象,其中一个字段是nama_brg


因此,您的代码应该首先将字段data\u gadai\u detail作为数组获取,将该数组的第一个元素作为另一个JSON对象,最后获取该对象中的字符串nama\u brg。

您的JSON表示一个具有一个字段的对象:data\u gadai\u detail:

此字段的值是具有单个元素的数组:

{"data_gadai_detail": [...]}
这个元素是一个具有多个字段的对象,其中一个字段是nama_brg


因此,您的代码应该首先将字段data\u gadai\u detail获取为数组,将该数组的第一个元素作为另一个JSON对象,最后获取该对象中的字符串nama\u brg。

您将名为data\u gadai\u detail的JSONArray作为根,然后需要获取第一个JSONObject,然后才能获取JSONString

试试这个:

JSONObject jObj = new JSONObject(json);
if(jObj != null){
    nama_brg = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_NAMA_BRG);
    taksiran = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_TAKSIRAN);
    pinjaman = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_PINJAMAN);
}

您有一个名为data_gadai_detail的JSONArray作为根,然后需要获取第一个JSONObject,然后才能获取JSONString

试试这个:

JSONObject jObj = new JSONObject(json);
if(jObj != null){
    nama_brg = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_NAMA_BRG);
    taksiran = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_TAKSIRAN);
    pinjaman = jObj.getJSONArray("data_gadai_detail").getJSONObject(0).getString(TAG_PINJAMAN);
}
试试这个

    JSONObject jObj = new JSONObject(json);

    JSONArray arr = jObj.getJSONArray("data_gadai_detail");

    for (int i = 0; i < arr.length(); i++) {

        JSONObject c = arr.getJSONObject(i);
        nama_brg = c.getString(TAG_NAMA_BRG);
        taksiran = c.getString(TAG_TAKSIRAN);
        pinjaman = c.getString(TAG_PINJAMAN);
    }
试试这个

    JSONObject jObj = new JSONObject(json);

    JSONArray arr = jObj.getJSONArray("data_gadai_detail");

    for (int i = 0; i < arr.length(); i++) {

        JSONObject c = arr.getJSONObject(i);
        nama_brg = c.getString(TAG_NAMA_BRG);
        taksiran = c.getString(TAG_TAKSIRAN);
        pinjaman = c.getString(TAG_PINJAMAN);
    }

常量TAG_NAMA_BRG的值是多少?常量TAG_NAMA_BRG的值是多少?