我知道这里有几个问题都有相同的主题和错误,但没有一个表明我的问题同样如此,所以我决定在这里发帖,希望有人帮我指出原因。这是代码:
private void showEmployee(String json){
try {
JSONObject jsonObject = new JSONObject(json);
JSONObject c = jsonObject.getJSONObject(Config.TAG_JSON_ARRAY);
Log.e("result",json);
if(c!=null) {
idwo=c.getString("id");
String notiangs = c.getString(Config.TAG_NOTIANG);
String alamats = c.getString(Config.TAG_ALAMAT);
String gardus = c.getString(Config.TAG_GARDU);
String penyulangs = c.getString(Config.TAG_PENYULANG);
String lats = c.getString(Config.TAG_GPSLAT);
String lons = c.getString(Config.TAG_GPSLON);
String kettings = c.getString(Config.TAG_JUMLAHKETTING);
notiang.setText(notiangs);
alamat.setText(alamats);
gardu.setText(gardus);
penyulang.setText(penyulangs);
lat.setText(lats);
lon.setText(lons);
ketting.setText(kettings);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
这是JSON的回应:
E/result: {"result":{"0":"3","id":"3","1":"abc1235gvv","no_tiang":"abc1235gvv","2":"JTM","jenis_tiang":"JTM","3":"","jumlah_ketting":"","4":"Mangkurayat","alamat":"Mangkurayat","5":"Cilawu","kecamatan":"Cilawu","6":"4555","kodepos":"4555","7":"Jawa Barat","provinsi":"Jawa Barat","8":"Kabupaten Garut","kota":"Kabupaten Garut","9":"adghc","penyulang":"adghc","10":"","gardu":"","11":"2017-05-01 08:49:49","tanggal":"2017-05-01 08:49:49","12":"107.88593833333334","lat":"107.88593833333334","13":"-7.249803333333333","lon":"-7.249803333333333"}}
显然,notiang有一个价值,但我仍然在我的logcat中收到了这个警告:
W/System.err: org.json.JSONException: No value for notiang
答案 0 :(得分:4)
错误很明显,表示您无法将JSONArray
转换为JSONObject
,然后您需要更改此行
JSONObject jsonObject = new JSONObject(json);
到这个
JSONArray jsonArray = new JSONArray(json);
然后在for
循环中获取索引的JSONObject
并执行任何操作
确定您的对象是JSONArray
还是JSONObject
,您可以执行此操作
String data = "{ ... }";
Object json = new JSONTokener(data).nextValue();
if (json instanceof JSONObject)
//you have an object
else if (json instanceof JSONArray)
//you have an array
答案 1 :(得分:0)
当你获得一个json对象数组时,你期待一个json对象。
答案 2 :(得分:0)
更改此行
JSONObject c = jsonObject.getJSONObject(Config.TAG_JSON_ARRAY);
要
JSONArray peoples = null;
peoples = jsonObject .getJSONArray("Your Array Name/Tag);
问题是你的结果有json数组,你正在尝试将它转换为Json Object。
答案 3 :(得分:0)
try {
JSONArray jsonArray = new JSONArray(json);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject c = jsonArray.getJSONObject(i);
Log.e("result",json);
if(c!=null) {
idwo=c.getString("id");
String notiangs = c.getString(Config.TAG_NOTIANG);
String alamats = c.getString(Config.TAG_ALAMAT);
notiang.setText(notiangs);
alamat.setText(alamats);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 4 :(得分:0)
try{
JSONArray jArray= null;
jArray= jsonObject .getJSONArray("Key name);
}catch(Exception e){
}