我希望用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"}]}
显示错误: 错误JSONException:没有值为nama_brg
需要帮助解决我的问题。 THKS
答案 0 :(得分:4)
您的JSON代表一个具有一个字段的对象:data_gadai_detail
:
{"data_gadai_detail": ...}
此字段的值是一个包含单个元素的数组:
{"data_gadai_detail": [...]}
此单个元素是一个包含多个字段的对象,其中一个字段为nama_brg
。
因此,您的代码应首先将字段data_gadai_detail
作为数组,将此数组的第一个元素作为另一个JSON对象,最后在此对象中获取字符串nama_brg
。
答案 1 :(得分:0)
你有一个名为“data_gadai_detail”的JSONArray作为root,然后你需要得到第一个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);
}
答案 2 :(得分: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);
}