【程式語言 - Javascript】輕量資料格式 JSON

更新於 發佈於 閱讀時間約 5 分鐘

JSON 全名 JavaScript Object Notation,其格式基本上就是key: value的組成如下:

{
"name": "Bob",
"age": 40,
"childs": [
{
"name": "Justin",
"age": 10
}
]
}

格式有以下幾個特點:

  • 名稱必須為字串,用雙引號包括其名稱: "name"。
  • value的部份可以是「字串、數字、true、false、null、物件或陣列」。
  • 支援嵌套物件。
  • 不支援Javascript的Date、Error、undefined。

Javascript: JSON.stringify

從Javascript中的物件轉為JSON字串

const obj = {
"name": "Bob",
"age": 40,
"childs": [
{
"name": "Justin",
"age": 10
}
]
}

const str = JSON.stringify(obj);
// "{"name":"Bob","age":40,"childs":[{"name":"Justin","age":10}]}"

我們也可以只對其中的name、age進行JSON字串的輸出即可。

const obj = {
"name": "Bob",
"age": 40,
"childs": [
{
"name": "Justin",
"age": 10
}
]
}

const str = JSON.stringify(obj, ["name", "age"]);
// "{"name":"Bob","age":40}"

另外Javascript本身也可以對物件本身實做toJSON的方法來進行加工, 舉例來說,我們今天想要把name的部份都轉換為大寫輸出, 那麼可以這麼做:

const obj = {
"name": "Bob",
"age": 40,
"toJSON" : function() {
return {
name : this.name.toUpperCase(),
age : this.age
};
}
}

const str = JSON.stringify(obj, ["name", "age"]);
// "{"name":"BOB","age":40}"

最後來介紹第三個參數, 做為縮排輸出的配置:

  • 如果是數字1 ~ 10,會自動換行並以指定數字作為縮排的層次。
  • 也可以用某個字元作為縮排的識別。
const obj = {
"name": "Bob",
"age": 40
}

const str = JSON.stringify(obj, undefined, 2);
// "{
// "name": "Bob",
// "age": 40,
// "childs": [
// {
// "name": "Justin",
// "age": 10
// }
// ]
// }"

Javascript: JSON.parse

主要從字串解析回Javascript的物件, 常用於讀檔的時候, 讀取json檔案後由於型態為字串,而我們希望解析為JSON物件較方便處理可以這樣:

const str = "{\\"name\\":\\"Bob\\",\\"age\\":40,\\"childs\\":[{\\"name\\":\\"Justin\\",\\"age\\":10}]}"
const obj = JSON.parse(str);
console.log(obj.name); // "Bob"

結語

這種資料交換格式以可讀性來講勝於XML格式,畢竟省去了太多的標記符號了,而且非常靈活彈性,以空間上來說也較XML輕量,但仍有改善空間,後面我們有會陸續介紹YAML、TOML這類型的資料交換格式,之間又有什麼不同、帶來什麼改善與好處…。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

avatar-img
118會員
266內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
請耐心閱讀到最後, 我們會提供更優雅的方式來處理這項需求… 故事起源 我們常常在使用Python的過程中會進行I/O的一些處理, 那麼最基本的就會是讀取檔案列表並對每一個特定的檔案名稱進行處理, 像這樣: import glob mp4_files = glob.glob(os.path
關於字幕檔我們常常會看到「.srt」、「.ass」、「.vtt」…等影片的字幕格式, 但你知道嗎? 這些字幕檔是很重要的一個寶貴資訊, 可以從中對段落的長度、文字進行提取, 此時就需要一個強大的工具來幫我們解析一下字幕檔, 就讓我們來看看怎麼用吧! 安裝 pip install pysubs2
這次要來介紹「pytube」這套神器, 當我們需要對影音進行統計分析時就需要使用這把利器來破關, 尤其是AI時代的來臨, 我們會需要大量的資料來進行模型的訓練, 而我們總不可能海量的去撈取這些資料, 會非常沒有效率也浪費空間, 因此我們會先進行偵查的任務, 需要派出偵察隊來蒐集youtube的影音資
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
一早看著IThome的新聞發現到這個標題「📢 PyPI新帳號現需要啟用雙因素驗證才能執行管理操作」, 而近期幾乎都在接觸Python語言, 在Python的生態圈裡相信對於「pip install…」應該相當熟悉了吧! 但對於背後的平台相信我們不曾仔細去了解一番, 這好藉著這次的觀點也順便來介紹一
學習資料科學的過程中相信最熱門的目前應該是Python程式語言了,而Python的世界裡再進行資料科學時最常用的有「Pandas」、「SciPy」、「Scikit-learn」...等,而這些的基礎幾乎都與「NumPy」離不開關係,因為「NumPy」就是地基,這些較為高階的套件則是基於地基發展而起。
請耐心閱讀到最後, 我們會提供更優雅的方式來處理這項需求… 故事起源 我們常常在使用Python的過程中會進行I/O的一些處理, 那麼最基本的就會是讀取檔案列表並對每一個特定的檔案名稱進行處理, 像這樣: import glob mp4_files = glob.glob(os.path
關於字幕檔我們常常會看到「.srt」、「.ass」、「.vtt」…等影片的字幕格式, 但你知道嗎? 這些字幕檔是很重要的一個寶貴資訊, 可以從中對段落的長度、文字進行提取, 此時就需要一個強大的工具來幫我們解析一下字幕檔, 就讓我們來看看怎麼用吧! 安裝 pip install pysubs2
這次要來介紹「pytube」這套神器, 當我們需要對影音進行統計分析時就需要使用這把利器來破關, 尤其是AI時代的來臨, 我們會需要大量的資料來進行模型的訓練, 而我們總不可能海量的去撈取這些資料, 會非常沒有效率也浪費空間, 因此我們會先進行偵查的任務, 需要派出偵察隊來蒐集youtube的影音資
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
一早看著IThome的新聞發現到這個標題「📢 PyPI新帳號現需要啟用雙因素驗證才能執行管理操作」, 而近期幾乎都在接觸Python語言, 在Python的生態圈裡相信對於「pip install…」應該相當熟悉了吧! 但對於背後的平台相信我們不曾仔細去了解一番, 這好藉著這次的觀點也順便來介紹一
學習資料科學的過程中相信最熱門的目前應該是Python程式語言了,而Python的世界裡再進行資料科學時最常用的有「Pandas」、「SciPy」、「Scikit-learn」...等,而這些的基礎幾乎都與「NumPy」離不開關係,因為「NumPy」就是地基,這些較為高階的套件則是基於地基發展而起。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
JSON(JavaScript Object Notation)是一種用於資料交換的輕量級資料格式,通常用於網路應用程式之間的資料傳遞。 JSON的格式易於閱讀和撰寫,也易於解析和產生,因此它在開發中被廣泛使用。 JSON由兩種結構組成:物件(Object)和陣列(Array)。
前言: 一直想要把自己的學習筆記整理整理,至少在寫下筆記的時候,也能釐清觀念。 結果拖延到現在,終於要提筆了,不知道能堅持多久(???)。
※ 常用Object(物件)型態的方法: 拿到object裡面某個key的value(值): 拿到所有屬性: ※ 存取物件屬性:點記法與括號記法 使用點記法 (dot notation) 或括號記法 (bracket notation) 來存取物件的值,以下兩種寫法的結果是一樣的: //
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在剛開始寫 JavaScript 可能大多數的人不會特別意識到 JavaScript 的型別系統有什麼特別之處,我是在看完 Youtube 上 CS50 的課程,才理解到在不同的程式語言中,會因為語言的特性而有不同的系統,JavaScript 就是偏向比較特別的那一種。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
JSDoc 全名是 JavaScript Documentation,顧名思義是為 JavaScript 所使用的 API 文件,在程式碼內透過註解的方式撰寫,運行後 JSDoc 會自動掃描註解內容,並生成一份網頁版的文件,對於沒有使用 Typescript 開發的專案,也
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
JSON(JavaScript Object Notation)是一種用於資料交換的輕量級資料格式,通常用於網路應用程式之間的資料傳遞。 JSON的格式易於閱讀和撰寫,也易於解析和產生,因此它在開發中被廣泛使用。 JSON由兩種結構組成:物件(Object)和陣列(Array)。
前言: 一直想要把自己的學習筆記整理整理,至少在寫下筆記的時候,也能釐清觀念。 結果拖延到現在,終於要提筆了,不知道能堅持多久(???)。
※ 常用Object(物件)型態的方法: 拿到object裡面某個key的value(值): 拿到所有屬性: ※ 存取物件屬性:點記法與括號記法 使用點記法 (dot notation) 或括號記法 (bracket notation) 來存取物件的值,以下兩種寫法的結果是一樣的: //
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
在剛開始寫 JavaScript 可能大多數的人不會特別意識到 JavaScript 的型別系統有什麼特別之處,我是在看完 Youtube 上 CS50 的課程,才理解到在不同的程式語言中,會因為語言的特性而有不同的系統,JavaScript 就是偏向比較特別的那一種。