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

JSON和Object Literal Notation有什么区别?

JSON和Object Literal Notation有什么区别?

Helenr 2019-05-22 15:02:33
JSON和Object Literal Notation有什么区别?有人能告诉我使用“Object Literal Notation”和JSON对象定义的JavaScript对象之间的主要区别是什么?根据一本JavaScript书,它说这是一个使用Object Notation定义的对象:var anObject = {    property1 : true,    showMessage : function (msg) { alert(msg) }};在这种情况下,为什么它不是JSON对象?仅仅因为它没有使用引号定义?
查看完整描述

5 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

实际上没有“JSON对象”这样的东西。

JSON规范是将数据编码为字符串的语法。人们称之为“JSON对象”(在javascript中)实际上只是一个普通的javascript对象,它(可能)已经从有效的JSON字符串反序列化,并且可以很容易地重新序列化为有效的JSON字符串。这通常意味着它只包含数据(而不是函数)。这也意味着没有日期,因为JSON没有日期类型(可能是关于JSON最痛苦的事情;)

此外,(侧面咆哮...)当人们谈论“JSON对象”时,他们几乎总是指在顶层有“花括号”的数据。这很好地对应于javascript对象。但是,JSON规范不要求在JSON字符串的顶层有一个“花括号”对象。在顶层有一个列表,甚至只有一个值,这是完全有效的JSON。因此,虽然每个“JSON对象”对应于有效的JSON,但并非所有有效的JSON字符串都对应于我们称之为“JSON对象”的东西!(因为字符串可以表示列表或原子值)


查看完整回答
反对 回复 2019-05-22
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

根据JavaScript中的JSON

JSON是JavaScript的对象文字符号的子集

换句话说,有效的JSON也是有效的JavaScript对象文字符号,但不一定是相反的方式。

除了阅读文档,正如@Filix King建议的那样,我还建议使用JSONLint在线JSON验证器。这就是我如何知道JSON对象的键必须是字符串。


查看完整回答
反对 回复 2019-05-22
  • 5 回答
  • 0 关注
  • 914 浏览
慕课专栏
更多

添加回答

举报

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