2013-02-22 78 views
1

我想表现出与jsonarray数据错误JSONException:没有价值对于

我的代码活动

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"}]}

显示错误: 错误JSONException:没有价值对于nama_brg

需要帮助解决我的问题。 THKS

+1

常量'TAG_NAMA_BRG'的值是多少? – 2013-02-22 07:27:12

回答

0

你有一个JSONArray名为“data_gadai_detail”为根,那么你需要获得第一的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); 
} 
+0

th兄弟。好的解决方案 – user2098374 2013-02-22 07:48:16

4

你的JSON表示与一个单个场的对象:data_gadai_detail

{"data_gadai_detail": ...} 

该字段的值是具有单个元件的阵列:

{"data_gadai_detail": [...]} 

这单个元件是一个对象有几个领域,其中之一是nama_brg

所以你的代码应该首先获得字段data_gadai_detail作为一个数组,取这个数组的第一个元素作为另一个JSON对象,最后得到这个对象中的字符串nama_brg

+0

好吧,我会尝试 – user2098374 2013-02-22 07:42:47

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