【发布时间】:2017-01-19 02:26:39
【问题描述】:
大多数情况下 JSON 的格式类似于
{
color: "red",
value: "#f00"
}
或者
[
{ color: "red", value: "#f00" },
{ color: "red", value: "#f00" }
]
我想问的是原始类型,比如string、bool、int还有JSON吗?
我找到了跟随链接,
http://json-schema.org/latest/json-schema-core.html
https://zh.wikipedia.org/wiki/JSON
https://www.ietf.org/rfc/rfc4627.txt
http://www.c-sharpcorner.com/uploadfile/3d39b4/data-types-in-json/
还有,
在 RFC4627 中它说
JSON 可以表示四种基本类型(字符串、数字、布尔值、 和 null)和两种结构化类型(对象和数组)。
字符串是零个或多个 Unicode 字符 [UNICODE] 的序列。
对象是零个或多个名称/值的无序集合 对,其中名称是字符串,值是字符串、数字、 布尔值、空值、对象或数组。
数组是零个或多个值的有序序列。
术语“对象”和“数组”来自于 JavaScript。
所以我把它读成纯字符串,布尔数字
"a string"
100
true
都是JSON,
但是我的两个同事认为原始类型只能是对象中的值,
{ ASTRING : "astring" } 是 JSON,
如果只有"a string",则不调用,因为它不是JSON格式,
我觉得我和我的同事可能不够专业,无法判断,
所以我想知道,JSON是纯原始类型吗?
.
我的另一个想法是,JSON被称为交换数据的便捷方式,但如果这种格式不支持纯字符串,
也就是说,如果我只是想抛出一个字符串,我不能用JSON来做吗?
并且必须强制将其更改为{ Message : "a message"},
并且不能使用我认为更简单的方式只是抛出"a message" ...?
【问题讨论】:
-
是的,正如规范所说,JSON 可以是顶级原始值,无需对象包装。
-
RFC4627 是信息性的。它已被RFC7159 淘汰。
标签: json