【发布时间】:2017-10-09 23:42:26
【问题描述】:
我在将字符串转换为 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。
谢谢
【问题讨论】:
-
试试
obj.toString();api。 -
@ShubhamNaik 为什么你认为这会起作用?
-
它应该打印对象描述,也许我们可以得到一些关于正在发生的事情的细节。
-
OP 你为什么要做
new JSONObject(array.getJSONObject(i));?array.getJSONObject(i)已经返回JSONObject -
@ShubhamNaik 你认为
System.out.println("OBJ: " + obj);和System.out.println("OBJ: " + obj.toString ());之间有什么区别吗?