JSON和Java:我存储了一个long。我想得到长的。但是:"org.json.JSONException: JSONObject is not a long"。怎么了?

JSON and Java: I store a long. I want to get the long. But: "org.json.JSONException: JSONObject is not a long". What's wrong?

当我尝试进行以下操作时(使用 org.json):

JSONObject jo = new JSONObject();
jo.append("theLong", 1l);
Long theLong = jo.getLong("theLong");

我得到异常:

org.json.JSONException: JSONObject["theLong"] is not a long.
[...]
Caused by: java.lang.NumberFormatException: For input string: "[1]"

我做错了什么?


备注: 同样不必要地将长的 jo.append("theLong", new Long(1l)); 装箱(以确保传递的是 Long,而不是 long)也无​​济于事。

你应该使用 jo.put("theLong", 1l);

append 用于“将值附加到键下的数组。如果键不存在于 JSONObject 中,则将键放入 JSONObject 中,其值为包含值的 JSONArray参数。如果键已经与 JSONArray 相关联,则将值参数附加到它。"