示例:
1 | const str = "['123', '456', '789']" |
当存在这种数据时 JSON.parse
无法直接解析,会提示 SyntaxError: Unexpected token ' in JSON at position 1
的错误。
解决方案:
eval()
eval语法可以简单方便的解决JSON.parse
无法解析的问题,但这个语法不推荐使用。它会将传入的字符串当做 JavaScript 代码进行执行。这有可能会导致被运行恶意代码,而且它必须调用JS解释器会比其他替代方法更慢。str.replace(/'/g, '"')
推荐使用replace()
将单引号替换为双引号,然后再使用JSON.parse
。
示例:
1 | const str = "['123', '456', '789']" |