ข้ามไปยังเนื้อหาหลัก

แปลง JSON เป็น CSV

ตัวแปลงต้องการอาร์เรย์ออบเจ็กต์ JSON และเขียน CSV หนึ่งแถวต่อหนึ่งออบเจ็กต์ ระเบียนต่าง ๆ แทบไม่เคยมีคีย์ตรงกันทั้งหมด คู่มือนี้จึงแสดงว่าคอลัมน์ถูกเลือกอย่างไรและอะไรจะเติมช่องที่ขาด

ตัวอย่างการใช้งานจริง

อินพุต (JSON)
[
  {"id": 1, "name": "Smith, Jane", "tags": ["admin", "ops"]},
  {"id": 2, "name": "Kim", "email": "[email protected]"},
  {"id": 3, "name": "Lee", "email": null}
]
เอาต์พุต (CSV)
id,name,tags,email
1,"Smith, Jane","admin,ops",
2,Kim,,[email protected]
3,Lee,,

แถวส่วนหัวแสดงทุกคีย์ตามลำดับที่ปรากฏครั้งแรก: id, name, tags แล้วตามด้วย email จากออบเจ็กต์ที่สอง Smith ไม่มี email และ email ของ Lee เป็น null เซลล์ทั้งสองจึงว่าง อาร์เรย์ tags ถูกเขียนเป็น admin,ops และใส่เครื่องหมายคำพูดเพราะมีตัวคั่นอยู่ เหมือนกับ "Smith, Jane"

ตัวแปลงจัดการอย่างไร

  • อินพุตต้องเป็นอาร์เรย์ JSON เช่น [{...}, {...}] ส่วนออบเจ็กต์เดี่ยวเพียงตัวเดียวจะถูกปฏิเสธ
  • คอลัมน์คือคีย์ทั้งหมดจากทุกออบเจ็กต์รวมกันโดยไม่ซ้ำ เรียงตามลำดับที่แต่ละคีย์ปรากฏครั้งแรก
  • คีย์ที่ขาดหายหรือค่า null จะให้เซลล์ว่าง
  • ตัวเลขและค่าบูลีนจะเขียนเป็นข้อความธรรมดา เช่น 42 และ true
  • อาร์เรย์ของค่าธรรมดาจะเขียนเป็นสมาชิกที่คั่นด้วยจุลภาค ส่วนออบเจ็กต์ซ้อนและอาร์เรย์ที่มีออบเจ็กต์อยู่ภายในจะเขียนเป็น JSON แบบกะทัดรัดภายในเซลล์ จึงไม่มีข้อมูลสูญหาย หากต้องการแยกเป็นคอลัมน์ ให้แผ่ให้แบนก่อน (เช่น เป็น address_city)
  • ค่าที่มีตัวคั่น เครื่องหมายคำพูด หรือการขึ้นบรรทัดใหม่จะถูกใส่ในเครื่องหมายคำพูดคู่ โดยเครื่องหมายคำพูดด้านในจะถูกเขียนซ้ำเป็นสองตัว

คู่มือการแปลงเพิ่มเติม