匯出為結構化 JSON
除了七種文件格式之外,檔案網格 — 以及每個訊息的內嵌匯出檔案選單 — 還提供JSON匯出。與其他格式不同,JSON 不是一份可供閱讀的完成文件:它是對話的機器可讀資料,專為希望將聊天內容輸入腳本、資料庫或其他工具而無需自行抓取頁面的開發人員設計。
該檔案是一個單一的漂亮列印 JSON 物件 — 一個關於對話的元資料區塊,後面是其訊息的扁平列表。
- 對話元資料 —
schema(一個帶有版本號的識別碼,目前為ai-chat-extractor/conversation@2,以便消費者可以識別格式及其版本)、site、title、url、exported_at(一個 ISO 時間戳記)、content_format(始終為markdown) 和message_count。 messages— 一個有序陣列,每個訊息一個條目,每個條目包含其index、其role(誰發言 —user或assistant),以及兩種文字視圖:content,作為 Markdown 的完整訊息,以及**contents**,將相同的訊息拆分為帶有類型的部分。
這兩種視圖服務於兩種類型的消費者。content 是整個訊息作為一個 Markdown 字串 — 簡單腳本所需的一切。contents 將其分解為帶有類型的有序片段列表,因此管道可以根據類型選擇或刪除部分,而無需重新解析 Markdown:text 用於散文,thinking 用於模型的推理區塊,code 用於圍欄程式碼區塊 (帶有可選的 language),image 用於圖片 (帶有其 url 和 alt 文字 — 無論它是以 Markdown 還是 HTML 標籤編寫),以及 table 用於 Markdown 表格,拆分為其 headers 和 rows,以便消費者獲得真正的列而不是一塊管道字元。AI Chat Clipper 只會發出它可以從對話中誠實識別的片段類型 — 它不會發明不存在的結構。例如,引文以普通的內聯連結形式出現,沒有自己的區塊,因此故意沒有單獨的 sources 類型。
一個包含程式碼區塊的簡短助理回覆會像這樣匯出:
{
"schema": "ai-chat-extractor/conversation@2",
"site": "claude",
"title": "Reversing a string",
"url": "https://claude.ai/chat/…",
"exported_at": "2026-07-18T10:32:00.000Z",
"content_format": "markdown",
"message_count": 2,
"messages": [
{ "index": 0, "role": "user", "content": "How do I reverse a string in Python?",
"contents": [ { "type": "text", "text": "How do I reverse a string in Python?" } ] },
{ "index": 1, "role": "assistant", "content": "Use a slice:\n\n```python\ns[::-1]\n```",
"contents": [
{ "type": "text", "text": "Use a slice:" },
{ "type": "code", "language": "python", "text": "s[::-1]" }
] }
]
}