iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0

JSON全名JavaScript Object Notation,是一種資料交換格式
簡單來說,JSON是一種用文字描述資料結構的方式,讓不同的系統能夠讀取、傳遞、儲存資料

雖然名稱裡有JavaScript,但它其實並不專屬於JS,幾乎所有語言(Python、PHP、C#、Go...)都能讀取 JSON

JSON 的主要用途是:

  • 前端與後端之間傳遞資料
  • 儲存在 localStorage、設定檔、或 API 回傳的內容
  • 將物件序列化(stringify)後保存或傳送

1.JSON的格式規則

JSON的格式和JavaScript物件很像,但有幾個嚴格規定:

**1.使用雙引號 ":**所有的鍵(key)與字串(string)都必須使用雙引號包起來

**2.不允許註解與尾逗號:**不能寫註解,也不能在最後一個項目後面多一個逗號

**3.資料型態有限:**JSON只接受以下幾種型態:

  • 字串(String)
  • 數字(Number)
  • 布林值(Boolean)
  • 陣列(Array)
  • 物件(Object)
  • null

範例:

{
  "name": "小明",
  "age": 25,
  "isStudent": false,
  "skills": ["JavaScript", "HTML", "CSS"],
  "address": {
    "city": "Taipei",
    "zip": "100"
  }
}

這是一個標準的 JSON 物件
注意所有key都用雙引號包住,整體結構清楚、好讀,也方便電腦解析

2.JSON與JavaScript物件的轉換

在JavaScript裡,常常需要在物件(Object)和JSON 字串(String)之間互相轉換
這時可以使用內建的兩個方法:

  • JSON.stringify():把 JS 物件序列化成JSON字串(方便儲存或傳送)
  • JSON.parse():把 JSON 字串還原JS物件(方便操作內容)

範例:

//JS物件
const user = {
  name: "小明",
  age: 25,
  isStudent: false
};

//物件 → JSON 字串
const jsonStr = JSON.stringify(user);
console.log(jsonStr);
// => '{"name":"小明","age":25,"isStudent":false}'

//JSON 字串 → 物件
const obj = JSON.parse(jsonStr);
console.log(obj.name);
// => 小明

常見錯誤
1.忘記用雙引號包住 key

{ name: "小明" } //錯誤
{ "name": "小明" } //正確

2.最後一個元素後面多了逗號

{
  "a": 1,
  "b": 2,
}

3.JSON不能放函式或undefined

JSON.stringify({ fn: () => {} }); // => "{}"
功能 方法 說明
物件轉 JSON JSON.stringify() 把物件轉成文字
JSON 轉物件 JSON.parse() 把文字還原成物件

上一篇
Day26:AJAX 介紹與基礎應用
系列文
30天入門Java Script27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言