感谢图灵社区的电子书阅读奖励计划。
json是日常使用最为频繁的数据传输方式了,或者说是唯一的方式了。但实际上在使用过程中还是存在一些疑问:
-
[1, 2, 3]这种格式是JSON吗? - 到底什么是正确的
JSON格式?
出现第一个疑问,是在自己用kotlin实现后端服务提供接口,前端调用接口时报错,大概错误提示是[无法解析之类的,于是意识到[{ name: 'ltaoo}]这种格式的不是json,一定要有键,如:
{
key: [{ name: 'ltaoo }]
}
将后端传输的格式改成这样就解决了。但疑惑的是后端使用gson,不应该会将不符合JSON格式的数据转换为JSON。
JSON 的正确格式
先回答第一个问题,[1, 2, 3]这种格式是正确的JSON格式。
对JSON格式的说明是:
JSON基于JavaScript对象字面量语法表示,即“键值对”。值可以是数字、布尔值、null、数组或对象。书中并没有提到
[1, 2, 3]这种格式是否为正确的json格式,但网络搜索得到的答案是。
由此,我们可以提出更多问题:
-
[1, 2, 3, undefined]是JSON数据吗?
没有 JSON 对象
额,严格来说这句话不怎么正确,JavaScript中存在JSON对象,即内置的JSON,我们常常用来解析json字符串或序列化JavaScript对象为json字符串。
对,只有”json字符串“这种东西
const jsonObj = {
"name": "ltaoo"
}
即使这样写,它也不是我们想象中的json对象,它只是存在于想象中。