AI 工作實務 · 實務指南
JSON 是什麼?從資料格式到 API、AI Agent 與企業自動化的完整實戰指南
JSON 是什麼?從鍵值、六種資料型態、合法語法與常見錯誤,學會 JSON、CSV、API、JSON Schema、AI 結構化輸出及企業自動化實務。

本文目錄
一、JSON 是什麼?先用 1 分鐘看懂二、從第一性原理看 JSON:為什麼系統需要共同格式?三、JSON 的 6 種資料型態,如何讀出正確意思?四、5 個必懂符號與 7 個常見語法及欄位錯誤五、JSON、CSV、Excel、XML、YAML,應該如何選擇?六、JSON 與 API 的關係:格式不是通道七、JSON Schema 是什麼?從「看起來對」走向「檢查得出來」八、ChatGPT 與 AI Agent 為什麼經常需要 JSON?九、把 JSON 放進企業工作流程:一個可驗證的端到端案例十、JSONL、JSON-LD、JSON-RPC:名字很像,使用目的不同十一、企業最容易忽略的不是括號,而是資料品質與資安十二、初學者如何實際練習 JSON?從閱讀到可驗證的交付物十三、面向企業主管:學 JSON 到什麼程度才夠?十四、30 天內建立一條可交付的資料交換流程十五、資料契約進入正式系統時,還有哪些設計細節?十六、把 JSON 與 CSV、資料庫、Dashboard 結合:從資料流到決策流十七、如何測試 JSON 串接?把「示範成功」變成可交付工程十八、如何規劃 AI Agent 的 JSON 輸出評估?十九、JSON 除錯實務:資料送不進去時,先檢查哪裡?二十、JSON 不等於資料庫:什麼時候需要真正的資料儲存架構?二十一、用 3 個企業情境決定 JSON 是否值得導入附論:為什麼「更漂亮的 JSON」不一定帶來更好的企業資料?二十二、常見問題 FAQ結論:先建立資料契約,再談 AI 自動化參考資料與查核依據圖片與素材說明編輯說明:本文以 2026 年 10 月 31 日查閱的公開標準與官方技術文件為基礎。文中企業情境均為教學示例,不代表任何企業的實際系統或績效。JSON 語法、JSON Schema、API 設計與 AI 輸出各有不同責任,不應混為一談。
假設今天一位企業客戶在網站上填了一張內訓需求表單,寫下公司名稱、聯絡人、預估人數、課程主題與預算。業務收到通知後,希望把內容交給 AI 歸類,再建立客戶紀錄,最後放進 Google Sheet,供主管查看每日進線量。這不是一個複雜的系統夢想,而是許多小型企業天天遇到的資料傳遞工作。困難往往不在於每一套工具是否足夠聰明,而在於:同一筆資料交給下一個系統時,對方能否知道哪個欄位是公司名稱、哪個值代表人數、哪些內容可以相信。
JSON 就是解決這類問題的基本材料。它不會替企業判斷客戶好壞,也不負責把 API 連線建立起來,更不會因為填入了大括號就自動完成分析。JSON 做的事情很簡單:提供一套小而穩定的文字語法,讓不同程式可以表達和交換有結構的資料。當這個角色被理解,讀者便能在 ChatGPT、Claude Code、API、Google Apps Script、MCP、網站設定檔與資料庫匯出之間看見相同的概念,而不再把它們當成彼此無關的技術名詞。
本文的中心論點是:JSON 的價值不只是「讓資料長得整齊」,而是成為跨工具合作時可以明確定義、驗證、追蹤的資料契約。 一家公司若只要求 AI「請回傳 JSON」,仍可能得到格式正確但金額錯誤、欄位混亂、權限外洩的資料;若把欄位、資料型態、驗證與人工覆核條件一起設計,JSON 才能真正支持可靠的自動化。
一、JSON 是什麼?先用 1 分鐘看懂
JSON 的全名是 JavaScript Object Notation,常翻作「JavaScript 物件表示法」。名字裡雖有 JavaScript,JSON 卻不是只能給 JavaScript 使用。它是一種輕量、文字型、與程式語言無關的資料交換格式。IETF 的 RFC 8259 與 Ecma International 的 ECMA-404 是理解其語法的重要標準依據。JSON 的核心由物件、陣列,以及字串、數字、布林值、null 這幾種資料型態構成。[S01][S02]
把 JSON 想成一張附有明確欄位名稱的交接單。交接單不一定要用 Excel 畫成表格,它也可以是一段文字,只要接收者和傳送者都認得欄位名稱與層次。下面是一筆教學用的企業內訓需求:
{
"lead_id": "DEMO-2026-001",
"company": "示範科技股份有限公司",
"training_topic": "AI 企業內訓",
"participants": 40,
"budget_twd": 80000,
"is_urgent": true,
"contact": {
"name": "王小姐",
"email": "contact@example.com"
},
"preferred_formats": ["實體", "混成"]
}
company 是欄位名稱,也叫 key;"示範科技股份有限公司" 是該欄位的值,也叫 value。participants 對應數字 40,is_urgent 對應布林值 true。contact 裡面還有另一個物件,表示聯絡資訊是一組相關資料;preferred_formats 是陣列,表示可以有多個偏好的授課形式。
這筆資料既可以存成副檔名 .json 的文字檔,也可以成為網站呼叫 API 時的請求內容,或由 API 傳回給別的程式。重點不是副檔名本身,而是資料內容遵守 JSON 語法,以及雙方對欄位意義有相同理解。RFC 8259 為這種內容註冊的媒體類型是 application/json。[S01]
一個重要但容易忽略的差別:JSON 文字不等於程式中的物件
在畫面上看到 { "company": "示範科技" },你看到的是 JSON 文字。程式接收它時,往往先把文字解析(parse)成記憶體中的物件或資料結構,才能存取 company 這個欄位。當程式要把資料送到另一個系統,又會把自己的資料結構序列化(serialize)成 JSON 文字。在 JavaScript 中,JSON.parse() 和 JSON.stringify() 正是這兩個方向的常見工具。[S03]
因此,JSON 並不是資料庫,也不是 API,更不是 AI。它比較像「資料內容使用的共同書寫規則」。有人負責產生,有人負責傳送,有人負責解析,有人負責檢查;每個環節都可能成功,也都可能出錯。
二、從第一性原理看 JSON:為什麼系統需要共同格式?
想像網站使用 PHP,報表使用 Python,行政同仁只懂 Excel,而 AI 服務透過 HTTP API 提供功能。這 4 個環境各有自己的資料結構、欄位命名和運作方式。若每次交換資料都要求接收方理解發送方內部的程式語言與物件,系統之間的耦合就會越來越緊,稍有修改便可能互相影響。
資料交換要達成的首要目的,不是把所有系統改造成一樣,而是建立一個共同的表示層。它至少要滿足 4 個條件:可由機器可靠解析、可表示常用資料結構、跨語言可處理,以及便於觀察與除錯。JSON 在這些條件之間取得務實的平衡:相對簡潔,可表達巢狀結構,而且文字可直接讀取。這也是 JSON 能在 Web 應用與服務串接中廣泛使用的原因之一。[S01][S02][S04]
但是「共同語法」和「共同意義」不同。假設 A 系統傳送 "price": 80000,B 系統不能憑語法知道這是新台幣、美元、含稅或未稅、單價或總價。資料交換真正可靠,需要再定義欄位語意,例如 budget_twd、tax_included、currency;必要時以版本化文件或 JSON Schema 定義可接受的結構。這也是為什麼 JSON 本身的規格很短,企業落地時卻還需要資料治理與合約管理。
可以用 3 個層次理解這個問題:第一層是 Syntax(語法),字串、冒號、逗號是否放對;第二層是 Schema(結構契約),哪些欄位必填、數字應在什麼範圍、類型是否正確;第三層是 Business Semantics(業務意義),公司是否真的存在、需求是否合理、金額是否可信。3 個層次都重要,但它們不能互相取代。能被 JSON 解析器讀取,不代表可以直接拿來成交、計費或進行決策。

三、JSON 的 6 種資料型態,如何讀出正確意思?
JSON 的值可以是 6 類:字串(string)、數字(number)、布林值(boolean)、null、物件(object)與陣列(array)。IETF 將前 4 類視為基礎型態,後兩類為結構化型態。[S01]
| 類型 | JSON 範例 | 應如何理解 | 常見情境 |
|---|---|---|---|
| String 字串 | "C1642" | 一段文字,即使看起來像數字也仍是文字 | 課號、訂單號、電話、電子郵件 |
| Number 數字 | 4880 | 可表達數量、價格、比率等數值 | 人數、金額、成績 |
| Boolean 布林值 | true | 只有真與假兩種值 | 是否同意、是否啟用 |
| Null | null | 明確表示沒有值或值未知,實際語意需另訂 | 尚未填寫的日期 |
| Object 物件 | {"city":"台北"} | 以欄位名稱組成一組資料 | 客戶資訊、報價單 |
| Array 陣列 | ["AI","Excel"] | 有順序的一組值 | 課程標籤、訂單明細 |
這裡最容易讓初學者困惑的是數字與文字。電話號碼 "0912345678" 不該當成數字 912345678;郵遞區號、員工編號和訂單編號也不一定適合數值型態,因為它們主要是識別符號,不拿來進行加減乘除。反過來,"40" 雖然包含數字字元,卻是字串,不等同於數字 40。若分析程式拿它做統計,可能需要額外轉型;轉型失敗或規則不一致,都會造成問題。
null 也不等於空字串 ""、空陣列 [] 或數字 0。例如 "participants": null 可以表達人數尚未確定;"participants": 0 通常是一個明確數字,但零人數在企業內訓場景可能應被拒絕;"notes": "" 表示欄位存在、目前內容為空字串。資料模型應依業務流程明確定義,不應任意把這幾種情況混為一談。
物件和陣列的差別,不是括號形狀而已
物件用大括號 {} 包住「欄位名稱:值」,適合描述「一個東西的多個屬性」。陣列用中括號 [] 包住「依序排列的多個值」,適合描述「一批項目」。以報價單來說,報價單本身通常是一個物件,內部的明細列通常是一個陣列:
{
"quote_id": "Q-DEMO-001",
"company": "示範科技股份有限公司",
"items": [
{ "name": "AI 工具實務工作坊", "quantity": 1, "amount_twd": 60000 },
{ "name": "教材客製化", "quantity": 1, "amount_twd": 8000 }
],
"subtotal_twd": 68000,
"currency": "TWD"
}
這個例子不是實際報價。它展示的是:items 裡可以放很多筆明細,每筆明細又可以是一個物件。資料不必被硬塞成一張超寬的平面表格;需要時可保有自然的父子關係。這種結構在訂單、課程、客戶、產品規格與 AI 工具呼叫中非常常見。
JSON 最外層一定要是大括號嗎?
不一定。RFC 8259 規定,完整的 JSON 文字可以是任何一個合法 JSON 值,因此一個陣列、一個字串、一個數字,甚至 true 都可以構成有效 JSON。許多實際 API 為了便於擴充,會設計最外層為物件;這是應用介面的選擇,不是 JSON 語法本身的硬性要求。[S01]
四、5 個必懂符號與 7 個常見語法及欄位錯誤
初學 JSON,不需要從語法規範逐頁背起。先認得 {}、[]、冒號、逗號和雙引號,就能讀懂大多數日常範例。大括號建立物件;中括號建立陣列;冒號分隔名稱與值;逗號分隔相鄰項目;雙引號包住欄位名稱和字串值。空白與換行可以幫助人閱讀,但不是必須保留的排版。
JSON 有意採取相對嚴格的語法。它和一般 JavaScript 物件字面值很相似,卻不能完全照搬。例如 JSON 的欄位名稱必須用雙引號,不能把註解直接放入標準 JSON,也不允許最後一個項目後面多出逗號。[S03][S05]
| 常見錯誤 | 錯誤寫法 | 正確或建議做法 |
|---|---|---|
| 單引號包住字串 | {'name':'Amy'} | {"name":"Amy"} |
| 欄位名稱沒有雙引號 | {name:"Amy"} | {"name":"Amy"} |
| 最後多逗號 | {"a":1,} | {"a":1} |
| 布林值寫成字串 | "enabled":"true" | 依欄位契約使用 "enabled":true |
| 使用不合法的特殊數值 | {"score":NaN} | 依規則使用 null 或另訂錯誤欄位 |
| 直接放入註解 | {"x":1 // 原因} | 將說明寫到文件,不放在標準 JSON 內容 |
| 重複欄位名稱 | {"a":1,"a":2} | 保持同一物件中的欄位名稱唯一 |
重複欄位名稱特別值得重視。RFC 8259 對物件欄位名稱使用「SHOULD be unique」的措辭;不同解析器對重複名稱的處理可能不同。有的只保留後者,有的可能拒絕,有的可能保留多筆。也就是說,某份資料即使勉強可解析,也不代表所有系統對它有一致的解讀。[S01]
此外,JSON 不是任意數字格式的容器。0123 這種前導零數字不合法;NaN 和 Infinity 不屬於 JSON 的數字語法。對於金額、身分識別碼與高精度小數,必須考慮接收程式的數值精度。例如跨 JavaScript 系統處理非常大的整數時,若超出安全整數範圍,可能失去精度。實務上可以用字串承載識別碼,或另外定義十進位精確運算規範。[S01][S03]
文字中的雙引號、反斜線與換行怎麼辦?
若資料本身包含雙引號,需要跳脫字元。例如 "message": "他說:\"你好\""。如果有換行,可以用 \n 表達,而不是在 JSON 字串內直接插入未跳脫的原始換行。企業最簡單的做法不是叫同仁手動記憶所有跳脫規則,而是讓程式庫產生 JSON,再用解析器測試。人工編修的設定檔則應搭配編輯器語法檢查與自動化測試。
JSON 是否需要使用 UTF-8?
RFC 8259 指出,在不屬於封閉生態系的系統間交換 JSON 文字時,必須採用 UTF-8。對繁體中文企業資料尤其重要,否則容易遇到亂碼、欄位比對錯誤或簽章不一致。UTF-8 是文字編碼,不是資料欄位命名慣例;兩者應分開管理。[S01]
五、JSON、CSV、Excel、XML、YAML,應該如何選擇?
常見的誤解是:「既然 JSON 可以裝資料,是不是以後都不需要 Excel 或 CSV?」其實不然。選擇資料格式要回到資料本身、使用者和下游工作。如果主要任務是人工檢視 10,000 列銷售紀錄,Excel 或 CSV 可能更直覺;如果要傳送一份訂單,包含客戶、地址、品項與付款狀態,JSON 的巢狀結構往往更自然。格式沒有無條件的贏家,只有適合的任務。
| 格式 | 主要優勢 | 主要限制 | 適合使用 |
|---|---|---|---|
| JSON | 跨語言、結構清楚、可巢狀 | 不直接提供試算、驗證或資料治理 | API、AI 結構化輸出、設定檔 |
| CSV | 簡單、適合平面表格與批次交換 | 不擅長表達多層關係、型態需另定 | 大批銷售明細、資料匯入 |
| Excel(XLSX) | 人類可編輯、公式、樣式與圖表 | 作為系統介面較依賴特定讀寫工具 | 分析、審閱、管理報表 |
| XML | 標籤、命名空間與成熟的驗證生態 | 通常較冗長,閱讀成本高 | 既有企業整合、文件交換 |
| YAML | 人工編輯相對友善,適合設定 | 縮排與解析規則需小心管理 | 部署與設定管理 |
不要只比較「哪個檔案比較小」。有些 CSV 檔很小,卻欠缺欄位型態與版本資訊;有些 JSON 檔較長,卻保留了必要的資料層次。成本應包含解析、修改、檢驗、資安、使用者學習及未來維護,而不是只看文字的字元數。
實務選型規則:如果下游要用 SQL 做多表查詢,通常仍應使用合適的資料庫;如果要讓行政同仁調整統計報表,用 Excel/Sheets;如果要向不同服務傳送一組明確定義的資料,用 JSON;如果要交付大量平面明細作批次分析,CSV 值得優先考慮。企業系統通常會同時使用數種格式,彼此轉換,而不是強迫所有資料永久只採用其中一種。
六、JSON 與 API 的關係:格式不是通道
API 可以理解為系統對外提供的操作介面。它規定可以呼叫什麼功能、要送哪些資料、回傳什麼結果,以及錯誤時如何回應。JSON 則是 API 常用的資料表示格式之一。把它們想成物流系統:API 像收件與配送規則,JSON 像箱子裡的標準化物品清單;只有物品清單,並不會自己把貨送達目的地。
以下是一個純教學示例,並非真實可呼叫的網址:
POST /api/v1/training-leads HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer <access-token>
{
"company": "示範科技股份有限公司",
"topic": "AI 企業內訓",
"participants": 40
}
網站把這份請求送出後,伺服器可能回傳:
{
"lead_id": "DEMO-2026-001",
"status": "received",
"created": true
}
Content-Type: application/json 告訴接收方請求內容使用 JSON 媒體類型;HTTP 方法、路徑、認證機制、錯誤碼等則屬於 API 設計。JSON 只負責資料內容的文字格式,並不規定要用 HTTP,也不提供身分驗證。安全規範應檢查內容類型、輸入範圍、授權與操作順序,而不是看到 JSON 就直接信任。[S01][S10]
JSON 解析成功,為什麼 API 還是可能拒絕請求?
因為後續會檢查更多條件。{"participants":-5} 是合法 JSON,但企業內訓人數為負數沒有合理業務意義。{"participants":"四十"} 也是合法 JSON,但可能違反 API 要求數字的契約。即使人數正確,也可能因為使用者沒有建立客戶的權限、API 金鑰已過期、流量過大或客戶 ID 重複而失敗。這些都是獨立於 JSON 語法之外的問題。
真正的 API 契約至少要說清楚:欄位名稱、資料型態、是否必填、單位、允許值、最大長度、錯誤行為、版本與認證要求。團隊若只有一份成功範例,沒有定義失敗狀況,就容易在正式串接時反覆猜測。OpenAPI 之類的介面規格可以幫助描述 API,但也需要與實際實作保持一致。[S12]
七、JSON Schema 是什麼?從「看起來對」走向「檢查得出來」
如果 JSON 是資料的書寫規則,JSON Schema 就是用來描述 JSON 資料應符合哪些結構與條件的規格。它可以指出某個欄位應為字串、某個數值至少是多少、某些欄位必須存在,甚至限制不允許未定義的欄位。官方 JSON Schema 網站列示的規格版本為 Draft 2020-12;選擇規格時應留意工具實際支援的版本。[S06]
例如企業內訓詢問表單希望 company 和 participants 都必填,並且人數至少為 1。可以定義以下教學用的 JSON Schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"company": { "type": "string", "minLength": 1 },
"participants": { "type": "integer", "minimum": 1 },
"topic": { "type": "string" }
},
"required": ["company", "participants"],
"additionalProperties": false
}
此時 {"company":"示範科技","participants":40} 合乎上述 Schema;{"company":"示範科技","participants":-2} 則會因人數低於最低值被拒絕。這種檢查可以放在網站表單提交後、AI 回傳結果後、進資料庫前或跨系統匯入前。若所有服務都各自猜欄位規則,錯誤會在下游才爆發;若入口先使用一致的 Schema,就能把部分問題往上游攔下。
但請注意,JSON Schema 不是事實查核引擎。它可以檢查 company 是否為非空字串,卻不能因為有字串就保證公司真實存在;可以限制金額為正數,卻不能保證報價符合合約、稅務與內部核准流程。資料型態正確,是商業判斷的前置條件,不是商業判斷本身。
Schema 如何成為跨部門共同文件?
行銷部門希望表單越短越好,業務希望知道客戶規模與預算,行政希望欄位穩定,資訊部門需要資料符合規格。與其讓 4 個單位在各自系統裡建立不同名稱,最簡單的治理方式是建立一份資料字典:company 的定義是公司名稱;participants 為預估參與人數,單位人;budget_twd 為預估總預算,單位新台幣;status 的允許值包含 new、contacted、qualified。欄位字典既能讓人理解,也能進一步轉成機器可驗證的 Schema。
當欄位需要改動,應事先判斷會否破壞舊系統。例如刪除欄位、把數字改成文字、變更原本值的含義,都可能影響既有自動化。對外 API 應有版本策略、回滾方式與變更記錄。這不是 JSON 自動提供的功能,而是組織把 JSON 當成可靠契約時必須搭配的治理實務。
八、ChatGPT 與 AI Agent 為什麼經常需要 JSON?
生成式 AI 很擅長以自然語言整理、摘要與分類,但一般自然語言不一定適合直接交給程式操作。假設 AI 收到一封企業訓練詢問信,回答「這是一家約 40 人的企業,對 AI 課程感興趣,建議優先聯繫。」人員看得懂,下一個系統卻很難確定 40 是員工總數、受訓人數還是其他數字;也不確定「優先聯繫」應被映射成什麼標準值。
若改成固定欄位,後續程式就能更穩定地使用結果:
{
"company": "示範科技股份有限公司",
"requested_topic": "AI 企業內訓",
"participants": 40,
"intent_category": "training_inquiry",
"priority": "review",
"needs_human_review": true,
"missing_fields": ["training_date", "contact_phone"]
}
這只是示範格式,不是 AI 對真實客戶的判斷。若讓 AI 任意產生欄位,可能一下使用 companyName、一下使用 company;若資料缺漏,有時填 unknown,有時填 null。程式就要寫很多補救規則。這也是為什麼 AI 的結構化輸出重點不只在 JSON,而在受限制的欄位、類型與列舉值。
JSON Mode 與 Structured Outputs 差在哪裡?
OpenAI 官方文件區分 JSON Mode 與 Structured Outputs:前者主要確保輸出為可解析的 JSON,但不保證符合你指定的欄位契約;後者可依支援的 JSON Schema 範圍約束輸出結構。文件也提醒,需要處理拒絕回應、截斷與其他邊界情況,而且 Structured Outputs 支援的是 JSON Schema 的子集合,不能假設所有 Schema 關鍵字都可直接使用。[S07]
例如你若要求 priority 只能是 low、medium、high,單純說「請輸出 JSON」並不足以建立保證;用可支援的結構化輸出機制,可以更明確限制值的範圍。不過,符合 Schema 不等於 AI 的分類一定正確。業務仍應檢查重要資訊與原始信件是否一致,尤其是預算、聯絡方式、日期與法律、財務類欄位。
企業設計 AI 進線分類時,可把欄位區分為「原文擷取」與「模型推論」。例如 company 可以從表單原文擷取;priority 是依據規則與資料做出的判斷。最好保留 source_text 或原始紀錄指標,以及 reason、review_status 等欄位,避免事後無法追溯。對於沒有提供的資料,不要為了讓 JSON 看起來完整而由 AI 自行補出一組看似合理的電話、Email 或價格。
JSON 與 MCP 的關係是什麼?
MCP(Model Context Protocol)提供 AI 應用與外部工具、資源互動的協定架構。MCP 規格的傳輸說明指出,它使用 JSON-RPC 編碼訊息,並要求 UTF-8;不同傳輸方式負責把這些訊息送達。這代表 JSON 在這裡是訊息表示的重要基礎,但 MCP 不等於 JSON,JSON-RPC 也不等於所有 JSON 資料。[S11]
例如 AI Agent 要請工具查詢企業客戶紀錄,整個動作通常還涉及工具註冊、參數規格、呼叫結果、錯誤處理、身分與權限管控。JSON 可以承載呼叫內容,但不能自行決定這個 Agent 應不應該讀取客戶資料、能不能寄信、能否刪除紀錄。工具權限、行為邊界與資料格式,是 3 個需要分別管理的層次。
九、把 JSON 放進企業工作流程:一個可驗證的端到端案例
以下使用一個虛構的「企業內訓詢問」情境,示範如何從原始訊息走到可用資料。目標不是做出最複雜的系統,而是把一件原本需要人工複製貼上的工作,改造成可追蹤、可回滾的流程。

步驟 1:定義首要成果,而不是先選工具。 假設企業真正要的成果是「每一筆有效詢問都能在營業時間內被追蹤,不漏接、可統計、能回報成交」。那麼要先定義何謂有效詢問、哪些欄位不可缺、誰負責接手、是否需要立即通知,而不是先討論要用哪一款 AI Agent。JSON 的任務是承載資料,不能替代流程責任。
步驟 2:保留原始資料。 網站表單可能有欄位缺漏、自由文字描述和不可預期的符號。原始內容應有可追溯的紀錄識別碼與收到時間。若後續經過 AI 摘要或欄位轉換,應能回頭比對原文,否則 AI 對課程需求或預算的誤解將很難察覺。
步驟 3:整理為統一 JSON。 不同網站表單可能使用 people_count、attendees 或 participants 表達人數。可在資料整合層統一映射為 participants,並保留必要的來源資訊。這個映射表應由業務與技術人員共同審核,以免把全公司員工數錯當成實際受訓人數。
步驟 4:執行自動驗證。 驗證至少包含語法解析、型態檢查、必填檢查、枚舉值與邏輯規則。例如人數必須為正整數;電子郵件若為必填,應符合適當的格式檢查;日期要有一致的時區表示;金額要說清楚幣別與是否含稅。這些規則不是 AI 自己判斷越多越好,而是必須由企業定義、測試與維護。
步驟 5:決定自動化範圍。 例如將完整且低風險的資料寫入 CRM,將缺少聯絡方式或預算明顯異常的項目標記為 review。對外寄信、改動報價、刪除資料、授予權限等具有實質影響的操作,應有獨立授權或人工確認。未經校對的模型推論,不應直接成為正式商業決策。
步驟 6:留下可追蹤的輸出物。 一個成熟但仍簡單的流程,至少可以交付 raw_leads.jsonl(原始紀錄)、normalized_leads.jsonl(標準化資料)、validation_issues.csv(欄位錯誤)、import_receipt.json(匯入結果)與一份日報表。它們的價值不在於檔案數量,而在於每一筆資料的來源、處理結果與責任歸屬都能確認。
步驟 7:以成果驗證,而不是以「串接成功」驗證。 系統回傳 200 OK,只能說明某次請求按協定取得回應;未必代表資料已正確寫入、同仁已接手、客戶已收到資訊或產生營收。企業可以建立從進線到接洽、提案、成交的漏斗指標,再觀察自動化是否真的減少漏單、縮短處理時間並提升可追蹤性。數據要來自實際流程,不應在文章中臆造改善百分比。
一份實務上可用的資料契約範本
若要真正落地,建議採用下列欄位定義作為起點,並依實際表單與授權規範調整:
| 欄位 | 型態 | 必填 | 意義與注意事項 |
|---|---|---|---|
lead_id | string | 是 | 系統唯一識別碼;避免當成數字處理 |
received_at | string | 是 | 具時區資訊的 ISO 8601 時間字串 |
company | string | 是 | 公司名稱,不代表已查證公司登記 |
topic | string | 是 | 客戶詢問主題;自由文字可另有標準分類 |
participants | integer 或 null | 否 | 預估受訓人數;不知時用 null,至少 1 人才算有效數值 |
budget_twd | integer 或 null | 否 | 新台幣預估金額;未確認不可自行補估 |
contact_email | string 或 null | 否 | 真實聯絡方式,須注意個資與同意範圍 |
review_status | string | 是 | 允許值由內部流程統一定義 |
source_id | string | 是 | 可回到原始表單或郵件的關聯識別碼 |
此表只是編輯範例,並非法律或特定企業系統的通用義務。實際上線前應由資訊、業務與個資管理負責人共同確認保存期限、存取權限、客戶通知方式及資料處理需求。
十、JSONL、JSON-LD、JSON-RPC:名字很像,使用目的不同
JSON 後面經常接其他字母,容易讓初學者以為它們是完全不同的程式語言。事實上,它們通常是在 JSON 基礎上針對不同需求形成的規範或慣例,目的各不相同。
JSONL:讓大量紀錄逐行儲存
JSON Lines 常使用 .jsonl 副檔名。概念是每一行都是一個獨立的合法 JSON 值,適合逐筆處理紀錄、日誌與資料集。例如:
{"lead_id":"L001","status":"new"}
{"lead_id":"L002","status":"contacted"}
{"lead_id":"L003","status":"review"}
這與單一 JSON 檔案包住一整個陣列不同。JSONL 的優點是可以逐行追加和讀取,便於處理持續成長的紀錄。需要注意的是,JSONL 並不是可以任意把美化過、跨多行的 JSON 物件直接相接;每一行應包含完整的一個 JSON 值。JSON Lines 官方說明也記錄了 UTF-8 與一行一值的慣例。[S08]
JSON-LD:讓搜尋引擎理解網頁內容
JSON-LD 是以 JSON 形式表達連結資料的方式。在網站 SEO 場景中,它常用來提供文章、產品、組織等結構化描述。Google Search Central 文件建議,在可行時使用 JSON-LD 作為結構化資料標記格式,並說明 Article 結構化資料可以包含標題、作者、發佈日期等屬性。[S09]
但網站加上 JSON-LD,並不等於保證 Google 收錄、排名提升或一定顯示搜尋強化結果。對一篇教學文章,只有實際存在、與可見內容一致的屬性才應填入。若文章尚未發布,就不應先偽造正式發佈日期、實際 URL 或已經存在的作者介紹。結構化資料是向搜尋系統描述內容,不是用來創造不存在的事實。
JSON-RPC:一種以 JSON 表示請求與回應的協定
JSON-RPC 使用 JSON 格式表達方法呼叫、參數、回應與錯誤資訊。MCP 使用 JSON-RPC 交換訊息,是 AI 工具生態中常見的例子之一。不要把 JSON-RPC 想成 JSON 本身的進階版本;它建立的是另一組應用通訊規則,JSON 只是訊息載體。[S11]
區分方法很簡單:看到 .jsonl,先問是不是一行一筆的資料;看到 application/ld+json 或 @context,先問是不是語意化結構資料;看到 "jsonrpc":"2.0",先問是不是程序呼叫的協定訊息。相同語法,不代表相同用途。
十一、企業最容易忽略的不是括號,而是資料品質與資安
系統之間越容易交換資料,錯誤與敏感資訊也越容易被快速傳遞。JSON 的便利性必須搭配控制措施,不能把「有格式」誤認為「已受保護」。OWASP 的 REST Security 指南提醒,API 應檢驗輸入的型態、範圍、格式與長度,控制請求大小,檢查 Content-Type,並區分身分驗證與授權。[S10]
第一種風險是欄位被過度信任。 例如 API 接收使用者提交的 JSON 後,將內容全部自動映射到內部資料模型。若程式沒有採用允許清單,攻擊者可能額外傳入 role、approved、is_admin 等非預期欄位,導致不應被客戶修改的狀態遭到改動。OWASP 對 JSON API 的 Mass Assignment 測試特別指出這類風險。[S13]
第二種風險是資料內容正確性。 金額與數量不能只驗證為數字,還要確認單位與計算依據。amount_twd 是總額、單價、含稅額還是未稅額?participants 是實際參與者還是全公司員工數?date 是台灣當地日期還是 UTC 時間?這些問題在語法層面看不見,只能靠業務契約、來源檢查與測試處理。
第三種風險是個資與機密洩漏。 JSON 常以純文字顯示,方便除錯,但也意味著容易被複製到日誌、工單或 AI 提示中。如果包含客戶電話、身分資訊、契約內容或存取權杖,不應直接貼到公開的線上 JSON 格式化網站或多人可見的開發聊天室。應優先使用本機或經公司核准的驗證工具,敏感資料進入 AI 服務前須依組織政策與法律要求處理。
第四種風險是重複處理。 假設表單提交後,網路逾時讓發送端以為失敗而重試。同一筆資料可能被建立 2 次,或寄出重複通知。可靠的自動化需要資料識別碼與冪等性(idempotency)策略,讓同一個已處理事件可以安全辨識,不把技術重試誤認為新客戶。
第五種風險是錯誤被 AI 美化。 語言模型可能將模糊敘述整理為看似完整的欄位,讀者卻沒有發現內容是模型推測。對「尚未決定」、「約莫」、「預算待核准」等資訊,應保留其不確定性與原始證據。不能因為輸出的 JSON 看起來精準,就把它當成經過核對的事實。
上線前的七項最低檢核
- 有完整的原始資料與可查詢的識別碼。
- 欄位名稱、型態、單位、必填條件均有資料字典。
- 接收端會驗證 JSON 及 Schema,不接受任意額外欄位。
- 金額、日期、聯絡資訊與關鍵分類有業務規則或人工覆核。
- 金鑰不寫進 JSON 範例檔、公開程式庫與可分享日誌。
- 重要寫入操作有重試、重複資料控制、錯誤記錄與回滾方法。
- 能回答一筆資料從哪裡來、何時處理、由誰核准、目前到哪個狀態。
通過這些檢核,不代表風險歸零;它只是讓自動化從「一次示範成功」往「可以被管理的日常流程」前進。
十二、初學者如何實際練習 JSON?從閱讀到可驗證的交付物
最有效的入門方式不是先背 20 個名詞,而是完成 3 個小任務。第一個任務是讀懂資料;第二個任務是發現錯誤;第三個任務是將結果交給下一個系統。這 3 個任務剛好對應 JSON 在企業中的真實價值。
練習 A:讀懂一份課程 JSON
{
"course_id": "C-DEMO-101",
"course_name": "AI 工作效率實務",
"duration_hours": 6,
"topics": ["提示詞", "資料整理", "報表"],
"is_open": false
}
請先不使用任何程式,直接回答:課程編號是哪一個值?時數是不是數字?topics 代表一個標籤還是多個標籤?false 是文字還是布林值?如果答案都能區分,就已具備閱讀日常 JSON 的基本能力。
練習 B:找出格式錯誤
{
'company': '示範科技',
"participants": 40,
}
這份內容有兩種典型錯誤:欄位與字串使用單引號,以及最後一個欄位後面多了一個逗號。更正後應為:
{
"company": "示範科技",
"participants": 40
}
有時候錯誤訊息說明「第 3 行、第 15 個字元附近無法解析」,不必以為整份資料都壞掉。先檢查最近的大括號、中括號、逗號、引號,以及是否有不合法的跳脫字元,通常能快速縮小範圍。
練習 C:用 Python 驗證 JSON 並轉成表格
Python 內建 json 模組。下例先讀取 JSON 字串,再把欄位整理成一列輸出;內容是教學示例,沒有連線任何外部系統。
import json
payload = '''{
"company": "示範科技",
"participants": 40,
"topic": "AI 企業內訓"
}'''
data = json.loads(payload)
assert isinstance(data["participants"], int)
assert data["participants"] >= 1
print(data["company"], data["participants"], data["topic"])
如果未來需要處理 1,000 筆表單紀錄,可以先把每筆資料整理成一致欄位,再用 Python 或資料處理工具輸出 CSV,交給 Excel、Power Query 或 BI 工具。這時 JSON 是系統與紀錄的中介格式,CSV 是表格資料交換格式,Excel 是閱讀與分析介面。它們不是互相競爭,而是處理不同階段的需求。
練習 D:從 Excel 一列資料轉換成 JSON
假設 Excel 的欄位是 公司名稱|需求主題|人數|預算,其中一列為「示範科技|AI 企業內訓|40|80,000」。若要讓 API 正確理解,至少要做 4 個決定:欄位名稱採用英文還是中文?預算字串中的千分位是否轉成純數值 80000?人數是否可能為空白?貨幣是否固定為 TWD?在規則確認後,才適合產生 company、topic、participants、budget_twd 等欄位。
這個練習揭示了一個現實:資料格式轉換,不只是把表格換成大括號;真正的工作是保住原始意義。 若 Excel 的預算是「80,000 起」,程式不應無聲地轉成確定的 80000;若資料含「待議」,也不能在沒有明確規則下改成 0。
十三、面向企業主管:學 JSON 到什麼程度才夠?
企業主管不一定需要親自撰寫大型程式,但應能理解幾個關鍵判斷:資料從哪裡來、傳給誰、何處有驗證、何處需要人負責,以及如何衡量成效。假設外包廠商展示「AI 已經把所有詢問信變成 JSON」,主管應追問:抽取欄位的正確率如何測試?沒有提到預算時會回傳什麼?客戶重複填單怎麼處理?錯誤資料會不會直接進正式 CRM?權限與紀錄保存由誰管理?
這些問題遠比知道大括號的英文名稱更有價值。懂 JSON 的最終目的不是增加技術術語,而是具備「看懂交接資料與辨識系統風險」的能力。對業務團隊,價值在於讓詢問資料標準化;對營運團隊,價值在於追蹤流程;對資料分析團隊,價值在於減少欄位混亂;對資訊團隊,價值在於契約、驗證與維護。
什麼時候不需要使用 JSON?
若只是 2 位同事透過 Excel 檢查同一張小型報表,沒有自動串接需求,直接使用試算表可能更有效率。若任務只是請 ChatGPT 幫忙寫一封信,也未必需要強迫它輸出 JSON。若資料模型高度關聯、需要大量交易與複雜查詢,資料庫仍是核心基礎。過度使用 JSON 會增加轉換、除錯與欄位維護成本。選擇的原則應是:下游是否需要穩定的機器可讀資料,以及這份結構是否能降低整體工作成本。
什麼時候應該投資 JSON 與 Schema?
當資料需要跨網站、表單、AI、CRM、ERP、報表或資料庫流動;當同一工作每週反覆轉貼;當多人會依賴固定欄位;當資料量增加使人工檢查容易漏失;當自動化錯誤會影響客戶或財務結果時,JSON 與 Schema 的價值便會上升。這時建議先做一條最短的流程,從單一來源、單一資料契約、單一下游開始,再逐步擴充,而不是一次整合所有系統。
十四、30 天內建立一條可交付的資料交換流程
以下是一個建議性的導入節奏,並非每家公司都必須採用的固定時程。重點是每一步都留下可以驗收的成果,而不是只完成一場工具操作示範。
| 階段 | 首要目的 | 具體工作 | 應產出物 | 驗收方式 |
|---|---|---|---|---|
| 第 1 週 | 定義資料 | 盤點一個高頻流程、整理欄位、確認單位和缺值 | data_dictionary.md、3 筆真實去識別案例 | 業務與資訊對欄位含義一致 |
| 第 2 週 | 建立契約 | 設計 JSON 範例與 Schema、列出錯誤情境 | sample_payload.json、schema.json | 好資料通過、壞資料被拒絕 |
| 第 3 週 | 串接流程 | 實作單一來源到單一下游、記錄異常 | 測試用 API、匯入日誌 | 成功、失敗、重試皆可追溯 |
| 第 4 週 | 封閉驗收 | 檢查權限、人工覆核、監控與回滾 | acceptance_report.md、SOP | 非技術同仁能依 SOP 處理異常 |
成果衡量建議至少包含 4 類:資料完整率、結構驗證通過率、人工修正所需時間,以及從收到資料到業務接手的時間。如果企業目標是獲得更多有效商機,還應追蹤有效詢問、提案、成交等下游指標,避免把「解析成功 100%」錯當成「企業績效改善 100%」。真正的成果應由工作現場證實。
3 個可以直接交給 AI 的提示詞
提示詞 1:把非結構化資料轉成 JSON。 「請根據以下企業詢問文字,僅擷取原文有明確依據的公司、需求主題、預估人數與預算,回傳有效 JSON。沒有提及的欄位填 null,不得猜測。額外提供 missing_fields 陣列,標示需要人工補問的項目。請勿生成原文沒有的聯絡方式。」
提示詞 2:檢查資料契約。 「請檢查以下 JSON 是否符合給定 JSON Schema。先指出語法錯誤,再指出型態與必填問題,最後列出只有業務人員才能判定的語意疑慮。不要把語法問題、欄位規格和事實查核混成一個結論。」
提示詞 3:產生匯入測試案例。 「依這份資料字典產生 5 筆純示範資料,涵蓋正常、缺值、錯誤型態、重複識別碼與極端數值。輸出為可解析的 JSON 陣列,不要使用真實個資;再提供每筆預期通過或被拒絕的理由。」
對實際系統開發,仍應優先使用 API 提供的結構化輸出能力和程式驗證,而不是僅依賴提示詞約束。提示詞可以提升開發效率,但不應被誤認為可取代資料契約、程式測試與權限管理。
十五、資料契約進入正式系統時,還有哪些設計細節?
一份能在範例中成功解析的 JSON,和一套能長期維護的資料交換機制,是兩個不同的成熟度。當業務量增加,同一個欄位可能被數十個流程讀取,某一次「只是改個名字」就可能造成網站、報表和客服工具同時錯誤。因此,技術團隊需要把資料契約當成正式介面管理,而不是把 JSON 範例貼在文件中就算完成。
1. 欄位命名:讓語意清楚,比追求短字更重要
欄位命名通常需要團隊統一慣例。例如使用 snake_case 的 contact_email,或使用 camelCase 的 contactEmail,兩種都可以,但同一條資料管線中最好不要隨意混用。amount 看似簡潔,卻沒有說明幣別、用途與計算方法;total_amount_twd 清楚一些,但仍需要文件定義是否含稅、是否包含折扣,以及數字精度如何處理。
同樣的道理也適用於日期。created_at 通常表示一個時間點;training_date 可能只是某一天而非精確時間。如果一個欄位需要排課,必須說清楚是客戶偏好的日期、確定授課日期、表單填寫日期,還是內部建檔日期。這些不是 JSON 語法問題,但錯用一個日期欄位,就可能讓自動通知在錯誤的時間發送。
欄位命名還應考慮跨系統一致性。假設原始表單欄位叫「預計上課人數」,CRM 叫 number_of_employees,報表叫 attendance,AI 提示詞則叫 participants。後續流程很容易把「公司員工總數」、「預估參與人數」和「實際出席人數」混為一談。應先由業務定義這 3 個概念,再由技術團隊建立明確的欄位映射,而不是只靠名稱相似進行自動轉換。
2. 缺值與未知:不同狀態不能全都寫成 null
當一個聯絡電話欄位不存在,可能代表客戶沒有被要求填寫;當欄位存在但為 null,可能代表系統知道目前沒有值;當欄位是空字串,可能代表表單允許送出空白內容。這 3 種狀態能否互換,完全取決於資料契約。對追蹤資料品質的團隊,建議使用額外的欄位或狀態碼,區分「尚未收集」、「客戶拒絕提供」、「來源系統漏送」、「AI 無法辨識」等情況。
例如:
{
"contact_phone": null,
"contact_phone_status": "not_provided",
"review_status": "needs_follow_up"
}
這個模型比單純的 "contact_phone": "" 更容易支援後續人工處理。但如果每個欄位都附加一個狀態欄,資料會迅速膨脹。因此應以業務重要性選擇:關鍵欄位需要細緻狀態;低影響欄位只保留空值即可。最壞的情況不是資料設計過於簡單,而是不同系統以不一致方式處理同一個空值,卻完全沒有文件記錄。
3. 金額與精度:請把它當成商業決策而非漂亮數字
JSON 的 number 可以表達數字,但不會自動告訴你這是否為整數、浮點數或適合金流的精確小數表示。對單純的人數計算,整數是合理的;對報價、發票、折扣、外幣換算或稅額,設計時還要考慮計算精度、四捨五入規則與單位。跨多語言平台時,應建立一致策略,而非假設每個程式語言對小數的行為都完全相同。
例如把金額記為「最小貨幣單位的整數」,或由有精度控制的數值型態計算,再按約定的格式序列化。若金額一定採新台幣整元,可明確規定 amount_twd 為整數;若要記錄小數金額,可考慮使用十進位字串並在應用層以專用數值型態處理。重點在於雙方明確約定,而不是單純地說「這裡是一個 number」。
4. 時間與時區:資料交換不能只寫「明天下午」
若企業跨城市協作,"meeting_time": "2026/11/09 14:00" 的問題是:哪個時區?日期格式是否固定?夏令時間如何處理?一套可靠的資料契約應記錄含時區偏移的時間點,或明確區分當地日期與地方時間。即使企業目前只在台灣營運,先統一規則也能降低將來串接外部工具的成本。
日期與時間不是 JSON 的原生型態,因此不應假設解析器會自動轉換成正確的時區。可以將時間序列化成遵循一致格式的字串,並在資料字典記錄必要的時區與精度。若只是課程日期,不需要精確到秒;若涉及 API 事件追蹤,則可能需要可比較的時間戳和清楚的排序規則。
5. 識別碼、版本與狀態:不要靠人眼猜測
lead_id、customer_id、quote_id 這類識別碼,建議維持穩定、可追溯且不因展示格式而改變。不要拿姓名、Email 或電話作為唯一且永久可靠的鍵,因為這些資料可能變更,也可能有不同人共用或缺漏。跨系統建立對應時,應使用明確的 ID 與關聯表,保留來源 ID 與目標系統 ID 的映射。
版本控制可以避免不同時代的資料被誤認為同一格式。例如:
{
"schema_version": "1.1",
"event_id": "EVT-DEMO-001",
"event_type": "lead.created",
"lead": {
"lead_id": "L-DEMO-001",
"company": "示範科技"
}
}
若 schema_version 有變動,接收端可以判斷是否採用相容處理;但版本欄位本身不會自動解決相容性。仍需要變更公告、回歸測試、可回滾的部署方式,以及對舊資料的遷移策略。對中小型流程,不必一開始採用過度複雜的版本架構,卻應至少知道何時發生了不相容修改。
6. 陣列順序與物件順序:不要賦予錯誤語意
陣列有順序,適合記錄一組按次序排列的步驟或明細;但 JSON 物件成員的順序不應被當成跨所有系統都具有相同語意的商業規則。RFC 8259 對不同解析器可能暴露的物件排序差異有明確提醒。[S01] 如果課程有必須依序進行的 4 個單元,應放在陣列中,或提供 sort_order 之類的欄位。不能只因為某個工具把欄位顯示在第一行,就認定那個欄位一定具備最高優先權。
十六、把 JSON 與 CSV、資料庫、Dashboard 結合:從資料流到決策流
對每天要處理業務、營運與報表的公司,JSON 經常位於資料流程的中間,而不是最後一站。網站表單傳來 JSON,程式清洗後寫入資料庫;資料分析工具再從資料庫或檔案匯出 CSV,最後由 Excel、Power Query 或 Dashboard 做分析。這條路徑看似繞了一圈,其實每個環節都在解決不同問題。
1. 交易資料適合保存結構,不一定適合直接分析
假設一份 JSON 訂單包含顧客、品項與交付資料。對網站而言,這樣的巢狀格式方便傳送完整訂單;對 BI 報表而言,若要計算不同產品的銷售額、毛利與訂單量,可能需要將巢狀的 items 拆成多列明細,並保留訂單識別碼。若直接統計 JSON 陣列長度而不清楚每列的意義,容易出現「一張訂單被當成多張」或「一筆商品明細被當成完整訂單」的錯誤。
更可靠的做法是定義兩種粒度:訂單層級(order-level)與明細層級(line-level)。訂單層級包含一張訂單只有一個值的欄位,例如顧客與訂單時間;明細層級包含每個品項的數量、單價、折扣與成本。資料轉換過程應記錄明細主鍵,避免重複匯入、覆蓋或多對多連接造成金額重複計算。
2. 從 JSON 轉表格,需要先決定要展開哪些欄位
有一筆資料如下:
{
"order_id": "O-001",
"customer": {"name": "示範客戶", "region": "北部"},
"items": [
{"sku": "A001", "qty": 2, "unit_price_twd": 1500},
{"sku": "B002", "qty": 1, "unit_price_twd": 3000}
]
}
對資料清理程序而言,應產生兩列明細,並在每列保留 order_id。若要計算小計,應明確定義 qty × unit_price_twd,再釐清折扣、運費及稅額是否另列。這些轉換都是商業規則,無法只靠 JSON 語法得出。若後續要做毛利率分析,還需要成本來源、成本期間與分攤規則,不能因為拿到了 JSON 就推定資料已達到分析品質。
3. 欄位完整率、重複率與匯入成功率,應分開看
一份輸入資料若有 100 筆紀錄,其中 95 筆有公司名稱,並不代表其他欄位也是 95% 完整。要看每個必要欄位的完整率,也要看整筆紀錄是否符合驗證規則。此外,一筆訂單可能因重送而出現兩次,但如果兩次具有相同 order_id,就應啟動重複判定而不是一律加總。數據品質應根據「資料總筆數、有效筆數、拒絕筆數、待人工覆核筆數」分層統計。
實務上可產生下列驗收紀錄:
{
"batch_id": "IMPORT-DEMO-001",
"received_records": 100,
"accepted_records": 93,
"review_records": 5,
"rejected_records": 2,
"status": "completed_with_issues"
}
以上數字純為計算示例,93+5+2=100。正式系統應清楚定義 review 是否尚未寫入、是否可以修改,以及統計分母是否排除空行、重複紀錄或測試資料。若缺乏這些說明,儀表板上的「匯入成功率」可能看似精準,實際卻與營運人員理解的成功不同。
4. 稽核線索應該怎麼留?
當原始資料被修改,最好能追蹤它經過了哪些轉換:例如欄位重新命名、電話格式標準化、非法字元剔除、日期補上來源時區。這不代表每一份中間檔都要永久保存,而是要有足夠資訊能重現關鍵決策。特別是財務、客戶報價、合約與管理 KPI,如果有人質疑數字來源,團隊應能從報表回到明細,再回到原始紀錄。
一套輕量流程可以保留 source_id、ingested_at、transform_version 與 validation_status,搭配適當的日誌。若資料量與風險進一步提高,可評估版本化資料集、雜湊指紋或獨立稽核紀錄。技術強度應與錯誤成本成比例,不必一開始就追求大企業等級的平台,但不能沒有可追溯性。
5. JSON 應保留到什麼階段?
沒有固定答案。如果它只是網站與後端之間的交換格式,資料解析後即可進入資料庫;如果它是外部整合的原始證據,可能需要依政策保留去識別版本;如果它是 Agent 呼叫記錄,則應保存適當的事件摘要、時間與狀態,避免存入不必要的敏感內容。決策依據包括資料來源、保存義務、故障復原需求、資安風險及後續分析成本。
十七、如何測試 JSON 串接?把「示範成功」變成可交付工程
一個 API 在正常情況下回傳正確的 JSON,只代表它通過了最容易的一種測試。正式系統還必須處理錯誤資料、極端數字、缺漏欄位、重複請求、授權失敗、服務逾時與外部系統回應異常。這些問題不必全都由 JSON 規格負責,但應納入資料交換流程的驗收計畫。
測試 1:正向案例
先準備一份最小合法資料,以及一份欄位齊全的合法資料。兩者都應通過解析與 Schema 檢查。確認匯入後公司、人數和日期等欄位沒有被意外轉型。例如 "00123" 不能轉成 123 後再存為識別碼;時間字串不能在未確認時區的情況下改變其時間點。正向案例可證明系統的基本功能,但不能涵蓋所有風險。
測試 2:反向案例
刻意讓欄位名稱沒有雙引號、讓逗號出現在末尾,或在數字欄位放入文字,確認系統能拒絕錯誤並回傳可處理的訊息。更進一步,可測試空白公司名稱、負人數、超出允許範圍的數字、未知的狀態值、巨大的陣列、深度巢狀資料。這些測試能揭露輸入驗證與大小限制的缺口,也有助於確認錯誤回應不會洩漏內部實作細節。[S10]
測試 3:業務語意案例
合法但可疑的資料往往比語法錯誤更危險。企業客戶表示「公司 200 人,但本次預估參訓 20 人」,擷取程序是否會把 200 填到 participants?信件寫「預算可能 5 萬到 8 萬」,AI 是否會擅自選擇 80,000 作為確定金額?客戶希望 11 月初開課,但尚未確定日期,系統是否會自動寫入某個日期?這些案例必須用業務專業來驗收,不能只把 JSON 交給 parser。
測試 4:故障與恢復案例
模擬 API 暫時不可用、回傳逾時或網路中斷;確認重送時不會產生 2 筆完全相同的客戶、2 封通知或 2 張正式報價。必要時讓接收端根據事件 ID 判定是否已處理。當資料寫入一半失敗,系統應記錄哪些操作已完成、哪些尚未完成,以及如何人工介入。沒有故障恢復設計的 JSON 串接,可以用來示範,但不宜視為成熟工作流程。
測試 5:權限與安全案例
不要只確認「誰登入了」,還要確認「這個使用者可以做什麼」。例如一般業務可以新增客戶詢問,但不能藉由在 JSON 裡加上 "approved":true 就核准特殊折扣;外部表單不應允許直接設定內部管理員角色。伺服器應採用明確的欄位允許清單,並在驗證完身分與權限後才執行資料變更。OWASP 的 Mass Assignment 說明提供了這類測試的重要方向。[S13]
測試 6:跨版本案例
建立舊版本與新版本各一份示例資料。當新版本增加一個非必要欄位,舊版接收端會拒絕、忽略還是保留?當一個欄位型態改變,是否有清楚的遷移策略?與其在正式上線後才讓客戶發現資料無法讀取,不如在測試時就定義相容與不相容的變更,並建立回滾方案。
| 測試分類 | 示例 | 預期結果 |
|---|---|---|
| 語法 | 最後多出逗號 | 解析失敗、記錄錯誤 |
| Schema | 人數為字串 | 拒絕或明確轉型,依契約 |
| 業務 | 受訓人數為 0 | 按業務規則拒絕或人工覆核 |
| 權限 | 外部使用者送出 approved | 不予接受未授權欄位 |
| 重試 | 相同事件送出 2 次 | 避免重複寫入與重複通知 |
| 資料品質 | 同一客戶不同名稱 | 依客戶比對規則處理,保留證據 |
| 可追溯 | 報表數字需回到來源 | 可追到來源、版本與處理狀態 |
測試完成後最有價值的產出,往往不是一張「全部成功」的截圖,而是一份清楚列出案例、輸入、預期、實際結果、錯誤訊息與處理負責人的驗收紀錄。對外包系統或企業內訓專案,這份紀錄也有助於區分「已完成串接」與「已完成業務驗收」。
十八、如何規劃 AI Agent 的 JSON 輸出評估?
如果 JSON 成為 Agent 與企業系統的橋梁,評估就不能停留在「模型有沒有回傳大括號」。至少要把測試分為結構表現、資料擷取表現、推論品質、工具動作安全與營運成效。前 3 項可以透過測試資料衡量,後 2 項則需要權限、模擬操作與真實流程的監督。
結構表現:輸出是否可解析、是否符合 Schema、必填欄位是否存在、枚舉值是否在允許範圍。這部分相對容易由程式自動計算,適合放入持續測試。若使用受支援的 Structured Outputs,仍需考慮拒絕回應、截斷與模型能力差異,不能直接假設所有請求都會產生完整且可信的業務資料。[S07]
擷取表現:模型是否忠實把原始表單中的公司、受訓人數、預算與日期填入正確欄位。建議建立一份由人工核對的基準資料集,混合正常、含糊、缺值與矛盾情況。評估時應區分錯誤擷取、過度推論與合理保留未知,不應把所有 null 一律當作模型失敗。
推論品質:例如 AI 為詢問案件建立優先順序,應有可審核的規則與基準。模型若把「需要盡快開課」判定成高優先,但案件沒有留電話與 Email,業務流程可能仍應先補齊聯絡資訊。可把模型建議與人工最後決策分開存放,再逐步分析哪些判斷最有幫助,避免把 AI 輸出直接覆蓋原始資料。
工具動作安全:Agent 可能可以查詢資料、建立表單草稿、寄信或更新客戶狀態。這些能力不應因為 JSON 參數格式正確就全數放行。應明確規定哪些動作只讀、哪些允許自動執行、哪些需要人工核准。高影響動作必須留下可驗證的操作記錄、權限檢查及必要的回滾機制。
營運成效:請先定義想改善的工作問題。如果原本每筆詢問需要人工重新整理欄位,導入後應量測每筆處理時間、需人工修正的比例與漏接案件數。如果目標是提高成交率,則需要觀察後續接洽、提案與成交,不應把 AI 成功產生 JSON 的次數視為銷售成果。這些指標應在導入前先定義,否則無法比較是否真正改善。
如何避免評估被漂亮範例誤導?
在示範場合,模型通常會收到資料齊全、文字清晰、欄位整齊的例子;真實工作卻充滿重複句、附註、誤植、口語與上下文缺漏。測試資料應包含這些不完美樣本。若公司有 5 種不同表單來源,就不要只測一種;若不同部門用不同詞描述同一概念,就應把這些差異納入測試。最好有一小組從未用來調整提示詞的保留測試資料,才能觀察修改後是否具備基本的泛化能力。
可以採用一份簡單的判斷表,把每次 AI 變更對應到「輸出 Schema 版本、模型設定、測試資料版本、核心欄位正確率、未知值保留率、人工覆核件數」。這些指標的實際數值必須由測試得出;若尚未測試,只能記錄預定驗收項目,不得把示意目標冒充實測結果。
JSON 不是 AI Agent 的全部,卻是讓 Agent 動作可以被程式接續與檢查的關鍵介面之一。當企業把 JSON 和資料契約、測試、權限及業務指標連在一起,它才真正從「格式知識」升級為「可持續的工作能力」。
十九、JSON 除錯實務:資料送不進去時,先檢查哪裡?
企業在實作串接時,最常碰到的不是整套架構突然崩潰,而是某份資料明明看起來沒問題,接收端卻報錯。這時最浪費時間的做法,是不分層次地把整份 JSON 貼給 AI,要求「全部修好」。比較可靠的順序是:先確認原始回應,再確認語法,接著檢查欄位契約,最後才檢查業務規則和系統權限。
第 1 層:你拿到的真的是 JSON 嗎?
API 回傳的資料有時可能是錯誤頁面的 HTML、登入頁面、空白回應或純文字訊息。若程式預期 JSON,直接解析這些內容自然會失敗。因此第一步不是修改括號,而是檢查 HTTP 狀態、回應標頭與實際回應內容。如果收到 401 或 403,通常應先檢查認證與授權;如果收到 404,應檢查端點網址;如果收到 500,應確認伺服器內部錯誤並查閱相應日誌。這些只是常見判讀方向,不代表每個系統都遵循相同錯誤格式。
第 2 層:語法本身是否可解析?
拿到看似 JSON 的文字後,先由解析器執行驗證。若不能解析,優先檢查雙引號、最後多出的逗號、缺少的括號、不合法的跳脫字元與編碼。避免使用正規表達式隨意取代所有單引號,因為自然語言字串本身可能包含引號或跳脫資訊。正確處理方式是修正來源的序列化程序,而不是在錯誤資料上不斷加補丁。
當你用 ChatGPT 詢問除錯時,可提供已去識別的錯誤訊息、最小可重現資料與預期格式,不需要上傳完整客戶紀錄。若某個網站只在正式環境出錯,應確認正式與測試環境的欄位版本、認證設定與回應資料是否一致,避免把環境差異誤認為語法錯誤。
第 3 層:欄位契約是否一致?
解析成功後,下一步才是 Schema。常見問題包含欄位少了、資料型態不同、陣列變成物件、數字被加上逗號變成文字,或新增了一個接收端不允許的欄位。如果接收端要求 participants 是整數,發送端傳了 "40人",系統不能理所當然地在每個地方自動猜成 40。應決定是否允許轉型、在哪一層轉型、失敗時如何記錄,再讓所有流程使用一致的規則。
第 4 層:資料正確但業務不接受,該怎麼辦?
例如格式與 Schema 都通過,卻出現「課程日期早於收到詢問的日期」、「顧客狀態已結案卻要求新增同一筆訂單」或「一筆總價與明細總和不一致」。這時需要用業務規則回答,而不是再改 JSON 格式。工程人員應把錯誤回傳為可判斷的狀態與說明,並讓業務負責人知道哪個欄位需要確認。沒有業務規則的自動修正,可能把真正的異常掩蓋掉。
第 5 層:連線成功卻看不到資料,問題在哪裡?
可能是寫入非預期資料表、記錄被過濾、用戶沒有讀取權限、資料尚未同步、時區讓查詢範圍錯位,或重複識別碼使系統跳過新寫入。調查時應使用事件 ID、來源 ID、伺服器回應與接收端查詢結果交叉核對。若只有「成功」字樣而無匯入回執,難以判斷資料是否真的完成下游處理。這說明一份好的 JSON 串接,應包含技術結果與業務結果兩種驗收資訊。
實務排錯卡
| 現象 | 優先檢查 | 不應直接下的結論 |
|---|---|---|
| 無法解析 JSON | 回應是否真為 JSON、語法、編碼 | 一定是 API 掛掉 |
Schema validation failed | 欄位、型態、必填、版本 | AI 模型一定不行 |
| API 回傳 401/403 | 認證、授權、權限範圍 | JSON 有錯 |
| 寫入後查不到紀錄 | 目標系統、查詢條件、事件 ID | 系統根本沒有寫入 |
| 金額與報表不合 | 粒度、匯率、稅額、折扣、轉型 | JSON 的計算有錯 |
| 同一事件被執行兩次 | 重試與冪等性 | 使用者一定填了 2 次 |
二十、JSON 不等於資料庫:什麼時候需要真正的資料儲存架構?
新創團隊經常從幾個 .json 檔案起步,這沒有問題。用一份設定檔紀錄系統選項、用測試 JSON 保存範例請求、用 JSONL 記錄去識別事件,都是合理的簡單作法。但當資料必須被多人同時修改、需要交易一致性、索引、權限、稽核、備份與複雜查詢時,單靠文字檔往往不再足夠。資料儲存的責任應交由符合需求的資料庫或儲存服務,而不應由 JSON 檔勉強承擔。
把資料交換層與資料保存層分開
假設網站表單傳入 JSON,後端確認欄位合法後存進 CRM 資料庫。這時 JSON 是進站的傳輸表示,資料庫則是正式紀錄的持久化存放位置。後續報表需要 6 個月內的詢問統計,可從資料庫查詢,而不是把 6 個月所有 API 回應重新接在一起。除非有特別的可追溯需求,企業不必同時把每一份 JSON 全文永久存 3 份,因為這會增加安全和維護負擔。
對於文件型資料庫與關聯式資料庫的選擇,也不能只用「哪個能存 JSON」決定。有些資料庫支援 JSON 型欄位,允許靈活保存部分巢狀內容;有些系統則以關聯表格維持主鍵、外鍵與查詢約束。企業應先看操作型態:資料是否需要跨表關聯、是否經常依固定欄位查詢、是否需要複雜交易、是否有大量彈性欄位,再決定儲存模型。JSON 能被儲存於資料庫,不代表所有內容都應原封不動塞進單一欄位。
查詢與交換的目的不同
API 通常希望一次取得某個任務需要的完整資料,例如一張訂單與所有明細;資料分析則常希望把資料正規化、以時間與類別分組、去除重複並做彙總。因此相同業務事件可能有兩種合理表示:API 回應是一個巢狀 JSON,分析資料集則是訂單表與明細表。它們可以由一致的來源轉換而來,不必勉強保持完全相同的資料形狀。
JSON 檔案是否可以視為正式紀錄?
可以,但前提是企業明確定義紀錄保存方式。若要用 JSON 作為匯出憑證或跨系統交換紀錄,就要思考檔案版本、修改權限、完整性檢查、備份、保存期間與可讀性。純文字的好處是可以直接檢視;壞處是也容易被隨意修改。對關鍵資料,有時需要外部保存系統的版本紀錄或雜湊摘要才能確認未被更改,但這些機制不會由 JSON 格式自動提供。
二十一、用 3 個企業情境決定 JSON 是否值得導入
學懂技術之後,回到最初的商業目的:企業不是為了使用 JSON 而使用 JSON,而是希望降低資料在不同人、不同系統之間轉移時的損耗。以下 3 個情境以「上游問題、下游影響、可交付產出」分析,方便管理者評估是否值得投入。
情境 A:業務詢問分散在網站、Email、LINE 與表單
上游問題:詢問可能來自不同通路,欄位不一致。Email 會有自由文字,LINE 對話缺少必要表單欄位,網站表單則有固定欄位。若同仁逐筆人工複製到 Excel,重複客戶與遺漏欄位的風險都會上升。
JSON 能扮演的角色:把每個來源先轉換成統一資料契約,保留 channel、source_id、received_at、company 與 review_status。AI 可以協助擷取自由文字中的需求,但應保留原始內容與待確認欄位。資料進入 CRM 前,執行格式、結構與業務規則檢查。
下游影響與產出:業務收到一致的詢問資料,可集中查看待聯絡、待補問與提案中案件;主管可觀察每個通路的有效詢問與成交。不過,如果原本根本沒有明確的接洽責任與追蹤 SOP,JSON 串接不會自動解決銷售問題。優先產出應是資料字典、標準表單、接洽狀態與異常清單,之後才是串接工具。
情境 B:每週從多份報表整理營運 Dashboard
上游問題:不同部門以不同 Excel 格式回報資料,欄位名稱和日期不一致。管理者希望即時查看銷售趨勢,但團隊每週都花時間整理同一批檔案,甚至發現匯入後的總額與原始帳務不一致。
JSON 能扮演的角色:若上游系統提供 API,可用 JSON 取得交易或主檔資料,再轉為一致的分析模型。若上游只能提供 CSV 或 Excel,不必強迫先轉成 JSON;更重要的是欄位映射、資料清理、唯一鍵、重複判定與對帳。資料量增加後,可使用程式或 ETL 管線做處理,將驗證結果輸出成品質報告。
下游影響與產出:Dashboard 能引用清楚來源的乾淨資料,並提供更新與核對機制。管理者不應只要求漂亮圖表,而應先要求「每次刷新後,筆數和金額能與原始資料核對」。對這個情境而言,JSON 不是唯一主角;資料處理與驗證常比格式本身更重要。
情境 C:AI Agent 協助處理跨部門任務
上游問題:部門希望 AI 不只回答問題,還能查詢內部知識、建立工作單、檢查進度甚至寄發通知。但不同工具的輸入參數與權限不同,如果 Agent 隨意呼叫,可能造成重複操作、錯誤寫入或敏感資訊外流。
JSON 能扮演的角色:工具呼叫的參數、回傳結果與部分協定訊息可用 JSON 表達;Schema 可限制工具需要的欄位;事件 ID 與日誌可協助追蹤處理狀態。但權限、授權與工具行為管理仍需要獨立機制,不能只靠要求 AI 「正確輸出 JSON」來保障安全。[S07][S11]
下游影響與產出:讓 Agent 的任務可以被測試與稽核。建議先選一項低風險的讀取型工作,確認資料是否正確、輸出是否穩定,再逐步增加可寫入的任務。應產出的資產包括工具參數契約、權限矩陣、拒絕與錯誤處理流程、測試資料集,以及人工接管 SOP。這些資產未來可以複用到不同 AI 模型與不同工具。
給管理者的最後判斷表
如果工作只有一個人使用、資料量低、沒有跨系統交換且錯誤成本很小,先改善文件與表格流程可能更有效。若資料需要跨部門、跨產品、跨工具持續流動,就值得先建立資料字典與 JSON 契約。如果後續涉及 AI 推論、客戶聯繫、金流或人事決策,除了格式契約,還必須提高來源核對、權限管理與人工覆核的標準。
這樣的順序符合第一性原理:先確認需要減少哪一種工作摩擦,再選擇資料格式與技術;先確認資料能否被信任,再讓系統執行動作;先建立可驗收的最小流程,再追求全面自動化。JSON 是讓跨工具交換資料更容易的一塊基礎積木,但它真正的商業價值來自組織如何把這塊積木接到清楚的流程、責任與成果上。
附論:為什麼「更漂亮的 JSON」不一定帶來更好的企業資料?
一份 JSON 可以排版整齊、欄位名稱一致、通過所有語法測試,但仍然沒有解決真正的工作問題。這是企業導入新工具時最需要警惕的反例。若原本的客戶資料在蒐集階段就缺少必要欄位,將它轉成 JSON 只會把缺漏變得更一致;若部門沒有共同的客戶定義,建立統一 JSON 反而可能使彼此矛盾的意義被包裝成同一個欄位;若主管的問題是沒有明確業務接洽責任,JSON 自動化更可能加快案件進入一個無人處理的資料庫。
因此,不應把資料轉換數量當成成果。比較好的提問是:每一筆資料是否能對應明確的業務事件?有沒有證據可以追溯?資料錯誤時誰會知道?下一個處理者是否減少了重新確認與重工?這 4 個問題不只適用於 JSON,也適用於導入 AI、CRM、ERP 與報表系統。格式能降低機器溝通的摩擦,卻不能自行建立人的共識。
在一些場景,甚至應刻意減少 JSON 的使用。例如人員一次性審查的營運報表,若以 Excel 直接呈現更清楚,就不必額外先產生 JSON;若需要長期保存具版本的正式合約,文件管理系統、簽署紀錄與原始檔比 JSON 摘要更重要;若涉及很大的影像或影片資產,適當的物件儲存、存取權限與檔案完整性檢查,通常比將二進位內容編碼到 JSON 更合理。
JSON 也不應被用來規避資料責任。有人可能主張「既然是 AI 自動擷取,我們不必逐筆確認」。這個推論並不成立。自動化能協助整理大量資訊,但只要錯誤會影響客戶權益、財務結果或法規義務,就必須依風險設計驗證與核准機制。即使某項工具能依 JSON Schema 輸出固定格式,也不等於模型已經理解每個欄位的實際業務含義,更不等於資料具有正式證據能力。
當資料流程尚未成熟時,最佳投資順序通常是:先清楚定義來源、欄位與責任;再建立最小可行的資料契約;接著做錯誤處理與可追溯性;最後才擴大自動化規模。這種順序可能沒有一段華麗的即時展示,但更能讓企業把專案成果帶回日常營運,而不只是完成一場課堂示範。
在評估導入成效時,建議同時保留「改善前」與「改善後」的處理流程描述。例如原本由行政同仁逐筆閱讀表單、手動複製欄位,再由主管確認分派;新流程改為系統先擷取和驗證,異常項目送人工覆核。兩者比較應以相同期間與相近案件條件為前提,檢視人工修正比例、處理時間、漏接案件及有效商機。若只計算 API 呼叫次數或 JSON 產生數量,無法說明客戶是否更快獲得服務,也無法證實團隊是否真正節省工作時間。
若後續發現自動化增加錯誤或人工補救,應保留退回人工處理的能力,調整欄位契約與流程後再重新測試。值得追求的是可持續、可解釋、可修正的業務成果,而不是讓所有資料都必須經過 JSON 才算數位轉型。
二十二、常見問題 FAQ
Q1:JSON 是一種程式語言嗎?
不是。JSON 是資料交換格式,定義文字如何表示結構化資料。你可以用 JavaScript、Python、PHP、Java 等語言產生和讀取 JSON,但 JSON 本身不具備一般程式語言的控制流程、函式與執行能力。[S01][S02]
Q2:不會寫程式,可以學 JSON 嗎?
可以。先學會辨識欄位名稱、數值型態、陣列與巢狀物件,再進一步理解資料從哪裡來、交給哪個工具。非工程角色最常需要的是審閱結構化結果、辨識資料缺漏和與工程師確認欄位契約,不一定要親自開發 API。
Q3:JSON 和 JavaScript 是同一件事嗎?
不是。JSON 的名字源自 JavaScript 物件表示法,但它的合法語法比一般 JavaScript 程式碼更嚴格,也能由許多非 JavaScript 語言處理。JavaScript 的 JSON.parse() 以及 JSON.stringify() 則是處理 JSON 文字的常用方法。[S03]
Q4:為什麼 JSON 要有那麼多大括號與雙引號?
因為接收方需要知道哪一部分是欄位名稱、哪一部分是值,以及多層資料如何組合。嚴格符號能降低解析歧義。程式可以自動產生 JSON,因此真實工作不必全部人工輸入。[S01]
Q5:JSON 檔可以用 Excel 開啟嗎?
可以透過合適的匯入或資料轉換功能處理 JSON;但巢狀資料通常需要展開或轉換成表格,並不是每個 JSON 檔都能直接以原本層次放進單一工作表。大量平面資料若主要要在 Excel 處理,CSV 可能更直接。
Q6:JSON 和 API 有什麼關係?
JSON 是常見的資料內容格式;API 是系統提供功能與交換資料的介面。API 可以使用 JSON,也可能使用 XML、表單資料或其他格式。沒有 API 的情況下,JSON 仍可被存成檔案、讀取或匯入其他工具。
Q7:JSON 格式正確,資料就正確嗎?
不對。{"budget_twd":99999999} 可能完全符合語法,甚至符合「正整數」Schema,卻可能不是客戶真正的預算。必須區分語法、結構和業務事實,重要資料仍需與來源比對及人工覆核。
Q8:JSON Schema 可以完全防止 AI 幻覺嗎?
不能。Schema 主要約束結構與允許的型態或值;它不能保證模型擷取的事實正確。結構化輸出可以降低格式不一致,但真實性、來源與權限仍需其他控制。[S06][S07]
Q9:JSON 與 JSONL 差在哪?
一般 JSON 是一個完整的 JSON 值;JSONL 則採用每行一個合法 JSON 值的慣例,適合逐筆輸入與輸出紀錄。JSONL 的多行內容不等於單一有效 JSON 文件。[S08]
Q10:什麼是 JSON-LD?對 SEO 有用嗎?
JSON-LD 是可用於描述網頁內容的結構化資料格式。Google 建議網站在適合的情況下使用 JSON-LD 標記,但標記必須反映真實內容,也不能保證頁面一定被收錄或取得特殊搜尋展示。[S09]
Q11:JSON 可以直接保存客戶密碼或 API 金鑰嗎?
即使技術上可以寫成字串,也不代表安全。JSON 是文字格式,若被提交到公開儲存庫、日誌或分享連結,敏感內容可能曝光。API 金鑰與密碼應依正式的祕密管理及存取控制方式保存,並限制存取權限。[S10]
Q12:為什麼有些 JSON 看起來只有一行?
因為空白、縮排與換行在多數 JSON 結構位置不是必要成分。系統常為縮小傳輸內容而壓縮排版;開發者則會為了方便閱讀而美化。兩者只要保有相同的資料內容與解析結果,就屬於不同顯示形式。
Q13:可以把圖片、PDF 或影片直接塞進 JSON 嗎?
JSON 的原生型態不含二進位檔案。常見做法是傳送檔案的 URL、識別碼與中繼資料,或在特定介面契約中採用經編碼的文字表示。後者會增加體積與處理成本,不應認為 JSON 原本就能直接裝進任意二進位資料。
Q14:日期為什麼通常寫成字串?
JSON 沒有原生的日期型態。若需要交換日期與時間,應制定字串格式及時區規則,例如 ISO 8601。否則同一個 2026-10-31 可能被不同系統解讀為日期、地方時間或時間戳的不同用途。[S04]
Q15:什麼情況需要找工程師,而不是只問 AI?
當資料涉及真實客戶、金流、權限、跨系統寫入、回滾與故障處理時,需要有負責系統設計和驗收的人員。AI 能幫你產生範例與程式草稿,但部署到正式流程前應由具適當權限與能力的負責人驗證。
結論:先建立資料契約,再談 AI 自動化
JSON 的門檻不高。真正難的不是記住 {} 和 [],而是組織是否已經知道自己要交換什麼資料、哪些欄位代表什麼、錯誤由誰處理、重要決策由誰負責。當資料的語法、結構與業務意義被分清楚,API 才更容易串接,AI 才能產生可接續處理的輸出,企業自動化也才有機會從示範走向可驗收的工作流程。
如果只記得一個原則,請記住:JSON 讓系統讀得懂資料;Schema 讓系統檢查得出資料結構;真實的來源核對與工作流程,才讓企業有理由相信資料可以被採用。
建議下一步:選擇一個每週都要重複整理的工作,例如企業詢問、訂單彙整或課程資料整合,先產出一份欄位字典、3 筆去識別測試資料與一份 JSON Schema,再決定要不要使用 AI、API 或自動化工具。若需要進一步規劃與企業工作情境相符的培訓,可參考天地人學堂企業內訓服務;若工作主要涉及 Excel、CSV 與報表整理,可閱讀AI 數據分析與視覺化課程介紹。實際開課與服務條件以官方頁面為準。
參考資料與查核依據
以下為本文使用的原始標準與官方技術文件,查閱日期為 2026 年 10 月 31 日。正文中的來源編號可點擊前往對應參考資料。
- [S01] IETF/RFC Editor,RFC 8259,The JavaScript Object Notation (JSON) Data Interchange Format,https://www.rfc-editor.org/rfc/rfc8259.html
- [S02] Ecma International,ECMA-404,The JSON Data Interchange Syntax,https://ecma-international.org/publications-and-standards/standards/Ecma-404/
- [S03] MDN,JSON JavaScript reference,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON
- [S04] MDN 繁體中文,JSON 術語表,https://developer.mozilla.org/zh-TW/docs/Glossary/JSON
- [S05] MDN,Trailing commas,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas
- [S06] JSON Schema,Specification Draft 2020-12,https://json-schema.org/specification
- [S07] OpenAI,Structured model outputs,https://developers.openai.com/api/docs/guides/structured-outputs
- [S08] JSON Lines,https://jsonlines.org/
- [S09] Google Search Central,Introduction to structured data,https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
- [S10] OWASP,REST Security Cheat Sheet,https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html
- [S11] Model Context Protocol,Transport specification 2026-07-28,https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2026-07-28/basic/transports/index.mdx
- [S12] OpenAPI Initiative,OpenAPI Specification,https://spec.openapis.org/oas/
- [S13] OWASP,REST Assessment Cheat Sheet,https://cheatsheetseries.owasp.org/cheatsheets/REST_Assessment_Cheat_Sheet.html
- [S14] Google Search Central,Article structured data,https://developers.google.com/search/docs/appearance/structured-data/article
圖片與素材說明
封面:天地人學堂原創概念插畫;圖中課程、時數及狀態為虛構 JSON 示例。
本文由 TARAISG(TIANDIREN AI SOLUTION GROUP)使用 AI 模型產生正文、整理來源並設計實務工具。方法依據與限制列於文末;案例為明確標示的教學假設。未有具名紀錄時,不宣稱經人工或專家審核。
查看內容製作與更正說明