JSON 實用技巧與指南

面向開發者的 JSON、YAML 與 API 資料實用文章。

5 min read

JSON 第 0 位 Unexpected Token <:你拿到的是 HTML

「Unexpected token <」錯誤代表 JSON.parse 收到了一個 HTML 頁面(404、登入跳轉或錯誤的 URL),而不是 JSON。本文說明原因,並附上壞掉與修好的 fetch 範例。

閱讀文章 →
5 min read

JSON 第 0 位 Unexpected Token u:在解析 undefined

「Unexpected token u」錯誤表示你呼叫了 JSON.parse(undefined)。看清楚為何 undefined 變成 "undefined"、如何防範,以及一個安全解析輔助函式。

閱讀文章 →
5 min read

JSON 中未終止的字串:原因與修復

JSON 中未終止的字串代表有開頭引號卻沒有結尾引號 —— 通常是未轉義的引號、原始換行,或被截斷的資料。錯誤與修好的範例。

閱讀文章 →
5 min read

JSON 中錯誤的轉義字元:合法轉義與修復

JSON 中錯誤的轉義字元意思是反斜線後面接了 JSON 不允許的內容。看合法轉義的完整列表,以及 \x、路徑和 \u 的修復方式。

閱讀文章 →
5 min read

JSON 資料之後出現非空白字元:修復方法

此錯誤代表一個完整 JSON 值之後還有多餘內容 —— 連在一起的物件、被當作單塊解析的 NDJSON,或結尾的雜訊。如何找出並移除多餘資料。

閱讀文章 →
5 min read

JSON Pretty Print vs JSON Format:差別在哪?

對 JSON 而言,pretty print、format 與 beautify 是同一件事。本文說明原因、真正不同的地方(minify、validate、tree view),以及如何線上美化 JSON。

閱讀文章 →
6 min read

JSON 樹狀檢視器:以可摺疊樹瀏覽 JSON

把 JSON 當作互動式可摺疊樹來檢視。展開或摺疊任意物件或陣列,瀏覽大型巢狀負載 —— 在瀏覽器中完成,不需上傳。

閱讀文章 →
6 min read

YAML 格式化器:格式化、重新縮排與驗證 YAML

YAML 格式化器會重新縮排並正規化 YAML,讓它既可讀又便於 diff。學習縮排規則、型別陷阱,以及何時要格式化、何時要轉成 JSON。

閱讀文章 →
8 min read

XML 轉 JSON:屬性、文字節點、陣列與命名空間

正確地把 XML 轉成 JSON:屬性、文字節點、重複元素、命名空間如何對應 —— 附約定、邊界情況以及 JS / Python 程式碼。

閱讀文章 →
7 min read

JSON 轉 XML:根元素、陣列與屬性對應

把 JSON 轉成 XML:選根元素、把 @ 前綴鍵對應到屬性、把陣列轉成重複元素、處理轉義 —— 在 JS、Python 與線上完成。

閱讀文章 →
7 min read

如何把 JSON 轉成 CSV(以及反過來)

在 JavaScript、Python 與線上把 JSON 轉成 CSV、CSV 轉成 JSON。涵蓋 array-of-objects 對應、引號規則、巢狀值與型別轉換。

閱讀文章 →
8 min read

如何驗證 JSON:語法與 schema 驗證

用 JSON.parse、Python 的 json.loads、jq 或瀏覽器驗證 JSON 語法 —— 並學會用 JSON Schema 檢查結構與型別。

閱讀文章 →
8 min read

如何用 JSON.stringify 序列化 JSON

JSON.stringify 把一個值轉成 JSON 字串。學習 space 與 replacer 引數、toJSON 鉤子,以及它會默默丟掉或丟錯的值。

閱讀文章 →
7 min read

JSON vs YAML:差別與適用場景

JSON 與 YAML 比較:語法、型別、註解,以及像 Norway problem 之類的坑。YAML 是 JSON 的超集 —— 何時選哪一個、如何互轉。

閱讀文章 →
8 min read

如何解碼 JWT 並讀取其 claims

JWT 由三段 Base64url 組成。學習在 JavaScript 與 Python 解碼 header 與 payload —— 以及為何解碼 token 並不等於驗證它。

閱讀文章 →
7 min read

JSON Patch vs JSON Merge Patch:RFC 6902 vs 7396

JSON Patch (RFC 6902) 送出明確的操作;JSON Merge Patch (RFC 7396) 疊加部分物件。透過範例比較並選出合適的方案。

閱讀文章 →
7 min read

如何把 CSV 與 XML 轉成 JSON

在 JavaScript、Python 與瀏覽器把 CSV 與 XML 轉成 JSON。涵蓋 array-of-objects 對應、XML 屬性處理,以及型別轉換的陷阱。

閱讀文章 →
7 min read

jq 教學:過濾與轉換 JSON

實用 jq 教學:安裝、美化與壓縮、選欄位、用 select 過濾陣列、用 map 轉換,並附可直接複製貼上的命令食譜。

閱讀文章 →
10 min read

如何從 JSON 產生 TypeScript 介面

學習如何把 JSON 轉成 TypeScript 介面 —— 手寫、線上工具或程式碼產生。涵蓋巢狀物件、選填欄位、陣列、可空型別,以及讓型別與 API 保持同步。

閱讀文章 →
10 min read

什麼是 JSON Schema?一份附範例的實用指南

JSON Schema 是一套描述 JSON 資料結構與約束的詞彙。學習核心關鍵字、看真實範例,並在 JavaScript、Python 與瀏覽器中驗證 JSON。

閱讀文章 →
9 min read

如何壓縮 JSON —— 以及什麼時候該做

壓縮 JSON 會移除所有不必要的空白以縮小體積、加快 API 回應。學習在 JavaScript、Python、命令列與瀏覽器中壓縮 JSON —— 以及什麼時候不必折騰。

閱讀文章 →
8 min read

JSON 檢視器 vs JSON 格式化器:差別在哪?

JSON 檢視器與 JSON 格式化器看起來相似,用途卻不同。學習何時用哪一個、要看哪些特性,並為你的工作流挑對工具。

閱讀文章 →
9 min read

修復「[object Object] is Not Valid JSON」與其他 JSON 語法錯誤

遇到「[object Object] is not valid JSON」或「expected a JSON object, array or literal」?學會這些錯誤的成因、如何修正 JSON 語法、修復尾隨逗號,以及自動修復損壞的 JSON。

閱讀文章 →
7 min read

線上修復 JSON:修復、驗證並格式化無效 JSON

尾隨逗號、單引號、未加引號的鍵、Python 字面量、markdown 程式碼柵欄 —— 線上 JSON 修復工具都能處理。學習修復解析器如何運作、何時使用,以及如何讓敏感資料留在本地。

閱讀文章 →
6 min read

JSON 格式範例:物件、陣列與現實模式

可直接複製的 JSON 範例,涵蓋每種資料型別、巢狀結構、REST API 回應、設定檔、日期格式與 GeoJSON —— 並附常見錯誤模式及其修復。

閱讀文章 →
8 min read

如何格式化 JSON:美化、驗證並整理 JSON 檔案

在 JavaScript 用 JSON.stringify、在 Python 用 json.dumps、在命令列用 jq,或在瀏覽器即時格式化 JSON。包含鍵排序、把 YAML 與 CSV 轉成 JSON,以及真實的前後對比範例。

閱讀文章 →
7 min read

什麼是 JSON?JSON 格式、語法與檔案的完整指南

JSON(JavaScript Object Notation)是通用的資料交換格式。學習它的六種資料型別、讓 JSON 嚴格的文法規則、.json 檔案用在哪、以及如何在各種語言中解析 JSON。

閱讀文章 →
7 min read

為什麼不要把敏感 JSON 貼到線上工具

JWT、API 金鑰、個人資料、資料庫匯出常被貼進線上格式化器。看清楚這些資料在伺服端會經歷什麼 —— 以及為何瀏覽器原生工具更安全。

閱讀文章 →
6 min read

JSON 字串字面量中的不合法控制字元:修復方法

JSON 字串內出現原始 tab、換行、NUL 位元組或 ANSI 跳脫序列都會觸發此錯誤。學習為何 JSON 規格禁止它們、它們如何混入,以及如何剝除或轉義。

閱讀文章 →
5 min read

JSON 第 1 位 Unexpected Token o:原因與修復

那個小寫的「o」是「[object Object]」的第二個字元。你把一個 JavaScript 物件傳給了 JSON.parse() 而不是字串。本文列出此錯誤的每個變體,以及每個的一行修復。

閱讀文章 →
5 min read

Unexpected End of JSON Input:為什麼會出現以及如何修復

解析器在結構完成前耗盡了輸入。原因從被截斷的 API 回應到未關閉括號,再到空字串都有。五種模式,五種修復。

閱讀文章 →
7 min read

Base64 不是加密:開發者常見的誤解

Base64 編碼看起來像亂碼,但任何人一行函式就能解開。學習 Base64 到底是什麼、為何常被誤認為加密,以及真正需要保護資料時該用什麼。

閱讀文章 →
9 min read

如何比較兩份 JSON 檔案:演算法與工具

純文字 diff 會漏掉鍵重排序與空白雜訊。學習真正的 JSON diff 如何運作:LCS 行 diff、語意樹比較、鍵正規化,以及各方案的取捨。

閱讀文章 →
7 min read

JSON vs JavaScript 物件:為什麼不允許單引號

很多開發者把 JS 物件字面量當作 JSON。它們並不相同:單引號、未加引號的鍵、尾隨逗號、undefined、NaN —— 這裡把每處差別配範例講清楚。

閱讀文章 →
6 min read

JSON 中的尾隨逗號:為何 { "a": 1, } 會丟錯

JSON 物件或陣列最後一項之後多出一個逗號就會觸發 SyntaxError。學習為何 JSON 禁止尾隨逗號、它們從何而來,以及如何移除。

閱讀文章 →
6 min read

如何修復 JSON.parse 的「Unexpected Token」錯誤

「Unexpected token <」或「Unexpected token u in JSON at position 0」 —— 這類錯誤會讓應用直接停擺。本文說明每個變體的含義,以及具體如何修。

閱讀文章 →
8 min read

在 JavaScript 中如何處理損壞的 JSON

現實中的 JSON 常常是髒的:尾隨逗號、單引號、Python 字面量、markdown 程式碼柵欄。學習常見模式、如何寫一個安全解析輔助函式,以及何時該用專門的修復函式庫。

閱讀文章 →
7 min read

JSON.parse Source Access: Lossless Numbers and Safer LLM Output

The reviver's new context.source argument plus JSON.rawJSON() lets you parse 64-bit IDs without precision loss, verify canonical form, and lock down LLM JSON output — all at native speed. A practical walkthrough now that the API is Baseline 2025.

閱讀文章 →