1

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_detail":[{"id_gadai":"3","nama_brg":"BERLIAN L FINE GOLD BERSERTIFIKAT NO.SERI JS 006 DTM 24K BRT 10 GRAM","pinjaman":"2000000","taksiran":"4000000","tgl_bts_tebus":"05-May-2013","tgl_bts_lelang":"09-May-2013"}]}

show error : エラー JSONException: nama_brg の値がありません

私の問題について助けが必要です。ありがとう

4

3 に答える 3

4

JSON は、1 つのフィールドを持つオブジェクトを表します: data_gadai_detail:

{"data_gadai_detail": ...}

このフィールドの値は、1 つの要素を持つ配列です。

{"data_gadai_detail": [...]}

この単一の要素は、複数のフィールドを持つオブジェクトであり、そのうちの 1 つがnama_brgです。

したがって、コードは最初にフィールドdata_gadai_detailを配列として取得し、この配列の最初の要素を別の JSON オブジェクトとして取得し、最後nama_brgにこのオブジェクトの文字列を取得する必要があります。

于 2013-02-22T07:27:36.813 に答える
0

これを試してみてください。

    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);
    }
于 2013-02-22T07:35:22.730 に答える
0

ルートとして「data_gadai_detail」という名前の JSONArray があり、最初の JSONObject を取得する必要があり、その後 JSONStrings を取得できます。

これを試して:

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);
}
于 2013-02-22T07:28:02.427 に答える