2

我需要将格式为 json 的不同字符串传递给 json 解析器。

问题是 jQuery.parseJSON() 和 JSON.parse() 只支持非常严格的 json 格式:

传入格式错误的 JSON 字符串可能会导致抛出异常。例如,以下都是格式错误的 JSON 字符串:

{test: 1} (test 周围没有双引号)。

{'test': 1} ('test' 使用单引号而不是双引号)。

是否有一个限制较少的解析器允许传递这样的值(不带引号或带单引号)?

顺便说一句,我使用的是 KO 2.2.1,所以如果它有类似的东西会很有帮助。

4

2 回答 2

2

有一个名为json的节点模块可以解析非严格的 JSON。

npm install jsonic


你也可以使用 eval:

var parsed = eval(json)

小心,因为eval它也可以运行代码,所以你必须确保你知道你在解析什么。

于 2017-06-09T16:12:41.330 回答
1

没有不那么严格的 JSON 解析器这样的东西。您要么处理格式正确的 JSON,要么根本不处理 JSON。要解析您的自定义格式,您可能需要查看Crockford 的解析器源代码,并对其进行修改以满足您的需要。

或者,对于一个快速而肮脏的解决方案,您可能只是使用eval(但请注意它的使用具有安全隐患)。

于 2013-02-04T12:40:47.873 回答