ESP8266 Arduino开发之路(10)— JSON基础
一、前言
JSON(JavaScript Object Notation) 是一种通用的轻量级数据交换文本格式。它很容易让人阅读和编写,也便于机器进行解析和生成。它使用JavaScript语法来存储和描述数据对象,但是JSON完全独立于JavaScript。JSON可适用于多种流行编程语言。这些特性使JSON成为理想的数据交换格式。
参考自:JSON基础
二、JSON数据组成
JSON数据是以“名”“值”对呈现的,数据中名
和值
由冒号分隔。
JSON数据的书写格式如下所示,我们可以看到,JSON数据名
需要放在双引号中,而JSON数据值
可以有多种类型,
“JSON数据名”:JSON数据值
三、JSON数据值
JSON数据值可以是以下内容:
1. 数字(整数或浮点数)
2. 字符串
3. 逻辑值(true 或 false)
4. 对象(在大括号中)
5. 数组(在中括号中)
6. null
需要注意的是,一个JSON数据名
只能对应一个值
。
1、数字
JSON数据值为数字时,数字可以为整数或浮点数,注意数字不可以放在双引号中。
"day":7,
"month":12,
"year":2021,
"temperature":37.5,
"humidity":60.8
2、字符串
当JSON数据值为数字符串时,需要将字符串写在双引号中。
"name":"william",
"city":"heifei",
"country":"China"
3、逻辑值
JSON数据值为逻辑值,只有true
和false
两个。
"man":true,
"woman":false
4、JSON对象
JSON对象需要写在大括号{}
中,JSON对象可以包含单个或者多个JSON数据。
JSON对象(object
)是一个无序的数据集合("名"/值
对集合),一个对象以{
开始,以}
结束。
如下所示为含有单个数据的JSON对象示例:
{
"name":"william"}
由两个JSON数据组成的对象:
{
"name":"william","city":"heifei"
}
同样对象也可以作为数据值。
"who":{
"name":"william","city":"heifei","country":"China"}
5、数组
JSON 数组(array)是相同元素的有序集合。一个数组以[
开始,以]
结束。值之间使用,
(逗号)分隔。 如下所示:
[1, 2, 3, 4, 5]
数组作为JSON数据值时,如下所示
"arr":[1, 2, 3, 4, 5]
其中,数组也可以由JSON对象组成
"arr":[{
"name":"william"},{
"city":"heifei"},{
"country":"China"},{
"man":true}
]
另外,数组也可以包含单个或多个数组,数组中的元素之间使用逗号进行分割的,如下所示,
[[1, 2, 3, 4, 5],[{
"name" : "william","city":"heifei","country":"China"},{
"day":7,"month":12,"year":2021}]
]
6、null
null就代表这个数据名的数据值是为空的,是没有的
"wife":null
四、JSON工具
网上有很多网页在线JSON工具可供我们使用。如下网站可以使用其提供的JSON工具解析JSON文件,也可以用它来验证编写的JSON是否符合语法规则。
JSON在线解析:https://www.json.cn/
oktools.net网站JSON工具:https://oktools.net/json
五、附录
上一篇:ESP8266 Arduino开发之路(9)— OLED的UI显示控制
下一篇:ESP8266 Arduino开发之路(11)— ESP8266中的JSON解析