为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕后森 2019-08-28 10:57:34
使用单引号将字符串解析为JSON?我有一个字符串str = "{'a':1}";JSON.parse(str);VM514:1 Uncaught SyntaxError: Unexpected token '(…)我如何解析字符串(str)上面的JSON?这看起来像一个简单的解析; 它不是以某种方式工作。
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

JSON标准要求双引号,并且不接受单引号,也不会对解析器。

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


查看完整回答
反对 回复 2019-08-28
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

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

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


查看完整回答
反对 回复 2019-08-28
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

如果您确定您的JSON安全在您的控制之下(而不是用户输入),那么您可以简单地评估JSON。Eval接受所有报价类型以及不带引号的属性名称。

var str = "{'a':1}";var myObject = eval('(' + str + ')');

由于eval解析器的工作原理,需要额外的括号。当Eval用于您可以控制的数据时,它并不邪恶。有关JSON.parse和eval()之间差异的更多信息,请参阅JSON.parse与eval()


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 1008 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信