柚子快報(bào)激活碼778899分享:sql JSON基礎(chǔ)知識(shí)速成
柚子快報(bào)激活碼778899分享:sql JSON基礎(chǔ)知識(shí)速成
一. JSON(JavaScript Object Notation)即JavaScript對(duì)象標(biāo)記法:
-JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。
-JSON格式的數(shù)據(jù)以鍵值對(duì)的形式存儲(chǔ),類似于編程語言中的字典或?qū)ο蟆?/p>
-JSON格式的數(shù)據(jù)通常用于Web開發(fā)中的前后端數(shù)據(jù)交換,API響應(yīng)等。
二.JSON基礎(chǔ)語法知識(shí)
鍵值對(duì)(Key-Value Pair):
鍵值對(duì)是構(gòu)成JSON對(duì)象的基本單元。
-- 鍵和值之間用冒號(hào) : 分隔
--鍵必須是字符串類型,并且用雙引號(hào)包圍
如下:
{
"name": "Alice",
"age": 28,
"is_student": true,
"courses": ["Biology", "Mathematics", "Science"]
}
對(duì)象:
一個(gè)無序的鍵值對(duì)集合
--對(duì)象是由花括號(hào) { } 包圍的鍵值對(duì)集合
-- 每個(gè)鍵必須是字符串類型,并且用雙引號(hào) " " 包圍
-- 鍵值對(duì)之間用逗號(hào) , 分隔
-- 對(duì)象格式示例:`{ "key1": "value1", "key2": "value2" }`
--值可以是字符串、數(shù)值、布爾值、數(shù)組、對(duì)象或 "null"
數(shù)組:
有序的值的集合
-- 數(shù)組是由方括號(hào) [ ] 包圍的值列表
--數(shù)組中的值可以是任何JSON支持的數(shù)據(jù)類型,包括字符串、數(shù)字、布爾值、null、對(duì)象或數(shù)組(其他數(shù)組)
--數(shù)組中的值之間用逗號(hào) , 分隔
["apple","banana","pear"]
字符串(String):
--字符串是用雙引號(hào) "' 包圍的文本
--特殊字符需要使用轉(zhuǎn)義字符,例如:\" 表示雙引號(hào),\\ 表示反斜杠,\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"]
}
這個(gè)字符串中包含了一個(gè)換行符?\n,它在字符串中被轉(zhuǎn)義,所以會(huì)在文本中顯示為換行。
"1234\\5678\\91011" 實(shí)際上表示的地址是 1234\5678\91011。這里的每個(gè)單獨(dú)的 \ 都是一個(gè)字面上的反斜杠,而不是轉(zhuǎn)義字符的開始。
?數(shù)字(Number):
--數(shù)字可以是整數(shù)或浮點(diǎn)數(shù)
--JSON不支持八進(jìn)制和十六進(jìn)制,數(shù)值必須以十進(jìn)制表示
布爾值(Boolean):
-- 布爾值只有兩個(gè)可能的值:true和false
Null:
--null表示空值
逗號(hào)分隔(Comma Separation):
--在對(duì)象中,除了最后一個(gè)鍵值對(duì)外,每個(gè)鍵值對(duì)后都需要用逗號(hào) , 分隔
--在數(shù)組中,除了最后一個(gè)值外,每個(gè)值后都需要用逗號(hào) , 分隔
{
"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為例:
一個(gè)book.json的文件
import json
# 打開JSON文件
with open('book.json', 'r') as json_file:
# 加載JSON數(shù)據(jù)
data = json.load(json_file)
# 打印讀取的數(shù)據(jù)
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應(yīng)用
JSON的廣泛應(yīng)用得益于其簡單性、靈活性和跨平臺(tái)的特性,使其成為現(xiàn)代軟件開發(fā)中不可或缺的數(shù)據(jù)格式之一。
主要應(yīng)用場(chǎng)景:
Web開發(fā):JSON常用于前端和后端之間的數(shù)據(jù)交換,尤其是在AJAX請(qǐng)求中用于異步加載數(shù)據(jù),從而實(shí)現(xiàn)頁面的局部刷新而無需重新加載整個(gè)頁面。
API設(shè)計(jì):RESTfulAPI通常使用JSON作為數(shù)據(jù)交換格式。因其結(jié)構(gòu)簡單、易于解析,非常適合網(wǎng)絡(luò)傳輸。
配置文件:JSON格式清晰、層次分明,適合用來編寫配置文件,如Web服務(wù)器的配置或應(yīng)用程序的設(shè)置。
移動(dòng)應(yīng)用開發(fā):在移動(dòng)應(yīng)用中,JSON常用于客戶端和服務(wù)器之間的數(shù)據(jù)交互,因其數(shù)據(jù)量小,適合網(wǎng)絡(luò)傳輸,可以提高響應(yīng)速度。
序列化:JSON常用于對(duì)象的序列化,即將對(duì)象狀態(tài)轉(zhuǎn)換為可存儲(chǔ)或傳輸?shù)母袷健@?,在Python中,可以使用json模塊將對(duì)象序列化為JSON格式,并在需要時(shí)返回該序列化對(duì)象。
柚子快報(bào)激活碼778899分享:sql JSON基礎(chǔ)知識(shí)速成
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。