使用单引号将字符串解析为JSON?

使用单引号将字符串解析为JSON?

我有一个字符串

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

我如何解析字符串(str)上面的JSON?这看起来像一个简单的解析; 它不是以某种方式工作。


慕后森
浏览 1009回答 3
3回答

MMMHUHU

该JSON标准要求双引号,并且不接受单引号,也不会对解析器。如果你有一个简单的例子,你的字符串中没有转义的单引号(这通常是不可能的,但这不是JSON),你可以很简单str.replace(/'/g, '"'),你应该得到有效的JSON。

汪汪一只猫

我知道这是一个旧帖子,但你可以使用JSON5来达到这个目的。<script&nbsp;src="json5.js"></script><script>JSON.stringify(JSON5.parse('{a:1}'))</script>

潇潇雨雨

如果您确定您的JSON安全在您的控制之下(而不是用户输入),那么您可以简单地评估JSON。Eval接受所有报价类型以及不带引号的属性名称。var&nbsp;str&nbsp;=&nbsp;"{'a':1}";var&nbsp;myObject&nbsp;=&nbsp;eval('('&nbsp;+&nbsp;str&nbsp;+&nbsp;')');由于eval解析器的工作原理,需要额外的括号。当Eval用于您可以控制的数据时,它并不邪恶。有关JSON.parse和eval()之间差异的更多信息,请参阅JSON.parse与eval()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript