感谢图灵社区的电子书阅读奖励计划。
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
对象,它只是存在于想象中。