JS學習筆記#12 | JSON.parse 與 JSON.stringify

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

JSON.parse

將 JSON 格式的字串解析成 JavaScript 的物件。

語法

JSON.parse(jsonString)

範例

const jsonString = '{"name": "Alice", "age": 25}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 輸出: Alice
console.log(obj.age); // 輸出: 25

用途

  • 將後端返回的 JSON 格式資料轉換成 JavaScript 可操作的物件。
  • 在本地存儲中讀取 JSON 資料(例如 localStorage 或 sessionStorage)。

JSON.stringify

將 JavaScript 的物件或陣列轉換成 JSON 格式的字串。

語法

JSON.stringify(value[, replacer[, space]])

範例

const obj = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // 輸出: '{"name":"Alice","age":25}'

用途

  • 將物件或陣列轉換成 JSON 字串,方便儲存到本地存儲中或傳輸到伺服器。
  • 日誌或除錯時,將物件轉換成易讀的字串。

操作流程:儲存與解析 Array 至 LocalStorage 或 SessionStorage

// 1. 定義原始資料
const data = [1, 2, 3, 4, 5];

// 2. 將資料轉換為 JSON 字串
const jsonString = JSON.stringify(data);

// 3. 儲存至 LocalStorage
localStorage.setItem('myArray', jsonString);

// 4. 從 LocalStorage 取回 JSON 字串
const retrievedString = localStorage.getItem('myArray');

// 5. 將 JSON 字串解析回陣列
const parsedArray = JSON.parse(retrievedString);

// 6. 檢查取回的結果
console.log(parsedArray); // 輸出: [1, 2, 3, 4, 5]

補充說明: JSON.stringify() 可以帶的參數

JSON.stringify(value[, replacer [, space]])

參數說明

  • value:要轉換的值,例如物件、陣列等。
  • replacer(可選):用於過濾或修改值的函數或陣列。
  • space(可選):用於美化輸出的字串,指定縮排空格數。


replacer(過濾或修改值的函數或陣列)

  • 可以是函數:接受每個屬性的 keyvalue,並返回序列化後的值(或 undefined 以排除該屬性)。
const obj = { name: "Alice", age: 25, secret: "hidden" };

const jsonString = JSON.stringify(obj, (key, value) => {
if (key === "secret") return undefined; // 排除 secret 屬性
if (typeof value === "number") return value * 2; // 數值加倍
return value; // 其他值保持原樣
});

console.log(jsonString);
// 輸出: '{"name":"Alice","age":50}'
  • 可以是陣列:指定只序列化的屬性名稱。
const obj = { name: "Alice", age: 25, secret: "hidden" };

const jsonString = JSON.stringify(obj, ["name", "age"]);
console.log(jsonString);
// 輸出: '{"name":"Alice","age":25}'

space(美化輸出的縮排空格數或樣式)

  • 可以是數字:指定每層的縮排空格數。
const obj = { name: "Alice", age: 25, address: { city: "Wonderland", zip: 12345 } };

const jsonString = JSON.stringify(obj, null, 2); // 每層縮排 2 個空格
console.log(jsonString);
/*
輸出:
{
"name": "Alice",
"age": 25,
"address": {
"city": "Wonderland",
"zip": 12345
}
}
*/
  • 可以是字串:用指定字串填充每層的縮排(例如 '\t''-')。
const jsonString = JSON.stringify(obj, null, "--"); // 使用 "--" 進行縮排
console.log(jsonString);
/*
輸出:
{
--"name": "Alice",
--"age": 25,
--"address": {
----"city": "Wonderland",
----"zip": 12345
--}
}
*/



replacer 和 space 的結合使用

const obj = { name: "Alice", age: 25, address: { city: "Wonderland", zip: 12345 } };

const jsonString = JSON.stringify(obj, (key, value) => {
if (key === "age") return undefined; // 排除 age 屬性
return value;
}, 4); // 每層縮排 4 個空格

console.log(jsonString);
/*
輸出:
{
"name": "Alice",
"address": {
"city": "Wonderland",
"zip": 12345
}
}
*/
留言
avatar-img
留言分享你的想法!
avatar-img
koko的沙龍
1會員
34內容數
koko的沙龍的其他內容
2025/04/30
React 事件處理:讓網頁動起來~ 網頁的互動性是吸引使用者、提供良好體驗的關鍵。 在 React 中,透過監聽使用者的操作(例如點擊、滑鼠移動、鍵盤輸入),並執行相應的程式碼,來實現豐富的互動效果。
Thumbnail
2025/04/30
React 事件處理:讓網頁動起來~ 網頁的互動性是吸引使用者、提供良好體驗的關鍵。 在 React 中,透過監聽使用者的操作(例如點擊、滑鼠移動、鍵盤輸入),並執行相應的程式碼,來實現豐富的互動效果。
Thumbnail
2025/04/28
在 React 的世界裡,Props 負責從父元件向子元件傳遞資料,而 State 則是負責管理元件自身的內部資料。 State 就像元件的記憶,可以儲存元件的狀態,並根據狀態的變化來更新 UI。
Thumbnail
2025/04/28
在 React 的世界裡,Props 負責從父元件向子元件傳遞資料,而 State 則是負責管理元件自身的內部資料。 State 就像元件的記憶,可以儲存元件的狀態,並根據狀態的變化來更新 UI。
Thumbnail
2025/04/27
在 React 的世界裡,元件 (Component) 就像一個個獨立的個體,各自負責 UI 的一部分,要讓這些個體協同工作,就需要一種溝通的機制,而 Props 就是組件之間通信和數據傳遞的主要方式。
Thumbnail
2025/04/27
在 React 的世界裡,元件 (Component) 就像一個個獨立的個體,各自負責 UI 的一部分,要讓這些個體協同工作,就需要一種溝通的機制,而 Props 就是組件之間通信和數據傳遞的主要方式。
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
JSON.parse:將 JSON 格式的字串轉換為 JavaScript 物件,常用於解析後端返回的資料或本地存儲中的 JSON。JSON.stringify:將 JavaScript 的物件或陣列轉換為 JSON 格式字串,方便用於資料儲存或傳輸。
Thumbnail
JSON.parse:將 JSON 格式的字串轉換為 JavaScript 物件,常用於解析後端返回的資料或本地存儲中的 JSON。JSON.stringify:將 JavaScript 的物件或陣列轉換為 JSON 格式字串,方便用於資料儲存或傳輸。
Thumbnail
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
Thumbnail
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
Thumbnail
JSON(JavaScript Object Notation)是一種用於資料交換的輕量級資料格式,通常用於網路應用程式之間的資料傳遞。 JSON的格式易於閱讀和撰寫,也易於解析和產生,因此它在開發中被廣泛使用。 JSON由兩種結構組成:物件(Object)和陣列(Array)。
Thumbnail
JSON(JavaScript Object Notation)是一種用於資料交換的輕量級資料格式,通常用於網路應用程式之間的資料傳遞。 JSON的格式易於閱讀和撰寫,也易於解析和產生,因此它在開發中被廣泛使用。 JSON由兩種結構組成:物件(Object)和陣列(Array)。
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
JS 資料型別分為兩大類,原始型別 (Primitive values) 和物件型別 (Objects)。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
Thumbnail
關於json的資料交換格式請參考「【程式語言 - Javascript】輕量資料格式 JSON」, 我們常常會在使用套件的過程中發現回傳值的型態都會有「dict」的蹤跡, 為什麼呢? 因為動態、彈性、靈活, 不需要預先定義類別來明確指定每個欄位的內容, 但缺點就是文件必須寫清楚內容物是哪些, 否
Thumbnail
關於json的資料交換格式請參考「【程式語言 - Javascript】輕量資料格式 JSON」, 我們常常會在使用套件的過程中發現回傳值的型態都會有「dict」的蹤跡, 為什麼呢? 因為動態、彈性、靈活, 不需要預先定義類別來明確指定每個欄位的內容, 但缺點就是文件必須寫清楚內容物是哪些, 否
Thumbnail
JSON 全名 JavaScript Object Notation,其格式基本上就是key: value的組成如下: { "name": "Bob", "age": 40, "childs": [ { "name": "Justin", "
Thumbnail
JSON 全名 JavaScript Object Notation,其格式基本上就是key: value的組成如下: { "name": "Bob", "age": 40, "childs": [ { "name": "Justin", "
Thumbnail
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Thumbnail
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Thumbnail
JSON的全名叫JavaScript Object Notation,是由Douglas Crockford所設計的一種資料格式,最初應用在JavaScript程式語言中,做為一種資料交換的格式,而後被廣泛運用在Web開發與NoSQL資料庫,現今已成為一種重要的資料格式。
Thumbnail
JSON的全名叫JavaScript Object Notation,是由Douglas Crockford所設計的一種資料格式,最初應用在JavaScript程式語言中,做為一種資料交換的格式,而後被廣泛運用在Web開發與NoSQL資料庫,現今已成為一種重要的資料格式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News