我需要将格式化为json的不同字符串传递给json解析器。
问题是jQuery.parseJSON()和JSON.parse()仅支持非常严格的json格式:
传入格式错误的JSON字符串可能会导致抛出异常。例如,以下是所有格式错误的JSON字符串:
{test:1}(测试周围没有双引号)。
{'test':1}('test'使用单引号而不是双引号)。
是否有一个限制较少的解析器允许传递这样的值(没有引号或单引号)?
顺便说一句,我正在使用KO 2.2.1,所以如果它有类似的东西,它会有所帮助。答案 0 :(得分:1)
没有不那么严格的JSON解析器。你要么处理结构良好的JSON,要么根本就没有处理JSON。要解析自定义格式,您可能需要查看Crockford's parser源代码,并根据需要对其进行修改。
或者,对于快速而肮脏的解决方案,您可以使用eval
(但请注意its use has security implications)。
答案 1 :(得分:0)
有一个名为jsonic的节点模块解析非严格的JSON。
npm install jsonic
您也可以使用eval:
var parsed = eval(json)
要小心,因为eval
也可以运行代码,因此您必须确保知道要解析的内容。