上一节我们详细讲解了JS中的保留关键字,本节我们将学习JS中的JSON。那什么是JSON呢?在JS里,JSON是一种常用的数据传输格式,服务端和客户端如果进行数据传输,一般都是通过JSON格式进行表达。

我们先来看一个JSON实例:

{"course":[
{"C语言网":"dotcpp.com"},
{"C语言教程":"https://www.dotcpp.com/course/c/"},
{"计算机二级C语言":"https://www.dotcpp.com/course/erjic/"},
{"数据结构教程":"https://www.dotcpp.com/course/ds/"}
]}

可以看出是一个course的对象,对应一个数组(包括4个元素)。

聪明的读者早就想到,这不是JS对象的创建方式吗?最大的特点就是键值对存储。

实际上,JSON内容的基本结构要么是对象,要么是数组:

/*对象(Object)*/
//json
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}
/*数组(Array)*/
//json
["value1", "value2", "value3"]

JSON里的值有别于JS。在JSON里,字符串必须要双引号包裹。下面罗列了一些JSON的值:

类型示例说明
字符串"Dotcpp"必须使用双引号
数字1 , 03.14-1整数、浮点数
布尔值truefalse小写
空值null小写
对象{"key": "value"}键值对集合
数组[0, 1, 2, 3]有序值集合

当然,JSON里也存在转移字符:

转义序列含义
\"双引号
\\反斜杠
\/正斜杠
\b退格符
\f换页符
\n换行符
\r回车符
\t制表符
\uXXXXUnicode 字符

值得注意的是,JSON本质是字符串。

console.log('{"Dotcpp编程":"dotcpp.com"}');//这是一个JSON,本质是字符串
console.log({"Dotcpp编程":"dotcpp.com"});//这是一个对象

既然如此, 我们可以把接受到的JSON数据转为对象,方便操作;同理,也可以把对象转为字符串(JSON格式),直接用于数据传输。最常见的场景就是浏览器读取本地存储了:

// 存储到 localStorage
const website = {"Dotcpp编程": "dotcpp.com"};
localStorage.setItem('website', JSON.stringify(website));
// 从 localStorage 读取
const storedWebsite = JSON.parse(localStorage.getItem('website'));
console.log(storedWebsite["Dotcpp编程"]); // "dotcpp.com"

总结:在JS里,JSON的本质是字符串,用于服务端和客户端的信息传输,同时要记住,JSON内的字符串需要通过双引号("")包裹!

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)