以下是技术上无效的JSON:
{
color: "blue",
size: 14
}
因为要引用的规范要求属性名称“颜色”和“大小”,即
{
"color": "blue",
"size": 14
}
但是,我注意到许多声称返回“JSON”的Web服务没有引用它们的属性名称,几乎没有人编写Javascript会引用它们的属性名称,因为Javascript不需要它。
是否有任何建议要修改或分叉JSON以允许不带引号的属性名称?这似乎是一种更自然的使用格式的方式,但我从未见过任何暗示它应该被正式采用的东西。
答案 0 :(得分:4)
JSON的设计理念似乎是尽可能简单。
“用双引号换行属性名称”beats“用双引号或单引号换行属性名称,除非名称包含空格或其他特殊字符,否则可以保留引号”,以简化。
我认为这不太可能改变。
现在我要在关于HTML5设计理念的咆哮之前停下来。
答案 1 :(得分:2)
我遇到了与JavaScript保留字冲突的属性名称。在遇到几个这样的问题之后,当我有选择权时,我会严格引用我的JSON。在我看来,它更安全。
答案 2 :(得分:1)
不,我怀疑这会发生。如果您使用声称返回JSON但无效的Web服务,请与他们联系。你没有修改规范,因为人们错误地实现了它。
在这里,我们不要串通我们的条款。是的,JSON名称中包含“JavaScript”,但很清楚 - JSON 不是 Javascript。
在你跳过我之前说“但是在json.org网站上它说JSON is a subset of JavaScript” - 是的,我知道。
是的,从技术上讲它的JavaScript,但由于格式是a)严格声明和b)在JavaScript的上下文之外可用,所以最好用它的心态对待它不是 JavaScript。它只是一种数据格式,也恰好是原生JavaScript。
这就是为什么你注意到“JavaScript不需要它”的原因。嗯,那是因为JavaScript没有,但是JSON 确实。这也是为什么我更喜欢将JSON称为“JavaScript,但不是真的”。