如何表达 null 在 json 中

2018-12-26 09:28:19 +08:00
 awesomelei

https://www.json.org/ 官网右侧图片中将 true, false, null 都加上了双引号, 是否会造成误导? 我个人还是倾向于{"foo": null}, 不知大家如何抉择{"foo": []}, {"foo": ""}, {"foo": "null"}, {"foo": 0} 是否是根据数据类型来选择各种空值, 还是直接表示为 null, 但总之, 我个人感觉官网中的右侧图片表达的"null"写法是最可能陷入麻烦的, 也就是{"foo": "null"}

引用下爆栈网的提问: https://stackoverflow.com/questions/21120999/representing-null-in-json 大家发表下自己喜好吧

2983 次点击
所在节点    程序员
9 条回复
Terry05
2018-12-26 09:30:19 +08:00
就是用 null 不带引号

{ "a": null }
chairuosen
2018-12-26 09:30:58 +08:00
> JSON.stringify({a:null})
> "{"a":null}"
dengtongcai
2018-12-26 09:38:15 +08:00
"null"代表字符串 null
awesomelei
2018-12-26 09:39:42 +08:00
行, 个人感觉还是官网那张图片可能存在歧义, 此贴终结
@Terry05
@chairuosen
@dengtongcai
canbingzt
2018-12-26 10:24:16 +08:00
个人理解
官网右边的 object、array、string、number 代表类型,没加""
而 "true"、"false"、"null",是具体的值,加了""
zxcvsh
2018-12-26 10:28:31 +08:00
和后台商量好就行
bumz
2018-12-26 10:52:06 +08:00
没有歧义
它的文法中用到的默认是语法变量,比如 object, array, string, number
终极符号都加上引号,"true", "false", "null"
实际描述的语言 (json) 是不包括那个引号的。
dacapoday
2018-12-26 11:11:16 +08:00
官网那个是 PEG,用来描述语言的语言,引号是表示语言中的文本,以便和其他解析符号区别。
awesomelei
2018-12-26 14:51:13 +08:00
@canbingzt
@bumz
@dacapoday
感谢大佬们解答, 明白了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521031

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX