文章目录

  • JSON基础
    • 1 JSON概念
    • 2 JSON语法规则要点
    • 3 JSON数据
      • 3.1 JSON数字数据示例
      • 3.2 JSON字符串数据示例
      • 3.3 JSON逻辑值数据示例
      • 3.4 JSON数组数据示例
      • 3.5 JSON对象数据示例
      • 3.6 JSON null 数据示例
    • 4 JSON 对象
    • 5 JSON数组
    • 6 6. JSON 对象与数组混合存放示例
    • 7 总结

JSON基础

1 JSON概念

JSON(JavaScript Object Notation) 是一种通用的轻量级数据交换文本格式。它很容易让人阅读和编写,也便于机器进行解析和生成。它使用JavaScript语法来存储和描述数据对象,但是JSON完全独立于JavaScript。JSON可适用于多种流行编程语言。这些特性使JSON成为理想的数据交换格式。

JSON重点概念
数据、对象、数组

2 JSON语法规则要点

  • 数据以“名”“值”对呈现
  • 数据“名”和“值”之间由冒号分隔
  • 大括号{}用于标注对象内容
  • 中括号[]用于标注数组内容
  • 逗号用于分隔数据、对象、数组

3 JSON数据

JSON数据以“名”“值”对呈现。数据“名”“值”由冒号分隔。

JSON数据的书写格式是
“JSON数据名”:JSON数据值

JSON数据举例:
“Year”: 2016
“URL”:”www.taichi-maker.com”

JSON数据名称
JSON数据名称需要放在双引号中。以下示例都是合法的JSON数据名:
“Value””信息1”

JSON数据值
JSON数据值可以是以下内容:

  • 数字(整数或浮点数)
  • 字符串
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

注:一个JSON数据名称只能对应一个值。以下是一系列JSON数据的举例。

3.1 JSON数字数据示例

"value" : 25

3.2 JSON字符串数据示例

"name" : "taichi-maker"

3.3 JSON逻辑值数据示例

"bool_value" : true

3.4 JSON数组数据示例

"info": [{"name" : "taichi-maker","website" : "www.taichi-maker.com"},{"year": 2020,"month": 12,"day": 30}
]

3.5 JSON对象数据示例

"info": {"name" : "taichi-maker","website" : "www.taichi-maker.com"
}

3.6 JSON null 数据示例

“value” : null

4 JSON 对象

JSON对象在大括号{}中书写,对象可以包含单个或者多个JSON数据。
对象(object) 是一个无序的数据集合(“‘名/值’对”集合)。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名/值’ 对”之间使用“,”(逗号)分隔。

以下是含有单个数据的JSON对象示例:

{"name" : "taichi-maker"
}

以下是含有多个数据的JSON对象示例。该对象由两个JSON数据组成。

{"name" : "taichi-maker","website" : "www.taichi-maker.com"
}

我们再来看一个含有多个数据的JSON对象示例。该对象包含两个JSON数据。而每一个JSON数据又包含一个JSON对象。

{"info": {"name": "taichi-maker","website": "www.taichi-maker.com"},"date": {"year": 2020,"month": 12,"day": 30}
}

从以上的示例我们可以看到,JSON对象中的数据使用逗号进行分隔。

注:对象不能直接存放对象,以下示例是错误的。

{{"name": "taichi-maker","website": "www.taichi-maker.com"},{"year": 2020,"month": 12,"day": 30}
}

注:对象也不能直接存放数组,以下示例是错误的。

{"info": {"name": "taichi-maker","website": "www.taichi-maker.com"},[{"temperature" : 15}]
}

5 JSON数组

数组(array) 是相同元素的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 如下所示:

["Tom","Jerry","Shuke","Beita"][1,3,5,7]

数组可包含一个或者多个对象。以下是包含单个对象的数组示例:

[{"name" : "taichi-maker","website" : "www.taichi-maker.com"}
]

以下是包含多个对象的数组示例:

[{"name" : "taichi-maker","website" : "www.taichi-maker.com"},{"year": 2020,"month": 12,"day": 30}
]

数组也可以包含单个或多个数组,如下所示:

[[{"name" : "taichi-maker","website" : "www.taichi-maker.com"},{"year": 2020,"month": 12,"day": 30}],[{"temperature" : 15,}]
]

请留意,在以上示例中。数组中的元素之间都是使用逗号进行分割的。

注:数组不能直接存放JSON数据。以下示例是错误的。

["date": "2020-02-02","weekday": "THU"
]

6 6. JSON 对象与数组混合存放示例

通过以下示例我们可以看到,该JSON对象包含有一个数据,数据名为results,该数据的值是一个数组。此数组只含有一个对象。此对象包含有三个数据。这三个数据的名称分别是:location、now和last_update。其中location的值是含有两个数据的对象。now的值是含有三个数据的对象。last_update的值是字符串”2020-03-01T20:10:00+08:00″。

{"results": [{"location": {"name": "Beijing","country": "CN"},"now": {"text": "Clear","code": "1","temperature": "3"},"last_update": "2020-03-01T20:10:00+08:00"}]
}

7 总结

JSON文件乍一看很复杂,但只要注意以下几点就可以分析出JSON数据内容。

首先注意以下符号的含义:

  1. 用于分隔数据的“名”和“值”
  2. {} 标注对象内容
  3. []标注数组内容
  4. 分隔数据、对象和数组

另外注意:

  • 对象用于存放数据(名值对)。
  • 对象不能直接存放对象或数组。
  • 数组存放元素有序号(序号起始值0)。
  • 数组不能直接存放数据(名值对)。

网上有很多网页JSON工具供我们使用。这里推荐oktools.net网站JSON在线工具。您可以使用该工具解析JSON文件,也可以用它来验证编写的JSON是否符合语法规则。

内容来自 -----> 太极创客
详情可见太极创客官网,内有Arduino、ESP32等详细教程
http://www.taichi-maker.com

【ESP32_8266_WiFi (九)】JSON基础相关推荐

  1. 九. Python基础(9)--命名空间, 作用域

    九. Python基础(9)--命名空间, 作用域 1 ● !a 与 not a 注意, C/C++可以用if !a表示if a == 0, 但是Python中只能用if not a来表示同样的意义. ...

  2. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try: <...............&g ...

  3. 九章基础算法04:二叉搜索树与哈希表

    目录 1. 什么是二叉搜索树 1.1 二叉搜索树结构 1.2 二叉搜索树特性应用 2. 二叉搜索树基础实现 2.1 BST类型与构造函数 2.2 插入操作 2.2.1 思路分析 2.2.2 递归实现 ...

  4. [Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. 视频教程-JSON基础入门实战讲解-JavaScript

    JSON基础入门实战讲解 04年进入计算机行业.拥有6年net和php项目开发经验,8年java项目开发经验. 现前端全栈工程师,主攻产品设计,微信开发等. 黄菊华 ¥39.00 立即订阅 扫码下载「 ...

  6. JSON基础入门实战讲解在线视频课程-JSON 使用 JavaScript 语法

    因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON. 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:http ...

  7. JSON基础入门实战讲解在线视频课程-JSON语法规则,json对象,json数组的定义和使用

    JSON 语法 微信小程序交流群:111733917 | 微信小程序从0基础到就业的课程:https://edu.csdn.net/topic/huangjuhua JSON 语法是 JavaScri ...

  8. 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】

    原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...

  9. Educoder - JSON基础

    第1关:JSON篇:JSON基础知识 {"students":[{"name":"赵昊","age":15," ...

最新文章

  1. Apple的LZF算法解析
  2. 双11背后基础设施软硬 结合实践创新
  3. python自然语言处理.词性标注
  4. java stringbuilder换行_初遇Java StringBuffer 和 StringBuilder 类利用 StringBuilder 给TextView实现换行处理...
  5. 北理工 管理系统计算机仿真作业,20秋北理工《CADCAM原理与应用》--模拟3-答案 更…...
  6. CPU和内存之间——地址映射(理解很重要)
  7. easypoi导出excel 效率_Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率...
  8. Python编程基础07:选择结构
  9. Machine Learning - Coursera week5 Backpropagation in Practice
  10. 李雅普诺夫稳定性理论的理解
  11. 暑期作息时间表模板_暑假作息时间表
  12. Are We Ready For Learned Cardinality Estimation实验环境搭建
  13. python爬虫(20)获取酷我音乐排行榜榜单作品
  14. 【图解CAN总线】-8-CANFD总线网络“负载率”计算
  15. 【Vue基础知识总结 6,我的支付宝3面+美团4面+拼多多四面
  16. mysql级联删除_近百道MySQL面试题和答案(2020收藏版)(完结篇)
  17. 大规模手机定位采集系统设计
  18. 人体反应测试仪 c语言,人体反应速度测试仪.doc
  19. 关于最新版mumu模拟器(2.2.16)安装xposed框架
  20. 夯实C++基础学习笔记

热门文章

  1. linux 修改xt_recent参数 ip_list_tot ip_pkt_list_tot
  2. 1504: 变态杀人狂 时间限制: 1 Sec 内存限制: 128 MB 提交: 21 解决: 10 [提交][状态][论坛] 题目描述 变态杀人狂三师弟想到一个杀人游戏 游戏规则如下: 三师
  3. PHP递归的三种方式
  4. 如何让vim编辑器永久显示行号
  5. 不一样的发布会 库克开场就谈隐私和环保
  6. 动物克隆技术应用价值_动物克隆技术及其研究现状
  7. mysql第五章 在线测试_PHP+MySQL实现在线测试答题示例
  8. WiFi信号弱,选穿墙路由器还是放大器,WiFi信号放大器真的有用吗?
  9. vulhub漏洞复现-bash(CVE-2014-6271) shellshock-破壳漏洞
  10. matlab数据导出excel,matlab数据点导出excel表格-怎样将matlab中数据导出到excel中?...