JSON數(shù)據(jù)格式化方法詳細(xì)介紹
數(shù)據(jù)介紹
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于JavaScript 編程語(yǔ)言的一個(gè)子集。盡管它起源于 JavaScript,但 JSON 已經(jīng)成為了一個(gè)完全獨(dú)立于語(yǔ)言的文本格式,被廣泛采用和應(yīng)用于多種編程語(yǔ)境中。
JSON由道格拉斯·克羅克福特在1999年設(shè)計(jì)并提出。它是一個(gè)簡(jiǎn)化版的數(shù)據(jù)傳輸格式,其設(shè)計(jì)初衷是為了使得不同的網(wǎng)絡(luò)應(yīng)用程序可以輕易地交換數(shù)據(jù)。隨著時(shí)間的推移,JSON逐漸演變成了一種主流的數(shù)據(jù)格式,并被許多現(xiàn)代編程語(yǔ)言所支持。
JSON的語(yǔ)法建立在兩種結(jié)構(gòu)之上:鍵值對(duì)的集合(類似于 Python 中的字典或 Objective C 中的對(duì)象)以及有序值列表(類似于數(shù)組)。JSON 數(shù)據(jù)可以是一個(gè)簡(jiǎn)單的值、一個(gè)數(shù)組、一個(gè)對(duì)象或者一個(gè)對(duì)象和數(shù)組的組合。下面是這些數(shù)據(jù)結(jié)構(gòu)的詳細(xì)描述:
簡(jiǎn)單值: JSON中的簡(jiǎn)單值指的是字符串、數(shù)字、布爾值(true或false)和null。
數(shù)組: 數(shù)組是值的有序集合,以方括號(hào)
[]包圍并以逗號(hào),分隔。例如:[1, "apple", true]。對(duì)象: 對(duì)象是鍵值對(duì)的無(wú)序集合,以花括號(hào)
{}包圍并以逗號(hào),分隔。鍵和值之間使用冒號(hào):分隔,并且鍵必須是字符串。例如:{"name": "John", "age": 30}。
JSON數(shù)據(jù)格式具有以下特點(diǎn):
可讀性強(qiáng): JSON數(shù)據(jù)以人類可讀的純文本格式組織,這使得它即使在不借助任何工具的情況下也易于理解和編輯。
易于解析生成: 幾乎所有現(xiàn)代編程語(yǔ)言都提供了處理JSON數(shù)據(jù)的庫(kù)或內(nèi)置功能,使得從代碼中生成JSON數(shù)據(jù)或解析JSON數(shù)據(jù)變得非常便捷。
跨語(yǔ)言兼容: 作為一種通用的數(shù)據(jù)格式,JSON沒(méi)有綁定到特定的編程語(yǔ)言,這意味著在不同編程環(huán)境之間交換數(shù)據(jù)時(shí),JSON是一個(gè)很好的選擇。
數(shù)據(jù)描述能力強(qiáng): JSON能夠描述復(fù)雜的數(shù)據(jù)結(jié)構(gòu),包括嵌套的對(duì)象和數(shù)組,這使其成為表示層次化數(shù)據(jù)的理想選擇。
JSON 與 XML 和 YAML 數(shù)據(jù)格式比較:
- XML(Extensible Markup Language)是Web上數(shù)據(jù)交換的主要格式。然而,JSON 比 XML 更簡(jiǎn)潔,因?yàn)樗恍枰Y(jié)束標(biāo)簽,數(shù)據(jù)更加緊湊。此外,JSON 直接映射到編程語(yǔ)言中的數(shù)據(jù)結(jié)構(gòu),如字典或哈希表,而XML則需要解析為這些數(shù)據(jù)結(jié)構(gòu)。
- YAML(Yet Another Markup Language)是另一種用于數(shù)據(jù)序列化的格式,它注重于人類的可讀性和可寫(xiě)性。雖然YAML在某些情況下更易讀寫(xiě),但它的語(yǔ)法更復(fù)雜,有時(shí)可能會(huì)導(dǎo)致解析錯(cuò)誤。相比之下,JSON的語(yǔ)法簡(jiǎn)單且不容易引起錯(cuò)誤。
JSON(JavaScript Object Notation)是一種常用的數(shù)據(jù)交換格式,它以簡(jiǎn)潔、易讀的方式存儲(chǔ)和傳輸數(shù)據(jù)。在處理 JSON 數(shù)據(jù)時(shí),數(shù)據(jù)格式化是一個(gè)重要的步驟,可以提高數(shù)據(jù)的可讀性和可維護(hù)性。本文將介紹 JSON 數(shù)據(jù)格式化的方法,并提供兩個(gè)在線工具網(wǎng)址,幫助您在處理 JSON 數(shù)據(jù)時(shí)進(jìn)行格式化。
JSON 數(shù)據(jù)廣泛應(yīng)用于 Web 開(kāi)發(fā)、移動(dòng)應(yīng)用開(kāi)發(fā)、數(shù)據(jù)存儲(chǔ)等領(lǐng)域。以下是一個(gè)示例 JSON 數(shù)據(jù):
{"name": "John Doe","age": 30,"email": "johndoe@example.com","hobbies": ["reading","gaming","traveling"],"address": {"street": "123 Main Street","city":"New York","state": "NY"}}
目標(biāo),格式化 JSON 如下:
{
"name": "John Doe",
"age": 30,
"email": "johndoe@example.com",
"hobbies": [
"reading",
"gaming",
"traveling"
],
"address"{
"street": "123 Main Street",
"city": "New York",
"state": "NY"
}
}
那么,它可能會(huì)很難閱讀和理解。這就是我們需要格式化 JSON 數(shù)據(jù)的原因。
IDE 或腳本格式化
許多集成開(kāi)發(fā)環(huán)境(IDE)如 Visual Studio Code,PyCharm 等都有內(nèi)置的 JSON 格式化功能。你只需要將你的 JSON 數(shù)據(jù)粘貼到編輯器中,然后使用相關(guān)的格式化命令或快捷鍵即可。下面是一些常見(jiàn)的 IDE 和腳本語(yǔ)言的 JSON 格式化方法:
- Visual Studio Code(VS Code)是一款流行的免費(fèi)代碼編輯器,支持多種編程語(yǔ)言并且通過(guò)插件系統(tǒng)提供豐富的功能擴(kuò)展。對(duì)于 JSON 數(shù)據(jù),VS Code 內(nèi)置了直觀的格式化工具。要使用這個(gè)工具,只需打開(kāi)一個(gè) JSON 文件,然后按下 Ctrl+Shift+I(Windows/Linux)或 Cmd+Shift+I(Mac)快捷鍵。編輯器會(huì)自動(dòng)按照標(biāo)準(zhǔn)的縮進(jìn)規(guī)則重新格式化整個(gè)文檔,使數(shù)據(jù)結(jié)構(gòu)一目了然。
- 對(duì)于 Java 開(kāi)發(fā)者來(lái)說(shuō),IntelliJ IDEA 無(wú)疑是一款強(qiáng)大的 IDE。除了對(duì) Java 的出色支持外,它也提供了處理 JSON 數(shù)據(jù)的功能。你可以打開(kāi)一個(gè) JSON 文件,然后使用 Code > Reformat Code 菜單項(xiàng)或者快捷鍵 Ctrl+Alt+L(Windows/Linux)/ Cmd+Alt+L(Mac)來(lái)快速格式化。IntelliJ IDEA 還會(huì)在編輯時(shí)提供實(shí)時(shí)的 JSON 驗(yàn)證和提示,幫助避免語(yǔ)法錯(cuò)誤。
- Sublime Text 是另一款廣受歡迎的文本編輯器,以其速度和靈活性著稱。雖然 Sublime Text 本身并不直接支持 JSON 格式化,但你可以通過(guò)安裝插件來(lái)實(shí)現(xiàn)這一功能。例如,安裝 Package Control 之后,你可以添加 JSONFormat 插件。通過(guò) Edit > Line > Reindent 菜單項(xiàng)或者快捷鍵 Ctrl+Shift+R(Windows/Linux)/ Cmd+Shift+R(Mac),你可以很方便地對(duì)選定的 JSON 代碼進(jìn)行格式化。
- PyCharm IDE 為開(kāi)發(fā)者提供了一組快捷鍵來(lái)優(yōu)化和加速開(kāi)發(fā)流程,其中就包括用于代碼格式化的快捷鍵。對(duì)于 JSON 數(shù)據(jù),可以通過(guò)按下組合鍵 Ctrl+Alt+L 或者 Command+Option+L 來(lái)實(shí)現(xiàn)格式化。這種方法簡(jiǎn)單快捷,無(wú)需任何額外的配置或插件安裝,是 PyCharm 內(nèi)置功能的一部分。需要注意的是有時(shí)自定義的快捷鍵可能與 PyCharm 默認(rèn)或其他插件的快捷鍵沖突。在這種情況下,需要調(diào)整快捷鍵設(shè)置,以避免操作上的混淆。
Python:使用 Python 的 json 模塊可以輕松地格式化 JSON 數(shù)據(jù)。可以使用 json.dumps(data, indent=4) 方法將 JSON 對(duì)象轉(zhuǎn)換為格式化后的字符串。
import json
data = {"name": "John Doe","age": 30,"email": "johndoe@example.com","hobbies": ["reading","gaming","traveling"],"address": {"street": "123 Main Street","city":"New York","state": "NY"}}
formatted_data = json.dumps(data, indent=4)
print(formatted_data)
JavaScript:在 JavaScript 中,可以使用 JSON.stringify(data, null, 2) 方法將 JSON 對(duì)象轉(zhuǎn)換為格式化后的字符串,并指定縮進(jìn)級(jí)別為 2。
const data = {"name": "John Doe","age": 30,"email": "johndoe@example.com","hobbies": ["reading","gaming","traveling"],"address": {"street": "123 Main Street","city":"New York","state": "NY"}};
const formattedData = JSON.stringify(data, null, 2);
console.log(formattedData);
Node.js:在Node.js環(huán)境下工作,可以利用其強(qiáng)大的文件系統(tǒng)模塊(fs)來(lái)讀取和寫(xiě)入JSON數(shù)據(jù),同時(shí)結(jié)合JSON.stringify來(lái)實(shí)現(xiàn)數(shù)據(jù)的格式化。以下是一個(gè)示例代碼:
const fs = require('fs');
// 讀取原始 JSON 數(shù)據(jù)
fs.readFile('data.json', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
// 解析并格式化 JSON 數(shù)據(jù)
let jsonData;
try {
jsonData = JSON.parse(data);
} catch (error) {
console.error("Error parsing JSON:", error);
return;
}
// 格式化 JSON 數(shù)據(jù)并寫(xiě)回文件
const formattedData = JSON.stringify(jsonData, null, 4);
fs.writeFile('formatted.json', formattedData, 'utf8', err => {
if (err) console.error(err);
});
});
解釋:首先使用fs.readFile異步地讀取一個(gè)名為data.json的文件。讀取完成后,我們嘗試使用JSON.parse將文件內(nèi)容解析為一個(gè)JavaScript對(duì)象。然后我們使用JSON.stringify將這個(gè)對(duì)象格式化為一個(gè)美觀的JSON字符串,并指定縮進(jìn)為4個(gè)空格。最后,我們使用fs.writeFile將格式化后的字符串寫(xiě)回到一個(gè)新的文件formatted.json中。
IDE 或者腳本格式化 JSON,雖然能實(shí)現(xiàn)效果,但是沒(méi)有直接點(diǎn)擊來(lái)的快,接下來(lái)介紹兩個(gè)好用的在線工具網(wǎng)址。
在線工具網(wǎng)址
如果您不想安裝 IDE 或編寫(xiě)腳本來(lái)格式化 JSON 數(shù)據(jù),可以使用在線工具進(jìn)行 JSON 數(shù)據(jù)格式化。以下是兩個(gè)提供 JSON 數(shù)據(jù)格式化功能的在線工具網(wǎng)址:
- SO JSON 在線工具(https://www.sojson.com):SO JSON 在線工具是另一個(gè)提供 JSON 數(shù)據(jù)格式化功能的網(wǎng)站。它支持 JSON 數(shù)據(jù)的解析、格式化、壓縮、轉(zhuǎn)義、視圖和編輯等功能。

- JSONS 在線工具(http://www.jsons.cn):JSONS 是一個(gè)提供多種 JSON 相關(guān)工具的網(wǎng)站,其中包括 JSON 數(shù)據(jù)的在線解析、格式化、校驗(yàn)、壓縮和轉(zhuǎn)義等功能。

這個(gè)在線工具不僅可以格式化 JSON ,也可以格式化其他數(shù)據(jù),如 HTML、SQL等,最好的功能是可以進(jìn)行文本比較,在代碼進(jìn)行遷移對(duì)比差異時(shí)經(jīng)常用到。示例如下,不一致的部分會(huì)直接標(biāo)紅色。

你只需要在這些網(wǎng)站上輸入或粘貼你的 JSON 數(shù)據(jù),它們就會(huì)自動(dòng)為你格式化。
總結(jié)
JSON 數(shù)據(jù)格式化是處理 JSON 數(shù)據(jù)的重要步驟,有助于提高數(shù)據(jù)的可讀性和可維護(hù)性。您可以使用 IDE 或腳本語(yǔ)言提供的內(nèi)置功能進(jìn)行格式化,也可以使用在線工具進(jìn)行格式化。非常推薦 JSONS 不僅支持格式化,而且還支持代碼文本對(duì)比和替換等功能。
到此這篇關(guān)于JSON 數(shù)據(jù)格式化方法的文章就介紹到這了,更多相關(guān)JSON 數(shù)據(jù)格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
git遠(yuǎn)程操作異常:correct access rights問(wèn)題及解決
這篇文章主要介紹了git遠(yuǎn)程操作異常:correct access rights問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
關(guān)于Sourcetree啟動(dòng)問(wèn)題(完美解決)
文章講述了SourceTree閃退的問(wèn)題及其解決方法,源因?yàn)槲搓P(guān)閉SourceTree而關(guān)機(jī)或系統(tǒng)更新導(dǎo)致緩存信息不匹配,解決方法是刪除緩存文件或特定緩存目錄中的[Composition.cache]文件2024-11-11
Chrome瀏覽器中清除特定網(wǎng)站的Cookie數(shù)據(jù)三種方法
當(dāng)我們?cè)谑褂秒娔X瀏覽網(wǎng)頁(yè)時(shí),服務(wù)器會(huì)生成一個(gè)證書(shū)并將其返回給電腦,這個(gè)證書(shū)是cookie,也可以稱為瀏覽器緩存,這篇文章主要給大家介紹了關(guān)于Chrome瀏覽器中清除特定網(wǎng)站的Cookie數(shù)據(jù)三種方法,需要的朋友可以參考下2023-10-10
詳解git reset --hard 和 git reset --soft區(qū)別
這篇文章主要介紹了詳解git reset --hard 和 git reset --soft區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
實(shí)例詳解esp8266解析json數(shù)據(jù)的方法
這篇文章主要介紹了實(shí)例詳解esp8266解析json數(shù)據(jù)的方法,主要包括要解析的json文件,反序列化數(shù)據(jù)獲取到對(duì)象中,通過(guò)串口監(jiān)視器輸出解析后的數(shù)據(jù)信息,需要的朋友可以參考下2022-03-03
分享最新Sublime Text4 Build 4107注冊(cè)碼(密鑰)漢化及完美永久破解方法
分享一個(gè)適用最新Sublime Text4 Build 4107注冊(cè)碼(密鑰)及Sublime Text 4完美永久破解方法,需要的朋友可以參考下2021-05-05

