java - 将字符串转换为 json 不起作用 java

标签 java json string parsing

我在将字符串转换为 json 时遇到问题。 即,我的 json 字符串是:

{"serverId":2,"deviceId":736,"analysisDate":"2017-05-11T07:20:27.713Z","eventType":"Logs","eventAttributes":[{"name":"level","value":"INFO"},{"name":"type","value":"Video Blocked On"},{"name":"cameraId","value":"722"},{"name":"userId","value":"1"}]}

我的代码:

    try {
        JSONObject object = new JSONObject(jsonString);
        JSONArray array = object.getJSONArray("eventAttributes");
        System.out.println("ARRAY: " + array);

        for (int i = 0; i < array.length(); i++) {
            JSONObject obj = new JSONObject(array.getJSONObject(i));
            System.out.println("OBJ: " + obj);

        }
    } catch (JSONException ex) {
        Exceptions.printStackTrace(ex);
    }

System.out.println 数组为:

[{"name":"level","value":"INFO"},{"name":"type","value":"Video Blocked On"},{"name":"cameraId","value":"722"},{"name":"userId","value":"1"}]

但是如果我打印 obj is "{}",四次。所以它是正确的,因为数组有 4 个元素,但为什么它是空对象?我正在使用 org.json。

谢谢

最佳答案

array.getJSONObject(i) 已经返回了一个类型为 JSONObject 的对象,您不需要将它传递给 JSONObject 类的构造函数.

随便写

...
for (int i = 0; i < array.length(); i++) {
   JSONObject obj = array.getJSONObject(i);
   System.out.println("OBJ: " + obj);
}
...

关于java - 将字符串转换为 json 不起作用 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907478/

相关文章:

Java - 包含检查数组列表中的所有项目是否满足条件

json - 记录 JSON 文件结构的最佳实践?

javascript - 根据 html 选择值中的数据为 FullCalendar 提供 json feed url

MySQL:从字符串中提取日期

java - 在oracle中使用什么来解析xml文件

java - 如何使用 SimpleDateFormat 仅解析日期

c# - 复杂数据模型和json.net序列化问题

java - 有没有办法得到丢失的字符串?

java - Android-从字符串中删除 URL 百分号

java - 静态和非静态注释有什么区别?