一. JSON(JavaScript Object Notation)即JavaScript对象标记法:
-JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
-JSON格式的数据以键值对的形式存储,类似于编程语言中的字典或对象。
-JSON格式的数据通常用于Web开发中的前后端数据交换,API响应等。
二.JSON基础语法知识
键值对(Key-Value Pair):
键值对是构成JSON对象的基本单元。
-- 键和值之间用冒号 : 分隔
--键必须是字符串类型,并且用双引号包围
如下:
{
"name": "Alice",
"age": 28,
"is_student": true,
"courses": ["Biology", "Mathematics", "Science"]
}
对象:
一个无序的键值对集合
--对象是由花括号 { } 包围的键值对集合
-- 每个键必须是字符串类型,并且用双引号 " " 包围
-- 键值对之间用逗号 , 分隔
-- 对象格式示例:`{ "key1": "value1", "key2": "value2" }`
--值可以是字符串、数值、布尔值、数组、对象或 "null"
数组:
有序的值的集合
-- 数组是由方括号 [ ] 包围的值列表
--数组中的值可以是任何JSON支持的数据类型,包括字符串、数字、布尔值、null、对象或数组(其他数组)
--数组中的值之间用逗号 , 分隔
["apple","banana","pear"]
字符串(String):
--字符串是用双引号 "' 包围的文本
--特殊字符需要使用转义字符,例如:\" 表示双引号,\\ 表示反斜杠,\n 表示换行符
{
"name": "Alice",
"occupation": "Programmer",
"quote": "I see the future is HTML5.\nIt's not a tag, it's a doctype!",
"details": {
"age": 30,
"address": "1234\\5678\\91011"
},
"skills": ["JavaScript", "HTML5", "CSS3", "JSON"]
}
这个字符串中包含了一个换行符 \n
,它在字符串中被转义,所以会在文本中显示为换行。
"1234\\5678\\91011"
实际上表示的地址是 1234\5678\91011
。这里的每个单独的 \
都是一个字面上的反斜杠,而不是转义字符的开始。
数字(Number):
--数字可以是整数或浮点数
--JSON不支持八进制和十六进制,数值必须以十进制表示
布尔值(Boolean):
-- 布尔值只有两个可能的值:true和false
Null:
--null表示空值
逗号分隔(Comma Separation):
--在对象中,除了最后一个键值对外,每个键值对后都需要用逗号 , 分隔
--在数组中,除了最后一个值外,每个值后都需要用逗号 , 分隔
{
"book": {
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald",
"published": 1925,
"characters": ["Jay Gatsby", "Daisy Buchanan", "Tom Buchanan", "Nick Carraway"],
"summary": "A portrait of the Jazz Age in all of its decadence and excess, seen through the eyes of the narrator, Nick Carraway.",
"available": true
}
}
读取json文件
以python为例:
一个book.json的文件
import json
# 打开JSON文件
with open('book.json', 'r') as json_file:
# 加载JSON数据
data = json.load(json_file)
# 打印读取的数据
print(data)
以mysql为例:
SELECT JSON_EXTRACT(json_column, '$.book.title') AS title,
JSON_EXTRACT(json_column, '$.book.author') AS author,
JSON_EXTRACT(json_column, '$.book.published') AS published,
JSON_EXTRACT(json_column, '$.book.summary') AS summary,
JSON_EXTRACT(json_column, '$.book.available') AS available
FROM table_name;
三·JSON应用
JSON的广泛应用得益于其简单性、灵活性和跨平台的特性,使其成为现代软件开发中不可或缺的数据格式之一。
主要应用场景:
Web开发:JSON常用于前端和后端之间的数据交换,尤其是在AJAX请求中用于异步加载数据,从而实现页面的局部刷新而无需重新加载整个页面。
API设计:RESTfulAPI通常使用JSON作为数据交换格式。因其结构简单、易于解析,非常适合网络传输。
配置文件:JSON格式清晰、层次分明,适合用来编写配置文件,如Web服务器的配置或应用程序的设置。
移动应用开发:在移动应用中,JSON常用于客户端和服务器之间的数据交互,因其数据量小,适合网络传输,可以提高响应速度。
序列化:JSON常用于对象的序列化,即将对象状态转换为可存储或传输的格式。例如,在Python中,可以使用json模块将对象序列化为JSON格式,并在需要时返回该序列化对象。