java - 安卓 : Json Parsing show error

标签 java android json

[

    {
        "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/

相关文章:

java - log4j :WARN No appenders could be found for logger (org. springframework.web.filter.CharacterEncodingFilter)。使用 log4j2

java - 将 arrayList<Object[]> 转换为嵌套数组

javascript - 在 Ruby on Rails 页面上通过 Javascript 代码附加和使用 JSON 文件

json - 如何使用 Netty 4.0.17 发送带有 JSON 正文的 POST 请求

java - 如何重命名文件名而不改变其类型?

android - 在运行 Android 8.0.0 (Oreo) 的 Android 虚拟设备上找不到开发人员选项

android - Loop the Loop(Fences) 益智游戏开发 on android

Android 后退按钮不会重新启动 Activity?

java - 如何使用 json 从 java 发布多个数组

java - 以编程方式重启 Android Things