将字符串解析为带单引号的 JSON?

2022-08-30 05:22:21

我有一根绳子

str = "{'a':1}";
JSON.parse(str);
VM514:1 Uncaught SyntaxError: Unexpected token '(…)

如何将上述字符串(str)解析为JSON对象?

这似乎是一个简单的解析。但它不起作用。


答案 1

JSON 标准需要双引号,不接受单引号,解析器也接受。

如果你有一个简单的情况,你的字符串中没有转义的单引号(这通常是不可能的,但这不是JSON),你可以很简单,你最终应该得到有效的JSON。str.replace(/'/g, '"')


答案 2

我知道这是一个旧帖子,但你可以使用JSON5来实现这个目的。

<script src="json5.js"></script>
<script>JSON.stringify(JSON5.parse('{a:1}'))</script>