Developer Tools

จาก CSV สู่ JSON: การทำงานกับข้อมูลแบบตารางใน APIs

วิธีแปลงสเปรดชีตให้เป็น JSON สำหรับ APIs พร้อมสิ่งที่ต้องระวังเรื่อง headers และการใส่เครื่องหมายคำพูด รวมถึงการตรวจสอบ payload ก่อนนำไปใช้งานจริง

6 นาทีในการอ่าน

Analytics and data

CSV คือรูปแบบที่โลกธุรกิจยังคงใช้ในการรับส่งข้อมูล ไม่ว่าจะเป็นการส่งออกข้อมูลจาก CRM, รายการธนาคาร หรือรายงานสินค้าคงคลัง ส่วน JSON คือสิ่งที่ REST และ serverless APIs ส่วนใหญ่ต้องการ การแปลงระหว่างสองรูปแบบนี้อย่างถูกต้องช่วยประหยัดเวลาในการเขียน script แบบ one-off ได้หลายชั่วโมง

รูปแบบมาตรฐาน: array of objects

สำหรับ APIs รูปแบบ JSON ที่ใช้งานได้ดีที่สุดคือ array of objects โดยแต่ละ object แทนหนึ่งแถว และใช้ชื่อคอลัมน์จาก header row เป็น key:

[
  { "sku": "A-100", "qty": "12", "warehouse": "East" },
  { "sku": "B-220", "qty": "3", "warehouse": "West" }
]

โปรดทราบว่า CSV จะเก็บข้อมูลเป็น string เสมอ เว้นแต่คุณจะเพิ่มขั้นตอนการกำหนดประเภทข้อมูลแยกต่างหาก API ของคุณควรแปลง qty ให้เป็นตัวเลขหากจำเป็น

Headers และความสม่ำเสมอ

  • แถวแรก ต้องเป็นชื่อคอลัมน์เสมอ ควรเปลี่ยนชื่อที่ซ้ำกันก่อนทำการแปลง
  • ระวัง BOM character ที่อาจปรากฏตอนต้นของไฟล์ UTF-8 ที่ส่งออกจาก Excel เนื่องจากสามารถทำให้ parser ที่ไม่รองรับทำงานผิดพลาด และเปลี่ยน header แรกของคุณเป็น \uFEFFsku
  • ฟิลด์ที่มีเครื่องหมายคำพูด สามารถมีเครื่องหมายจุลภาคและขึ้นบรรทัดใหม่ได้ parser ที่ดีจะจัดการสิ่งเหล่านี้ได้ แต่การใช้ regex split-by-comma ไม่สามารถทำได้

เมื่อต้องแปลง JSON → CSV

เครื่องมือสร้างรายงานและไฟล์แนบอีเมลมักต้องการ CSV อีกครั้ง ให้ส่งออก หนึ่งแถวต่อหนึ่ง object และใช้การรวม key ทั้งหมดเป็นคอลัมน์หาก object มีโครงสร้างต่างกัน (แถวที่ไม่มีข้อมูลจะได้รับเซลล์ว่าง)

ตรวจสอบก่อนนำไปใช้งานจริง

หลังจากแปลงข้อมูลแล้ว ให้นำ JSON ของคุณผ่าน JSON Formatter เพื่อตรวจหา trailing commas, single quotes หรือค่า NaN ที่อาจเกิดจากสูตรในสเปรดชีต

หาก pipeline ของคุณรับ YAML จาก config repos ด้วย YAML to JSON ช่วยให้คุณปรับทุกอย่างให้ตรงกับ JSON schema tests เดียวกันได้

ลองใช้งานในเครื่องของคุณ

CSV ↔ JSON Converter ของเราทำงานในเบราว์เซอร์โดยตรง: วางตัวอย่างข้อมูลที่ส่งออกมา แล้วรับ JSON ที่จัดรูปแบบแล้ว หรือแปลงกลับเป็น CSV สำหรับรายงานด่วน โดยไม่มีไฟล์ใดออกจากอุปกรณ์ของคุณ

ให้ถือว่า CSV เป็น ข้อมูลที่ไม่น่าไว้วางใจ หากผู้ใช้เป็นคนอัปโหลด ควรจำกัดขนาดไฟล์ ตรวจสอบ formula injection ใน Excel (=cmd|) และอย่าประมวลผลเนื้อหาในเซลล์เป็นโค้ดเด็ดขาด

สรุป

  • ให้ใช้รูปแบบ header + rows → array of objects สำหรับ APIs
  • รักษากฎการใช้เครื่องหมายคำพูด และหลีกเลี่ยงการเขียน CSV parser เองสำหรับงาน production
  • ตรวจสอบ JSON และ schema เสมอก่อนส่งไปยัง downstream services