วัตถุประสงค์ของหน้านี้
หน้านี้ให้คุณอัปโหลดไฟล์ JSON (หรือลากวาง) แล้วแปลงเป็นไฟล์ CSV คุณเลือกตัวคั่น (delimiter) ได้ระหว่างจุลภาค (comma), อัฒภาค (semicolon) หรือแท็บ (tab) จากนั้นดูตัวอย่างตารางก่อนดาวน์โหลด การประมวลผลทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ ไม่มีข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์
จุดแตกต่างที่สำคัญ
การแปลงจาก JSON ไป CSV เป็นทิศทางที่ “ทำให้แบนลง” (flatten) ข้อมูลที่มีลำดับชั้นและมีชนิดข้อมูลให้กลายเป็นตารางแบนไร้ชนิด JSON รองรับอ็อบเจกต์, อาร์เรย์, ตัวเลข, บูลีน และ null ในโครงสร้างที่ซ้อนกัน ส่วน CSV ไม่มีชนิดข้อมูล, ไม่มีการซ้อนกัน, ไม่มีชีตหลายแผ่น การแปลงนี้จะทิ้งข้อมูลชนิดทั้งหมด, โครงสร้างที่ซ้อนกัน, และการจัดรูปแบบทั้งหมด เพื่อแทนที่อ็อบเจกต์ JSON ที่ซ้อนกันในตารางแบน เครื่องมือจะทำการทำให้แบนราบโดยใช้สัญกรณ์เส้นทางจุด (dot‑path notation) เช่น address.city อาร์เรย์ของอ็อบเจกต์จะกลายเป็นแถวของตาราง ส่วนอาร์เรย์ของอาร์เรย์จะถูกเก็บเป็นแถวเช่นกัน เนื่องจาก CSV ใช้ตัวคั่น เครื่องหมายจุลภาคและขึ้นบรรทัดใหม่ที่แทรกอยู่ในค่าจะต้องถูกใส่เครื่องหมายคำพูด (quoting) – เครื่องมือจัดการโดยอัตโนมัติ แต่เลขศูนย์นำหน้าในตัวเลขอาจหายไป คุณต้องตัดสินใจล่วงหน้าว่าฟิลด์ที่ซ้อนกันควรถูกแทนอย่างไร (เครื่องมือใช้เส้นทางจุดเป็นค่าเริ่มต้น)
รูปแบบอินพุตและเอาต์พุตที่รองรับ
อินพุต
- ไฟล์ JSON ไฟล์เดียว (หน้ายังรับ CSV และ XLSX ได้ แต่เฉพาะ JSON ที่เกี่ยวข้องที่นี่)
- รูปแบบเอาต์พุตที่ผู้ใช้เลือก: CSV
- ตัวคั่น CSV: Comma, Semicolon หรือ Tab
เอาต์พุต
- ไฟล์ CSV พร้อมดาวน์โหลด
- ตัวอย่างตารางที่แปลงแล้ว
- จำนวนแถวและคอลัมน์
- ขนาดไฟล์เอาต์พุต
กฎและกรณีขอบ
- เครื่องมือแปลงเฉพาะค่าที่มองเห็นเท่านั้น สูตรหรือโค้ดไม่ถูกคำนวณ
- JSON ต้องมีโครงสร้างแบบตาราง – คืออาร์เรย์ของอ็อบเจกต์ หรืออาร์เรย์ของอาร์เรย์ หาก JSON ไม่ถูกต้องหรือไม่เป็นตาราง จะแสดงข้อผิดพลาด “This JSON is invalid or not table‑shaped.”
- อาร์เรย์ของอ็อบเจกต์ → แต่ละอ็อบเจกต์กลายเป็นแถว, คีย์ของอ็อบเจกต์กลายเป็นคอลัมน์, คีย์ของอ็อบเจกต์ที่ซ้อนกันถูกทำให้แบนด้วยเส้นทางจุด
- อาร์เรย์ของอาร์เรย์ → แต่ละอาร์เรย์ภายในกลายเป็นแถว, สมาชิกกลายเป็นคอลัมน์ (ไม่มีคีย์อ็อบเจกต์)
- เครื่องมือ ไม่คง ชนิดข้อมูล JSON – ค่าทั้งหมดกลายเป็นสตริงใน CSV
- เมื่อแปลง โครงสร้างที่ซ้อนกันจะหายไป เหลือเพียงการแทนด้วยเส้นทางจุดที่ถูกทำให้แบน
- กฎการใส่เครื่องหมายคำพูดสำหรับ CSV ถูกนำไปใช้โดยอัตโนมัติ (จุลภาค, ขึ้นบรรทัดใหม่, เครื่องหมายคำพูดภายในค่า)
- มีข้อจำกัดขนาดไฟล์: ข้อผิดพลาด “This file is too large. Use a file under ‹max›.”
- ข้อจำกัดแถว/คอลัมน์: ข้อผิดพลาด “This table has more than ‹max› rows.” และ “This table has more than ‹max› columns.”
- ข้อผิดพลาดอื่น ๆ: “Choose one file first.”, “Choose a CSV, JSON or XLSX file.”, “Choose a different output format.”, “Could not convert this file.”, “Conversion cancelled.”, “This conversion is taking too long. Try a smaller file.”
- การประมวลผลทั้งหมดอยู่ฝั่งไคลเอนต์ ไม่มีข้อมูลออกจากเบราว์เซอร์ของคุณ
ใครควรใช้เครื่องมือนี้
- คนที่มีไฟล์ JSON (เช่น จาก API response) และต้องการไฟล์ CSV เพื่อโหลดเข้าสเปรดชีต เช่น Excel, Google Sheets หรือเครื่องมือนำเข้าฐานข้อมูล
- คนที่ต้องการแปลงข้อมูล JSON แบบมีโครงสร้างให้เป็นตารางแบนเพื่อการรายงานหรือวิเคราะห์
- คนที่ต้องแปลงข้อมูลโดยไม่ต้องอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกล (งานที่ต้องการความเป็นส่วนตัว)
- คนที่ต้องการระบุตัวคั่นที่แตกต่าง (เช่น อัฒภาค) สำหรับ locale ที่ไม่ใช่ภาษาอังกฤษ
- คนที่สร้างไปป์ไลน์ข้อมูลต้นแบบอย่างรวดเร็วและต้องการแปลง JSON เป็น CSV ในเบราว์เซอร์
มุมมองเชิงเทคนิคที่ควรทราบ
- ความแตกต่างทางโครงสร้างระหว่าง JSON (ลำดับชั้น, มีชนิด) และ CSV (แบน, ไม่มีชนิด)
- เทคนิคการทำให้อ็อบเจกต์ JSON ที่ซ้อนกันเป็นตารางแบน (สัญกรณ์เส้นทางจุด)
- บทบาทของตัวคั่นในไฟล์ CSV และเหตุผลที่สำคัญ (จุลภาค, อัฒภาค, แท็บ)
- การสูญเสียชนิดข้อมูลระหว่างการแปลง: ตัวเลข, บูลีน, null กลายเป็นสตริง; ศูนย์นำหน้าถูกตัดทิ้ง
- ข้อดีของการประมวลผลฝั่งไคลเอนต์ในแง่ความเป็นส่วนตัว: ไม่มีการอัปโหลดข้อมูล
- ข้อจำกัดของการแปลงระหว่างรูปแบบลำดับชั้นและสเปรดชีต: สูญเสียการซ้อนกัน, ไม่มีหลายชีต, ไม่มีสูตรหรือการจัดรูปแบบ
- ข้อผิดพลาดทั่วไปเมื่อแปลงกลับไปกลับมาระหว่าง CSV และ JSON (การใส่เครื่องหมายคำพูด, การขึ้นบรรทัดใหม่ฝัง, การเข้ารหัส)
- วิธีตรวจสอบไฟล์ JSON ว่าเป็น “table‑shaped” ก่อนแปลงหรือไม่
คำถามที่พบบ่อย (FAQ)
ถาม: ไฟล์ JSON ของฉันมีอ็อบเจกต์ซ้อนกันหลายระดับ จะเกิดอะไรขึ้น?
ตอบ: เครื่องมือจะทำให้แบนราบโดยใช้สัญกรณ์เส้นทางจุด เช่น address.city ทุกอ็อบเจกต์ที่ซ้อนกันจะถูกแยกเป็นคอลัมน์แยกต่างหาก
ถาม: ข้อมูลตัวเลขที่มีศูนย์นำหน้า เช่น รหัสไปรษณีย์ “00123” จะถูกแปลงอย่างไร?
ตอบ: เนื่องจาก CSV ไม่มีชนิดข้อมูล ตัวเลขจะถูกแปลงเป็นสตริง แต่ศูนย์นำหน้าอาจหายไปหาก JSON เก็บเป็นตัวเลข หากต้องการคงศูนย์นำหน้า ควรเก็บเป็นสตริงใน JSON ก่อน
ถาม: ฉันสามารถใช้ตัวคั่นอื่นนอกจากจุลภาคได้หรือไม่?
ตอบ: ได้ คุณสามารถเลือก Semicolon หรือ Tab ได้จากเมนูตัวเลือกก่อนแปลง
ถาม: การแปลงนี้ปลอดภัยหรือไม่?
ตอบ: ปลอดภัย การประมวลผลทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ ไม่มีข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์
ถาม: ถ้าไฟล์ JSON ของฉันมีขนาดใหญ่เกินไปจะทำอย่างไร?
ตอบ: เครื่องมือมีข้อจำกัดขนาดไฟล์สูงสุด หากไฟล์ใหญ่เกินไปจะแสดงข้อผิดพลาด “This file is too large. Use a file under ‹max›.” คุณสามารถลองแบ่งไฟล์เป็นส่วนย่อยก่อน
ถาม: ฉันจะรู้ได้อย่างไรว่า JSON ของฉันเป็น “table‑shaped” หรือไม่?
ตอบ: โครงสร้าง table‑shaped หมายถึงอาร์เรย์ของอ็อบเจกต์ที่มีคีย์เหมือนกันในทุกอ็อบเจกต์ หรืออาร์เรย์ของอาร์เรย์ที่มีความยาวเท่ากัน คุณสามารถเปิดไฟล์ในโปรแกรมแก้ไขและตรวจสอบว่าอ็อบเจกต์ทั้งหมดมีฟิลด์ชุดเดียวกันหรือไม่