2009-12-08 17 views
0

以下是技术上无效JSON:是否有任何提议修改JSON以正式允许未引用的属性名称?

{ 
    color: "blue", 
    size: 14 
} 

因为属性名称“色”,并在规范中要求的“大小”被引用,即

{ 
    "color": "blue", 
    "size": 14 
} 

不过,我注意到声称返回“JSON”的许多Web服务不会引用它们的属性名称,并且几乎没有人在编写JavaScript时会引用它们的属性名称,因为Javascript不需要它。

是否有过修改任何建议或叉子JSON允许不带引号的属性名称?这似乎是使用这种格式更自然的方式,但我从来没有看到任何暗示它应该被正式采用的方式。

回答

4

JSON的设计哲学似乎是保持尽可能简单

“包装用双引号的属性名称”节拍“用双引号或单引号包裹属性名称,你可以离开了引号关闭,除非名称中包含空格或其他特殊字符”的简单性。

我不认为这可能会改变。

现在我将停止之前,我去关上关于HTML5的设计理念咆哮。

+0

“JSON设计的理念似乎尽可能简单。”事实上:http://json.org/ – 2009-12-08 17:09:28

2

我已经与使用JavaScript相撞属性名称麻烦保留字。在与几个这样的问题斗争之后,当我有选择的时候,我保留了我的JSON的引用。在我看来,它更安全。

1

不,我怀疑这会发生。如果您使用声称返回JSON的网络服务,但无效,请联系他们。你没有修正规范,因为人们错误地实现了它。

让我们不要勾引我们的条款,在这里。是的,JSON的名字中有“JavaScript”,但是很好理解--JSON 不是 Javascript。

你跳到我面前说:“但在json.org网站它说:JSON is a subset of JavaScript” - 是的,我知道。

是,从技术上来讲它的JavaScript,但由于格式是)stricly声明和b)使用的JavaScript的上下文之外,这是最好的心态,它的 JavaScript来对待它。这只是一种数据格式,也恰好是原生JavaScript。

这就是为什么你注意到“JavaScript不需要它”。那么,那是因为JavaScript没有,但是JSON 确实是。这又是为什么我更喜欢把JSON当作“JavaScript,但不是真的”。

相关问题