<h1>物件導向語言筆記--JSON</h1> >[!Note]參考: [Python筆記–字典(Dictionary,dict)](https://hackmd.io/@9YAtszqXS2OLNZOrLY_-Jg/python_dictionary) JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,常用於網路通訊(例如 API 傳輸)。它以人類可讀的純文字表示結構化資料,並且跨語言、跨平台,容易解析與生成。 <b><u>JSON 與 Python Dictionary 的關係</u></b>: - JSON 的結構與 Python 的 dict 非常相似 - 兩者皆以<b>鍵值對(key–value)</b>表示資料 <b><u>因此</u></b>: - JSON → Python:可解析成 dict 來存取與操作 - Python dict → JSON:可序列化後用於傳輸或儲存 <b><u>需要特別注意的差異</u></b>: - JSON 是種資料格式,不是語言 - Python 的 dict 是語言內部的資料結構 --- JSON 的基本結構 --- JSON的語法簡潔明瞭,基本結構由兩種主要的資料結構組成: 1. JSON物件(JSON Object): - 使用大括號 <code>{ }</code> 包裹,表示一個物件,內部包含一系列由鍵(key)和值(value)組成的鍵值對,適合表示「名稱 → 值」的對應關係。 - 鍵是唯一的,必須是字串,且在同一物件中唯一,但物件底下的物件可以重複使用同一個鍵名。[[參見](#JSON的巢狀結構)] - 值可以是字串、數字、布林值、物件、陣列或是null ```json= { "name": "PU", "age": 30, "isDeveloper": true } ``` 2. JSON陣列(JSON Array): - 使用中括號 <code>[ ]</code> 包裹,表是一個陣列,內部包含一系列值,適合描述「一組同類型的資料」的關係。 - 值是有順序的,並以索引(index)存取 - 每個值可以是字串、數字、布林值、物件、陣列或是null ```json= [ "Kotlin", "Java", "Python" ] ``` --- JSON的巢狀結構 --- 巢狀(Nested)指的是在 JSON 的物件或陣列裡,再放物件或陣列,也就是「資料裡面還包含資料」,可以多層結構組合 - 描述複雜、分層的資料 - 巢狀可讓資料更有結構,避免所有欄位擠在同一層 <b><u>範例</u></b>: ```json= { "users": [ { "name": "PU", "skills": ["Kotlin", "Python"] }, { "name": "Alice", "skills": ["Java", "C++"] } ] } ``` <b><u>這個巢狀 Json 相當於</u></b>: ```pgsql= root (Object) └─ users (Array) ├─ [0] (Object) │ ├─ name: "PU" │ └─ skills (Array) │ ├─ [0]: "Kotlin" │ └─ [1]: "Python" └─ [1] (Object) ├─ name: "Alice" └─ skills (Array) ├─ [0]: "Java" └─ [1]: "C++" ``` --- JSON 和 Python 字典相似之處 --- - 都使用花括號 <code>{ }</code> 包裹,表示一個物件(object)或字典(dictionary)。 - 鍵(key)和值(value)以冒號 : 分隔,表示屬性和對應的值。 - 鍵必須是唯一的,而值可以是任意型別的資料,包括字串、數字、布林值、陣列、其他物件等。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up