2014-10-31 84 views
1

检查了JSON.org铁路(语法)定义后,看起来元素(标签:值)的标签和值对需要标签周围的引号。总是需要引号,还是允许从简单的单词中省略引号?JSON语法是否允许元素的裸标签?并允许单引号?

例子 - 这似乎是合法的,

{ "vehicle" : { "type" : "truck", "year" : 1954, "make" : "ford" } } 

实例 - 这会是合法的吗?

{ vehicle : { type : "truck", year : 1954, make : "ford" } } 

另外,是单引号(')允许的,或只有双引号(“)?实施例,

{ 'vehicle' : { 'type' : 'truck', 'year' : 1954, 'make' : 'ford' } } 

许多语言允许标签是裸露的,和Ruby(例如)允许的符号由冒号(:),例如作为前缀,

:fruit 

回答

3

是,根据official JSON spec双引号(和只有双引号)周围的每一个字符串是必需的,包括对象的密钥。

这只是为什么JSON是一个子集 Javascript对象文字符号,而不是一个完整的实现。

+0

在完成了一些javascript,perl和ruby之后,我会认为JSON会允许使用'裸'标签来获得更灵活(更简单)的语法。 – ChuckCottrill 2014-10-31 04:24:23

+1

我会假设他们这样做是为了给一个更严格,更容易出错的规则集提供验证字符串数据的方法。 – 2014-10-31 04:31:14

+0

虽然重新检查了JSON规范(作为向想要JSON的web api提供元数据的一部分),但对我来说JSON本来可能不需要引号:-) – ChuckCottrill 2014-10-31 04:40:50

0

JSON语法是JavaScript对象符号语法的子集: •数据是在名称/值对 •数据由逗号 •大括号持有的对象 •方括号持有数组

我想分开 - http://www.w3schools.com/json/json_syntax.asp会证明你的问题。

+0

很好的链接,谢谢你的简要总结。 – ChuckCottrill 2014-10-31 04:27:31

+1

并非所有数据都在名称/值对中。一组数字是有效的。 – Paul 2014-10-31 05:44:53