【发布时间】:2017-05-15 06:54:09
【问题描述】:
我有一个很长的字符串,看起来像
{abc:\"def\", ghi:\"jkl\"}
我想将其转换为有效的 json 字符串,例如
{\"abc\":\"def\", \"ghi\":\"jkl\"}
我开始查看字符串对象上的replaceAll(String regex, String replacement) 方法,但我正在努力为它找到正确的正则表达式。
谁能帮帮我。
【问题讨论】:
-
另一种方法是使用宽松的解析器来解析它,例如Gson 有一个
setLenient()方法。然后将其写回为有效的 JSON。 -
您使用的是哪个 json 依赖项?更好的选择是根据正确的格式生成它,无论是客户端还是服务器端
-
您可以尝试通过搜索一系列标识符字符后跟
:来进行替换,但如果任何值字符串中有冒号,这可能会让您失望。其他可能打败你的事情是其中一个值中的转义引号。可能会想出一个复杂的正则表达式来处理所有事情,但在这种情况下,最好编写自己的词法分析器来处理输入中的标记(如{、:、,、标识符、字符串文字)并从中工作。过于复杂的正则表达式不可读且容易出错。