JSON 實用技巧與指南
面向開發者的 JSON、YAML 與 API 資料實用文章。
JSON 第 0 位 Unexpected Token <:你拿到的是 HTML
「Unexpected token <」錯誤代表 JSON.parse 收到了一個 HTML 頁面(404、登入跳轉或錯誤的 URL),而不是 JSON。本文說明原因,並附上壞掉與修好的 fetch 範例。
5 min readJSON 第 0 位 Unexpected Token u:在解析 undefined
「Unexpected token u」錯誤表示你呼叫了 JSON.parse(undefined)。看清楚為何 undefined 變成 "undefined"、如何防範,以及一個安全解析輔助函式。
5 min readJSON 中未終止的字串:原因與修復
JSON 中未終止的字串代表有開頭引號卻沒有結尾引號 —— 通常是未轉義的引號、原始換行,或被截斷的資料。錯誤與修好的範例。
5 min readJSON 中錯誤的轉義字元:原因、範例與修復
修復由 \x 轉義、Windows 路徑、正則字串、殘缺的 \u 值與雙重編碼 JSON 所引發的「bad escaped character in JSON」錯誤。
12 min readJSON 資料之後出現非空白字元:修復方法
此錯誤代表一個完整 JSON 值之後還有多餘內容 —— 連在一起的物件、被當作單塊解析的 NDJSON,或結尾的雜訊。如何找出並移除多餘資料。
5 min readJSON Pretty Print vs JSON Format:差別在哪?
對 JSON 而言,pretty print、format 與 beautify 是同一件事。本文說明原因、真正不同的地方(minify、validate、tree view),以及如何線上美化 JSON。
5 min readJSON 樹狀檢視器:以可摺疊樹瀏覽 JSON
把 JSON 當作互動式可摺疊樹來檢視。展開或摺疊任意物件或陣列,瀏覽大型巢狀負載 —— 在瀏覽器中完成,不需上傳。
6 min readYAML 格式化器:格式化、重新縮排與驗證 YAML
YAML 格式化器會重新縮排並正規化 YAML,讓它既可讀又便於 diff。學習縮排規則、型別陷阱,以及何時要格式化、何時要轉成 JSON。
6 min readXML 轉 JSON:屬性、文字節點、陣列與命名空間
正確地把 XML 轉成 JSON:屬性、文字節點、重複元素、命名空間如何對應 —— 附約定、邊界情況以及 JS / Python 程式碼。
8 min readJSON 轉 XML:根元素、陣列與屬性對應
把 JSON 轉成 XML:根元素、@ 屬性、陣列與跳脫——用 JS、Python 或線上完成。免費試用轉換器。
7 min read如何把 JSON 轉成 CSV(以及反過來)
在 JavaScript、Python 與線上把 JSON 轉成 CSV、CSV 轉成 JSON。涵蓋 array-of-objects 對應、引號規則、巢狀值與型別轉換。
7 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 鉤子,以及它會默默丟掉或丟錯的值。
8 min readJSON vs YAML:差別與適用場景
JSON 與 YAML 比較:語法、型別、註解,以及像 Norway problem 之類的坑。YAML 是 JSON 的超集 —— 何時選哪一個、如何互轉。
7 min read如何解碼 JWT 並讀取其 claims
JWT 由三段 Base64url 組成。學習在 JavaScript 與 Python 解碼 header 與 payload —— 以及為何解碼 token 並不等於驗證它。
8 min readJSON 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 readjq 教學:過濾與轉換 JSON
在命令列學 jq:安裝、美化、選擇、過濾、map 與編輯 JSON——附可複製的命令配方。
7 min read如何從 JSON 產生 TypeScript 介面
將 JSON 轉成 TypeScript 介面 —— 線上或程式碼皆可。處理巢狀物件、選填與 nullable 欄位,並保持型別同步。
10 min read什麼是 JSON Schema?一份附範例的實用指南
什麼是 JSON Schema?描述並驗證 JSON 結構——核心關鍵字、真實範例,以及在 JavaScript 和 Python 中驗證。了解詳情。
10 min read如何壓縮 JSON —— 以及什麼時候該做
壓縮 JSON 會移除所有不必要的空白以縮小體積、加快 API 回應。學習在 JavaScript、Python、命令列與瀏覽器中壓縮 JSON —— 以及什麼時候不必折騰。
9 min readJSON 檢視器 vs JSON 格式化器:差別在哪?
JSON 檢視器 vs 格式化器:檢視器渲染互動式樹,格式化器美化輸出文字。學習差異與使用時機。
8 min read修復「[object Object] is Not Valid JSON」與其他 JSON 語法錯誤
遇到「[object Object] is not valid JSON」或「expected a JSON object, array or literal」?學會這些錯誤的成因、如何修正 JSON 語法、修復尾隨逗號,以及自動修復損壞的 JSON。
9 min readJSON 修復解析器到底是怎麼運作的
尾隨逗號、單引號、未加引號的鍵、Python 字面量、markdown 程式碼柵欄 —— 線上 JSON 修復工具都能處理。學習修復解析器如何運作、何時使用,以及如何讓敏感資料留在本地。
7 min readJSON 格式範例:物件、陣列與現實模式
可直接複製的 JSON 範例,涵蓋每種資料型別、巢狀結構、REST API 回應、設定檔、日期格式與 GeoJSON —— 並附常見錯誤模式及其修復。
6 min read如何格式化 JSON:美化、驗證並整理 JSON 檔案
在 JavaScript 用 JSON.stringify、在 Python 用 json.dumps、在命令列用 jq,或在瀏覽器即時格式化 JSON。包含鍵排序、把 YAML 與 CSV 轉成 JSON,以及真實的前後對比範例。
8 min read什麼是 JSON?JSON 格式、語法與檔案的完整指南
JSON(JavaScript Object Notation)是通用的資料交換格式。學習它的六種資料型別、讓 JSON 嚴格的文法規則、.json 檔案用在哪、以及如何在各種語言中解析 JSON。
7 min read為什麼不要把敏感 JSON 貼到線上工具
把 JWT、API 金鑰或 PII 貼進線上 JSON 工具,可能經由伺服器日誌、快取與索引外洩。為何瀏覽器原生工具更安全。
7 min readJSON 字串字面量中的不合法控制字元:修復方法
JSON 字串內出現原始 tab、換行、NUL 位元組或 ANSI 跳脫序列都會觸發此錯誤。學習為何 JSON 規格禁止它們、它們如何混入,以及如何剝除或轉義。
6 min readJSON 第 1 位 Unexpected Token o:原因與修復
那個小寫的「o」是「[object Object]」的第二個字元。你把一個 JavaScript 物件傳給了 JSON.parse() 而不是字串。本文列出此錯誤的每個變體,以及每個的一行修復。
5 min readUnexpected End of JSON Input:為什麼會出現以及如何修復
解析器在結構完成前耗盡了輸入。原因從被截斷的 API 回應到未關閉括號,再到空字串都有。五種模式,五種修復。
5 min readBase64 不是加密:藏得住什麼、藏不住什麼
Base64 是編碼不是加密。看看為何密碼、JWT 載荷、API 金鑰、Basic 驗證標頭、URL 資料與紀錄在 Base64 後仍可讀。
15 min read如何比較兩份 JSON 檔案:演算法與工具
純文字 diff 會把鍵重排序誤報為改動。真正的 JSON diff 如何運作:鍵正規化、LCS 行 diff、語意比較。
9 min readJSON vs JavaScript 物件:為什麼不允許單引號
很多開發者把 JS 物件字面量當作 JSON。它們並不相同:單引號、未加引號的鍵、尾隨逗號、undefined、NaN —— 這裡把每處差別配範例講清楚。
7 min readJSON 中的尾隨逗號:為何 { "a": 1, } 會丟錯
JSON 物件或陣列最後一項之後多出一個逗號就會觸發 SyntaxError。學習為何 JSON 禁止尾隨逗號、它們從何而來,以及如何移除。
6 min read如何修復 JSON.parse 的「Unexpected Token」錯誤
「Unexpected token <」或「Unexpected token u in JSON at position 0」 —— 這類錯誤會讓應用直接停擺。本文說明每個變體的含義,以及具體如何修。
6 min read在 JavaScript 中如何處理損壞的 JSON
JSON.parse() 毫不留情 —— 一個多餘的逗號就能讓應用程式崩潰。常見的 JSON 破損模式、try/catch 捕捉錯誤,以及何時需要修復。
8 min readJSON.parse Source Access: context.source, BigInts, JSON.rawJSON, and LLM JSON
Use JSON.parse reviver context.source and JSON.rawJSON safely: feature-detect support, rescue large numeric IDs, serialize BigInts, and harden repaired LLM JSON output.
12 min read