【发布时间】:2011-08-12 18:33:04
【问题描述】:
我从 json 开始:
{
"Key1" : "Value1",
"Key2" : "Value2"
}
然后我将这个 json 硬编码到一个字符串中:
String json = "{ \"Key1\" : \"Value1\", \"Key2\" : \"Value2\" }";
接下来我尝试解析 json:
JSONObject content = null;
try {
content = new JSONObject(json);
} catch (JSONException e) {
e.printStackTrace();
return null;
}
String key1 = content.optString("Key1", null);
如果我查看通过调用 JSONObject 创建的 hashmap,它看起来是正确的:
{Key2=Value2, Key1=Value1}
但是当我在调试器中查看字符串 key1 的值时,我得到了这个:
[V, a, l, u, e, 1, U, U, U, U, U, U, U, U, U, U]
其中 U 似乎是 unicode 字符 25A1(白色方块)。
我也尝试过通用 get("Key1") 方法,将结果转换为字符串,我得到相同的行为?!?
【问题讨论】:
-
以下返回什么?
"Value1".equals(key1); -
也许我离这里很远,但是定义一个像这样的 JSON 对象对于所有转义字符来说似乎很痛苦。您是否尝试过使用 myJsonObject.put(string key, object value) 来查看存储的内容?
-
@Jack 这很痛苦,但这只是一个简单的故障排除方法。
-
啊,明白了 - 是的,我注意到有时在调试时会在我的字符串中附加一堆垃圾。