什么是JSON?JSON简述

目录

1.什么是JSON?

2.JSON的历史背景

3.JSON 的基本结构

3.1 对象

3.2 数组

4 JSON 数据类型

5. JSON 语法规则

6. 使用 JSON 的优势

7. JSON 与 XML 的比较

8. JSON 的应用场景

9.JSON 在 Spring Boot 和前端交互中的应用

9.1 创建和绑定对象

10 .总结


1.什么是JSON?

        JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript 语言的一个子集,但独立于编程语言。这意味着它可以在许多编程环境中使用,包括但不限于 JavaScript。其设计目标是为了数据传输而优化,具有简洁和灵活的特点。

2.JSON的历史背景

        JSON 的发展可以追溯到 2001 年,由道格拉斯·克罗克福德 (Douglas Crockford) 推广和标准化。其设计的初衷是为了简化数据交换过程,尤其是在互联网应用程序中。JSON 作为一种替代 XML 的数据交换格式迅速流行,特别是在 Web 开发中,它以其简洁和高效的特点赢得了开发者的青睐。

3.JSON 的基本结构

        JSON 采用键值对的形式来表示数据。它的基本结构包括两种类型:对象和数组。

3.1 对象

        对象是一个无序的键值对集合,用 {} 表示。例如:

{
  "name": "John",
  "age": 30,
  "isStudent": false
}

        在这个例子中,nameageisStudent 是键,每个键对应一个值。值可以是字符串、数字、布尔值、数组、对象或 null

3.2 数组

        数组是有序的值的集合,用 [] 表示。例如:

[
  "apple",
  "banana",
  "cherry"
]

数组中的值可以是任意类型,包括对象。例如:

[
  {
    "name": "John",
    "age": 30
  },
  {
    "name": "Jane",
    "age": 25
  }
]
4 JSON 数据类型

JSON 支持以下几种数据类型:

  1. 字符串:字符串必须用双引号括起来。字符串可以包含转义字符(如 \n 表示换行)。例如:"hello"
  2. 数字:数字可以是整数或浮点数,不用引号括起来。例如:423.14
  3. 布尔值:表示 truefalse,不需要引号。例如:true
  4. 数组:一个值的有序集合,用方括号括起来。例如:[1, 2, 3]
  5. 对象:一个无序的键值对集合,用大括号括起来。例如:{"key": "value"}
  6. null:表示空值。例如:null
5. JSON 语法规则
  1. 对象:对象以大括号 {} 括起来。对象中的数据由键值对表示,键和值之间使用冒号 : 分隔,每对键值对之间使用逗号 , 分隔。例如:{"key": "value"}
  2. 数组:数组以方括号 [] 括起来,值之间使用逗号 , 分隔。例如:[1, 2, 3]
  3. :键必须是字符串(使用双引号括起来)。
  4. :值可以是字符串、数字、对象、数组、布尔值或 null
  5. 字符串:字符串必须使用双引号括起来。JSON 字符串中不允许使用单引号。
  6. 空白字符:JSON 中允许使用空白字符(空格、制表符、换行符)来提高可读性,但不能包含在字符串之外的其他位置。
6. 使用 JSON 的优势
  1. 易于阅读和编写:JSON 结构简单,语法直观,易于人类阅读和编写。
  2. 轻量级:JSON 的语法简洁,没有冗余的标记,使得数据传输效率更高。
  3. 与编程语言无关:JSON 独立于编程语言,广泛支持各种编程语言,如 JavaScript、Python、Java、C# 等。
  4. 广泛应用:JSON 是 Web 开发中最常用的数据交换格式,广泛应用于 AJAX、RESTful API 等领域。
  5. 高效解析:JSON 数据解析速度快,适合实时数据传输和处理。
7. JSON 与 XML 的比较

尽管 XML 也被广泛用于数据交换,但 JSON 相比之下具有多种优势:

  1. 语法简洁:JSON 语法简单,没有冗余的结束标签。
  2. 数据类型丰富:JSON 支持多种数据类型(字符串、数字、布尔值、数组、对象、null),而 XML 只能表示字符串。
  3. 更易解析:JSON 可以直接解析为编程语言中的原生数据类型,而 XML 则需要额外的解析步骤。
  4. 体积小:由于没有冗余标签,JSON 数据通常比 XML 数据体积更小,传输效率更高。
8. JSON 的应用场景
  1. Web 应用:JSON 在 Web 应用中广泛用于前后端数据交换,特别是在 AJAX 请求中。
  2. RESTful API:RESTful API 通常使用 JSON 作为数据传输格式,以实现客户端和服务器之间的数据交换。
  3. 配置文件:许多应用程序使用 JSON 作为配置文件格式,便于配置和管理应用程序设置。
  4. 数据存储:JSON 可以用作简单的数据存储格式,特别是在 NoSQL 数据库(如 MongoDB)中,JSON 被用作文档存储格式。
9.JSON 在 Spring Boot 和前端交互中的应用

        在现代 Web 开发中,Spring Boot 和前端框架(如 Angular、React、Vue 等)之间的交互通常使用 JSON 格式来传输数据。这种方式不仅简化了数据交换的过程,还使得前后端的集成更加无缝和高效。

9.1 创建和绑定对象

        在 Spring Boot 中,当接收到前端发送的 JSON 数据时,Spring 会通过反射机制将 JSON 数据自动绑定到 Java 对象上。这个过程包括以下几个步骤:

  1. 反序列化:接收到的 JSON 字符串会被反序列化为对应的 Java 对象。这通常是通过 Jackson 库完成的,Jackson 是一个功能强大的 JSON 处理库,默认集成在 Spring Boot 中。

  2. 对象创建:反序列化过程中,Jackson 会使用反射机制创建 Java 对象的实例,并根据 JSON 字符串中的字段进行赋值。

  3. 字段绑定:反射机制会自动将 JSON 中的键值对绑定到 Java 对象的相应字段上。这要求 Java 对象的字段名和 JSON 键名一致,并且需要提供相应的 getter 和 setter 方法。

10 .总结

        JSON 作为一种轻量级的数据交换格式,具有简洁、易读和高效的特点。它在 Web 开发中得到了广泛应用,尤其是在前后端数据交换和 RESTful API 中。通过学习和掌握 JSON 的基本语法和使用方法,您可以轻松地在不同编程环境中进行数据交换,提高开发效率。

  • 38
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.S.V.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值