ส่งออกเป็น 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]" }
] }
]
}