【发布时间】:2017-03-16 07:48:36
【问题描述】:
String param = "{\"a\":\"[\\\"x\\\",\\\"y\\\"]\",\"b\":\"{\\\"z\\\":1}\"}";
在我的例子中,{...} 和 [...] 由 " 引用。JSON 将其视为一个完整的字符串。
{
"a": "[\"x\",\"y\"]",
"b": "{\"z\":1}"
}
如何删除或忽略 {} 和 [] 周围的引号?我想要的结果是:
{
"a": [
"x",
"y"
],
"b": {
"z": 1
}
}
【问题讨论】:
-
为什么引用这些块?这两个 JSON 非常不同(第一个包含字符串,第二个包含字符串的列表和映射),可能更容易对 JSON 的源进行操作。你对源头有控制权吗?
-
您可以做的另一件事:如果您知道“a”和“b”包含类似的字符串...您可以提取这些字符串并将它们作为单独的 JSON 再次解析
-
我知道你在说什么,但我从第三方获取数据并且无法更改。而且,“a”“b”只是一个简单的例子,真实的路径是不确定的,而且数据通常嵌套很深。如果只有一个解析器,我可以自定义将“{...}”或“[.....]”视为列表和映射。