使用json解析器解析转义双引号的错误

时间:2017-09-21 23:45:15

标签: ruby

如何解析像这样的JSON字符串:

"[{\"something\": \"information \"YES\"\", \"next\": \"normal\"}]"

我已经使用了json gem和Oj gem,但它们都遇到了错误。我也尝试过使用eval()。

我也尝试使用不同的正则表达式来定位YES周围的引号,并用单引号替换它们,但我还没有成功找出它。

1 个答案:

答案 0 :(得分:3)

您发布的字符串无效JSON。这将是非字符串化的JSON:

[{"something":"information \"YES\"","next":"normal"}]

请注意,转义仍然存在于something的值中。

如果您将此JSON作为字符串,则双引号转义取决于您正在使用的语言。在Ruby中,这就是它的样子:

"[{\"something\":\"information \\\"YES\\\"\",\"next\":\"normal\"}]"

如果您使用它,您将能够解析它:

JSON.parse("[{\"something\":\"information \\\"YES\\\"\",\"next\":\"normal\"}]")
#=> [{"something"=>"information \"YES\"", "next"=>"normal"}]