【发布时间】:2012-08-31 11:50:30
【问题描述】:
我有带有动态元素的 JSON 字符串,直到现在我将它解析为 Map:
Map map = new Gson().fromJson(jsonString,
new TypeToken<HashMap<String, String>>() {}.getType());
现在我需要解决这种情况 - 这些动态变量之一可能是另一个 JSON 字符串。
你有什么建议可以解决吗?提前致谢。
编辑: JSON 字符串示例添加(格式化):
{
"key1": "val1",
"key2": "val2",
"key3": {
"subkey1": [
"subvalue1",
"subvalue1"
],
"subkey2": [
"subvalue2"
]
},
"key4": "val3"
}
【问题讨论】:
-
这会报错吗?如果有,是哪个?
-
例如:{"key1":"val1","key2":"val2","key3": {"subkey1":"subvalue1","subkey2":"subvalue2"}," key4":"val3"} 但我没有这个 JSON 的结构,所以我不知道是否有一些嵌套的 json,如果有,我不知道它的结构。
-
是的,有一个异常:线程“main”com.google.gson.JsonSyntaxException 中的异常:java.lang.IllegalStateException:应为字符串,但在第 1 行第 57 列为 BEGIN_ARRAY
-
根据this other question I found,如果您的json数据无效(在这种情况下使用
[),应该会发生这种情况,但是我看不出您发布的json有什么问题. -
很奇怪,我会检查结构,但 JSON 字符串是通过 PHP 函数 json_encode() (php.net/manual/en/function.json-encode.php) 生成的。现在谢谢。