[
{
"description": "My home",
"name": "Sweet Home",
"point": {
"lat": 22.890976,
"long": 90.459097
},
"type": 1,
"cid": "5319197376176516414"
}
这是我用于解析信息的json文件。这是我解析 name 和 lng 的代码。
BufferedReader jsonReader = new BufferedReader(new InputStreamReader(this.getResources().openRawResource(R.raw.map)));
StringBuilder jsonBuilder = new StringBuilder();
try {
for (String line = null; (line = jsonReader.readLine()) != null;) {
jsonBuilder.append(line).append("\n");
}
JSONTokener tokener = new JSONTokener(jsonBuilder.toString());
JSONArray jsonArray = new JSONArray(tokener);
JSONObject jsonObject = jsonArray.getJSONObject(0);
String title = jsonObject.getString("name");
String lhg = jsonObject.getJSONObject("point").getString("lng");
} catch (FileNotFoundException e) {
Log.e("jsonFile", "file not found");
} catch (IOException e) {
Log.e("jsonFile", "ioerror");
} catch (JSONException e) {
Log.e("jsonFile", "error while parsing json");
}
}
}
它向我显示解析 json 时出现异常错误
。我该如何解决这个问题?我的问题是什么?
最佳答案
因为 JSON 对象中的“Point”从不包含名为“lng”的属性
String lhg = jsonObject.getJSONObject("point").getString("lng")
它确实包含一个名为“long”的
"point": {
"lat": 22.890976,
"long": 90.459097
},
因此获取经度的代码应如下所示:
String lhg = jsonObject.getJSONObject("point").getString("long")
关于java - 安卓 : Json Parsing show error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146587/