ESP8266 Arduino开发之路(10)— JSON基础

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数据值为逻辑值,只有truefalse两个。

"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解析

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值