【发布时间】:2012-02-29 10:26:07
【问题描述】:
我有一个字符串,它“几乎”是一个 json 字符串,只是它的键没有被引号包围。 通常它由 UI 和 javascript 使用,在解释它时没有问题。但是,我所知道的 Java 中的 JSON 解析器似乎需要用引号括起来的键。
有没有办法可以将字符串转换为有效的 json 字符串,可能是通过在 Java 中使用正则表达式。 或者是否有一个有点宽松的 JSON 库。
字符串的格式为
{
A : "Val1",
B : [ SOME NESTED STUFF],
C : "Val3"
}
我需要把它转换成
{
"A" : "Val1",
"B" : [ SOME NESTED STUFF],
"C" : "Val3"
}
不影响任何嵌套的东西。 A、B、C键的个数是固定的。
谢谢
附:我无法将适当的 JSON 字符串返回给我,这是一个预先存在的代码,更改它是非常危险的。
【问题讨论】:
-
是否保证 Val1 和 Val3 不包含双引号?
-
([^"]\\w+[^"]?):...这只是我的想法,但应该为您指明正确的方向。想法是从冒号返回,因为您知道您正在寻找一个或多个在冒号前没有被引用的单词字符。 -
谢谢大家...我开始使用 json-smart,它在解析 json 时很宽松,并且不需要密钥有引号。 code.google.com/p/json-smart