gpt4 book ai didi

android - 获取错误 JSONException : No Value For

转载 作者:行者123 更新时间:2023-11-30 03:38:46 24 4
gpt4 key购买 nike

我对 json 解析代码有问题,它显示错误 json 没有 konteks lokasi 的值,这是使用 TAG_KONTEKS 变量。这是我获取 json 响应的代码。

@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
//mendapatkan data dari database berupa alamat, konteks, latitude, longitude
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("lat", Integer.toString(latPengguna)));
params.add(new BasicNameValuePair("lng", Integer.toString(lngPengguna)));
params.add(new BasicNameValuePair("konteks", konteksCocok));
Log.d("lat dan lng kirim", "data: " + Integer.toString(latPengguna) + " " + Integer.toString(lngPengguna));
Log.d("konteks kirim", "data: " + konteksCocok);
JSONObject json = jParser.makeHttpRequest(url_webservice, "POST", params);
Log.d("data: ", json.toString());

//menampilkan data lokasi POI
try {
int sukses = json.getInt(TAG_SUCCESS);
if(sukses == 1) {
POI = json.getJSONArray(TAG_POIN);
for(int i = 0; i < POI.length(); i++) {
JSONObject c = POI.getJSONObject(i);
int latDB = c.getInt(TAG_LAT);
int lngDB = c.getInt(TAG_LNG);
String alamat = c.getString(TAG_ALAMAT);
String konteks = c.getString(TAG_KONTEKS);

Log.d("latDB", "data: " + latDB);
Log.d("lngDB", "data: " + lngDB);
Log.d("altDB", "data: " + alamat);
Log.d("ktsDB", "data: " + konteks);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_ALAMAT, alamat);
map.put(TAG_KONTEKS, konteks);
POIList.add(map);
}
} else {
Log.d("JSON error", "JSON trouble");
}
} catch(JSONException ex) {
ex.printStackTrace();
}
return null;
}

这是我的 json 响应:

{
"success": 1,
"point": [
{
"point": {
"konteks_lokasi": "kuliah",
"nama_lokasi": "Teknik Perkapalan",
"longitude": "-60",
"latitude": "117"
},
"hasil": 15.811388300842
},
{
"point": {
"konteks_lokasi": "kuliah",
"nama_lokasi": "Teknik Kimia",
"longitude": "-80",
"latitude": "145"
},
"hasil": 33.376638536557
},
{
"point": {
"konteks_lokasi": "kuliah",
"nama_lokasi": "Teknik Arsitektur",
"longitude": "-22",
"latitude": "111"
},
"hasil": 53.009433122794
}
]

如果你能帮助我,我会很高兴......

最佳答案

经度和纬度是字符串,因为它们被引号括起来。所以你应该用 getString() 来获取它们

像这样解析它们

你的 JSONArray 包含另一个 json 数组,所以像这样解析它

int sukses = json.getInt(TAG_SUCCESS);
if(sukses == 1) {
POI = json.getJSONArray(TAG_POIN);

for(int i = 0; i < POI .length(); i++) {
JSONObject c = POI .getJSONObject(i);
JSONObject d = c.getJSONObject(0);

String latDB = d.getString(TAG_LAT);
String lngDB = d.getString(TAG_LNG);
String alamat = d.getString(TAG_ALAMAT);
String konteks = d.getString(TAG_KONTEKS);
}

关于android - 获取错误 JSONException : No Value For,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16196856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com