🔧Toolify

ตัวแปลง CSV ↔ JSON (รองรับ RFC 4180)

วาง CSV หรือ JSON ตัวแปลงจะแยกวิเคราะห์ CSV ที่รองรับ RFC 4180 (จัดการ quoted field ที่มีจุลภาค เครื่องหมายคำพูดที่ escape และค่าหลายบรรทัด) สำหรับ JSON เป็น CSV รองรับทั้ง array-of-objects (ใช้ key เป็น header) และ array-of-arrays

ผลลัพธ์
[
  {
    "name": "Alice",
    "age": "30",
    "city": "Tokyo"
  },
  {
    "name": "Bob",
    "age": "25",
    "city": "Seoul"
  },
  {
    "name": "Carol",
    "age": "42",
    "city": "Madrid"
  }
]

วิธีการทำงาน

ทำไม RFC 4180 ถึงสำคัญ

CSV ดูเรียบง่ายแต่มีกรณีพิเศษ: ฟิลด์ที่มีจุลภาคต้องถูกใส่เครื่องหมายคำพูด ฟิลด์ที่มีเครื่องหมายคำพูดต้อง escape เป็นเครื่องหมายคำพูดคู่ และฟิลด์สามารถมีบรรทัดใหม่ถ้าถูกใส่เครื่องหมายคำพูด การแยกวิเคราะห์แบบง่าย ๆ จะพังกับข้อมูลจริง ตัวแปลงนี้ใช้ grammar ของ RFC 4180 อย่างครบถ้วน

ตัวแยกวิเคราะห์แบบง่ายยังพังกับ Excel ที่ export โดยใช้เซมิโคลอน (พบบ่อยใน locale ยุโรปที่ ',' เป็นตัวคั่นทศนิยม) หรือแท็บ (TSV) ตัวเลือกตัวคั่นรองรับทั้งสี่แบบทั่วไป

รูปแบบ JSON สำหรับผลลัพธ์

Array of objects (ค่าเริ่มต้นเมื่อมีหัวแถว): แต่ละแถวกลายเป็น {คอลัมน์: ค่า} รูปแบบ JSON ที่พบมากที่สุด ใช้งานง่ายในทุกภาษา

Array of arrays (ปิดหัวแถว): แต่ละแถวกลายเป็น [v1, v2, ...] มีประโยชน์เมื่อคอลัมน์ไม่มีชื่อหรือต้องการโครงสร้างแบบตำแหน่ง

เมื่อแปลง JSON เป็น CSV ตัวแปลงจะตรวจสอบว่าคุณมีรูปแบบใด Objects: ดึง key ที่ไม่ซ้ำกันทั่วทุกแถวสำหรับ header Arrays: เขียนแถวตามที่เป็น

ข้อผิดพลาดที่พบบ่อย

Excel locale: ใน Excel บางรุ่นในยุโรป ตัวคั่นเริ่มต้นคือ ';' ไม่ใช่ ',' หาก CSV ของคุณดูเหมือนคอลัมน์เดียวเมื่อ import ให้เปลี่ยนเป็น ; ในตัวเลือกตัวคั่น

BOM (Byte Order Mark): Excel บางรุ่น export ไฟล์พร้อม U+FEFF นำหน้า เราส่งผ่านมันไป หากตัวแยกวิเคราะห์ปลายทางล้มเหลว ให้ลบ 3 ไบต์แรก

บรรทัดใหม่ท้าย: CSV ที่ลงท้ายด้วย '\n' จะเพิ่มแถวว่างสุดท้ายในตัวแยกวิเคราะห์บางตัว เรากรองแถวว่างโดยอัตโนมัติ

ตัวเลขเป็น string: CSV ไม่มีประเภทข้อมูล — '42' กลายเป็น string "42" ใน JSON หากต้องการค่าที่มีประเภท ให้ทำขั้นตอนหลังการประมวลผลที่บังคับคอลัมน์ตัวเลขที่รู้จัก

คำถามที่พบบ่อย

รองรับ quoted field ที่มีจุลภาคได้ไหม?

ได้ — รองรับ RFC 4180 quoting อย่างครบถ้วน "Doe, John" ถูกแยกวิเคราะห์เป็นฟิลด์เดียว

จัดการ escaped quote อย่างไร?

ตาม RFC 4180 '"' ที่อยู่ใน quoted field เขียนเป็น '""' (สองเครื่องหมาย) ตัวแยกวิเคราะห์จัดการถูกต้อง

ฟิลด์มีบรรทัดใหม่ได้ไหม?

ได้ เมื่อถูกใส่เครื่องหมายคำพูด "line 1\nline 2" ในเครื่องหมายคำพูดถือเป็นฟิลด์เดียวที่มีบรรทัดใหม่ฝังอยู่

รองรับ BOM (UTF-8) ไหม?

BOM ส่งผ่านไป หาก downstream ของคุณไม่รองรับ ให้ลบ 3 ไบต์แรก (EF BB BF) จาก CSV

แล้วไฟล์ขนาดใหญ่ล่ะ?

เบราว์เซอร์จัดการได้สองสามเมกะไบต์โดยไม่มีปัญหา สำหรับ CSV ขนาดใหญ่มาก (100MB+) ให้ใช้ streaming parser เช่น Papa Parse กับ worker หรือ CLI tool

ตัวเลขถูกเก็บเป็นตัวเลขหรือไม่?

CSV → JSON: ค่าทั้งหมดกลายเป็น string (CSV ไม่มีประเภท) JSON → CSV: ตัวเลขกลายเป็น CSV cell ที่ไม่มีเครื่องหมายคำพูด หากต้องการ JSON ที่มีประเภท ให้ประมวลผลคอลัมน์ที่รู้จักว่าเป็นตัวเลข

ทำไม JSON ของฉันถึงแสดง empty string แทน null?

CSV แสดงค่าที่หายไปเป็น empty cell เราแมปเป็น empty string หากต้องการ null ใน JSON ให้ประมวลผลผลลัพธ์ต่อ

ข้อมูลออกจากเบราว์เซอร์หรือไม่?

ไม่ การแปลงทำงานในเครื่อง ไม่มีข้อมูลส่งไปยังเซิร์ฟเวอร์

เครื่องมือที่เกี่ยวข้อง

อัปเดตล่าสุด:

ลองพรอมต์ AI ของเรา →