当前位置: 代码迷 >> 综合 >> ESP8266 Arduino开发之路(10)— JSON基础
  详细解决方案

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

热度:39   发布时间:2023-12-06 02:51:11.0

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

  相关解决方案