从0到1上手JSON,这篇教程就够了

目录

一、JSON 是什么

二、JSON 语法基础

(一)数据类型

(二)语法规则

三、JSON 在不同编程语言中的使用

(一)JavaScript

(二)Python

四、JSON 数据的解析与生成

(一)解析方法

(二)生成方式

五、JSON 应用案例

(一)Web 应用前后端数据交互

(二)配置文件存储

六、学习资源推荐


一、JSON 是什么

JSON,全称为 JavaScript Object Notation,也就是 JavaScript 对象表示法 ,是一种轻量级的数据交换格式。它诞生于 20 世纪 90 年代末,由 Douglas Crockford 提出。别看它和 JavaScript 关系紧密,但 JSON 可是独立于编程语言的文本格式,这意味着几乎所有的现代编程语言都能对它进行解析和生成,兼容性拉满。

JSON 的语法简洁明了,主要由两种结构组成:对象和数组。对象是由花括号{}包围的键值对集合,每个键值对之间用逗号,分隔,键必须是字符串,值可以是字符串、数字、布尔值、null、对象或者数组。比如:

 

{

"name": "张三",

"age": 30,

"isStudent": false,

"hobbies": ["阅读", "跑步", "旅行"],

"address": {

"city": "北京",

"street": "朝阳区"

}

}

在这个例子里,name、age、isStudent、hobbies和address都是键,对应的值分别展示了不同的数据类型,其中address的值又是一个嵌套的对象。

数组则是由方括号[]包围的有序值列表,值之间同样用逗号,分隔,这些值也可以是各种数据类型。像这样:

 

["苹果", "香蕉", "橙子"]

当然,数组里也能包含对象,形成更复杂的数据结构:

 

[

{

"name": "张三",

"age": 30

},

{

"name": "李四",

"age": 25

}

]

凭借着自身的优势,JSON 在诸多领域都得到了广泛应用。在 Web 开发里,它是前后端数据交换的 “主力军”。当你在浏览器中访问一个网站,前端页面通过 AJAX 请求从服务器获取数据,服务器返回的数据大概率就是 JSON 格式。比如你在电商网站查看商品列表,服务器返回的商品信息就会以 JSON 格式传输过来,前端拿到数据后就能轻松解析并展示在页面上。

在配置文件方面,JSON 也表现出色。许多应用程序都使用 JSON 格式的配置文件来存储各种配置信息,像服务器的地址、端口号、数据库连接信息等。它的易读性和易解析性让开发者能够快速理解和修改配置内容。

另外,在 NoSQL 数据库中,比如 MongoDB,就采用了类似 JSON 的 BSON(Binary JSON)格式来存储数据,充分利用了 JSON 灵活的数据结构,方便存储和查询半结构化数据。

二、JSON 语法基础

了解了 JSON 的基本概念后,接下来咱们深入学习一下 JSON 的语法基础,这可是掌握 JSON 的关键。

(一)数据类型

JSON 支持 6 种数据类型,每种类型都有其独特的表示方式和用途:

  • 字符串(String):由双引号包裹的一系列 Unicode 字符。比如 "Hello, JSON!",注意这里必须是双引号,单引号在 JSON 中是不被允许的 。像'Hello'这样用单引号包裹就会导致语法错误。
  • 数字(Number):可以是整数,如100;也可以是浮点数,比如3.14。不过要注意,JSON 中不支持八进制(如010)和十六进制(如0xFF)表示法,并且不能出现前导零(除了0本身),像012这种写法就是错误的。
  • 布尔值(Boolean):只有两个值,true和false,用于表示逻辑判断结果。例如{"isDone": true} 。
  • null:表示空值,用于表示某个值的缺失。比如{"message": null} 。
  • 数组(Array):用方括号[]包围,里面的值可以是任意 JSON 数据类型,且值之间用逗号分隔。例如["苹果", "香蕉", "橙子"] ,或者[1, true, "test", null] 。数组还能嵌套,像[[1, 2], [3, 4]] 。
  • 对象(Object):由花括号{}包围的键值对集合,键必须是字符串,用双引号包裹,键值对之间用冒号:分隔,多个键值对之间用逗号分隔。例如{"name": "张三", "age": 30} ,对象也可以嵌套,比如{"person": {"name": "李四", "age": 25}} 。

(二)语法规则

JSON 的基本语法规则围绕着上述数据类型展开,主要包含以下几点:

  • 键值对:在对象中,键值对是基本组成部分。键作为数据的标识,必须是字符串且用双引号包裹;值则可以是任意 JSON 数据类型。例如{"city": "北京"} ,这里"city"是键,"北京"是值。
  • 数组表示:数组中的值按照顺序排列,可通过索引访问,索引从 0 开始。比如["a", "b", "c"][1]会返回"b" 。
  • 对象表示:对象内的键必须唯一,若出现重复键,后面的键值对会覆盖前面的。比如{"name": "张三", "name": "李四"} ,最终"name"的值是"李四" 。
  • 特殊字符转义:在字符串中,如果需要使用特殊字符,如双引号"、反斜杠\、换行符\n等,要进行转义。例如{"message": "He said, \"Hello!\""} ,这里双引号被转义,才能正常表示在字符串中。

需要注意的是,JSON 语法非常严格,任何小的语法错误,比如缺少逗号、引号不匹配等,都会导致解析失败。同时,由于 JSON 源自 JavaScript,它的语法和 JavaScript 对象字面量很相似,但也有区别,比如 JSON 的键必须是字符串且用双引号包裹 ,而 JavaScript 对象的键可以不用引号包裹(如果是合法标识符)。掌握这些语法基础,是我们正确使用 JSON 的第一步。

三、JSON 在不同编程语言中的使用

了解了 JSON 的语法基础后,我们来看看在实际编程中,如何在不同编程语言里玩转 JSON。JSON 凭借其跨语言的特性,在各种编程语言中都有广泛的应用,接下来咱们就以 JavaScript 和 Python 这两种常用语言为例,深入探讨一下。

(一)JavaScript

在 JavaScript 中,JSON 是一等公民,因为 JSON 最初就是从 JavaScript 对象字面量演变而来的,所以 JavaScript 对 JSON 的支持非常原生且强大。

在 JavaScript 中,主要使用JSON.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大雨淅淅

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

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

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

打赏作者

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

抵扣说明:

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

余额充值