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

เครื่องมือแปลง CSV เป็น JSON - เครื่องมือแปลงไฟล์ออนไลน์ฟรี

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

เครื่องมือแปลงไฟล์ CSV/JSON

แปลงระหว่างรูปแบบ CSV และ JSON ได้อย่างง่ายดาย อัปโหลดไฟล์ แสดงตัวอย่างข้อมูล และดาวน์โหลดผลลัพธ์ที่แปลงแล้ว

เครื่องมือแปลง CSV เป็น JSON

เครื่องมือแปลง JSON เป็น CSV

เครื่องคำนวณโหลด...
📚

เอกสารประกอบการใช้งาน

ตัวแปลง CSV เป็น JSON คืออะไร?

ตัวแปลง CSV เป็น JSON คือเครื่องมือที่เปลี่ยนข้อมูลจากรูปแบบ CSV (Comma-Separated Values) เป็นรูปแบบ JSON (JavaScript Object Notation) หรือเปลี่ยนกลับกัน เครื่องมือนี้ทำงานทั้งหมดภายในเว็บเบราว์เซอร์ และไม่เคยส่งไฟล์ที่อัปโหลดไปยังเซิร์ฟเวอร์ ดังนั้นข้อมูลจึงยังคงอยู่บนอุปกรณ์ของผู้ใช้

CSV เป็นรูปแบบข้อความธรรมดาที่ใช้จัดเก็บตาราง เช่น ตารางที่ส่งออกจาก Excel หรือ Google Sheets ส่วน JSON เป็นรูปแบบข้อความที่สร้างจากคู่คีย์-ค่า และใช้กันอย่างแพร่หลายในการส่งข้อมูลระหว่างเว็บแอปพลิเคชันกับ API เนื่องจากรูปแบบทั้งสองจัดระเบียบข้อมูลต่างกัน การแปลงระหว่างรูปแบบจึงต้องใช้ชุดกฎที่กำหนดไว้ ดังอธิบายด้านล่าง

วิธีแปลง CSV เป็น JSON

  1. คลิก "Upload CSV File" แล้วเลือกไฟล์ .csv จากอุปกรณ์
  2. เครื่องมือจะแสดงตัวอย่างเนื้อหาไฟล์ดิบ
  3. คลิก "Convert to JSON" เครื่องมือจะอ่านบรรทัดแรกเป็นส่วนหัวคอลัมน์ และเปลี่ยนทุกบรรทัดที่เหลือให้เป็นออบเจกต์ JSON หนึ่งรายการ
  4. ผลลัพธ์จะแสดงในตัวอย่างผลลัพธ์ โดยจัดรูปแบบด้วยการเยื้องบรรทัด
  5. คลิก "Download JSON" เพื่อบันทึกเป็นไฟล์ .json หรือคลิก "Copy JSON" เพื่อคัดลอกข้อความ

วิธีแปลง JSON เป็น CSV

  1. คลิก "Upload JSON File" แล้วเลือกไฟล์ .json ไฟล์ต้องมีอาร์เรย์ JSON ที่ประกอบด้วยออบเจกต์ ตัวอย่างเช่น [{"Name":"Ann"},{"Name":"Bo"}]
  2. เครื่องมือจะแสดงตัวอย่างข้อความ JSON ดิบ
  3. คลิก "Convert to CSV" เครื่องมือจะรวบรวมคีย์ทุกคีย์ที่ใช้ในออบเจกต์ทั้งหมด และเปลี่ยนแต่ละคีย์ให้เป็นคอลัมน์
  4. ผลลัพธ์จะแสดงในตัวอย่างผลลัพธ์ในรูปข้อความ CSV
  5. คลิก "Download CSV" เพื่อบันทึกเป็นไฟล์ .csv หรือคลิก "Copy CSV" เพื่อคัดลอกข้อความ

ไม่มีการจำกัดขนาดไฟล์อัปโหลดโดยเซิร์ฟเวอร์ เนื่องจากไม่มีข้อมูลใดออกจากเบราว์เซอร์ อย่างไรก็ตาม ไฟล์ขนาดใหญ่มากอาจทำให้แท็บเบราว์เซอร์ทำงานช้าลง เพราะไฟล์ทั้งหมดจะถูกเก็บไว้ในหน่วยความจำระหว่างการแปลง

กฎการแปลง CSV เป็น JSON

เครื่องมือจะอ่านแถวแรกของไฟล์เป็นชื่อคอลัมน์ แต่ละแถวถัดไปจะกลายเป็นออบเจกต์ JSON หนึ่งรายการ โดยใช้ชื่อคอลัมน์เป็นคีย์ หากแถวหนึ่งมีค่ามากกว่าจำนวนส่วนหัว จะมีการเพิ่มคีย์ที่ตั้งชื่อตามตำแหน่งสัมบูรณ์ของค่าในแถว ดังนั้นเมื่อมีส่วนหัว 3 ค่าอันดับที่สี่จะใช้คีย์ field_4 ค่าอันดับที่ห้าใช้คีย์ field_5 และต่อไปเรื่อย ๆ จึงไม่มีข้อมูลถูกทิ้ง หากแถวหนึ่งมีค่าน้อยกว่า จะเติมสตริงว่างให้กับคีย์ที่ขาดหายไป หากส่วนหัวสองรายการมีชื่อเหมือนกัน รายการที่สองจะถูกเปลี่ยนชื่อด้วยส่วนต่อท้าย ดังนั้น a, a จะกลายเป็นคีย์ a และ a_2

เครื่องมือนี้ปฏิบัติตามกฎ CSV ที่กำหนดใน RFC 4180 ซึ่งเป็นมาตรฐานทางเทคนิคของรูปแบบนี้ เครื่องหมายจุลภาคภายในฟิลด์จะถือเป็นค่าภายในฟิลด์นั้น ไม่ใช่ตัวแบ่งคอลัมน์ ก็ต่อเมื่อฟิลด์ถูกครอบด้วยเครื่องหมายอัญประกาศคู่ ตัวอย่างเช่น "Smith, John" การขึ้นบรรทัดใหม่ภายในเครื่องหมายอัญประกาศจะถูกเก็บเป็นส่วนหนึ่งของค่า ไม่ใช่ถือเป็นแถวใหม่ เครื่องหมายอัญประกาศคู่สองตัวภายในฟิลด์ที่อยู่ในเครื่องหมายอัญประกาศจะแทนเครื่องหมายอัญประกาศจริงหนึ่งตัว

ระบบรองรับเฉพาะเครื่องหมายจุลภาคเป็นตัวคั่นคอลัมน์ เครื่องมือนี้ไม่ตรวจหาและไม่รองรับอัฒภาค แท็บ หรือตัวคั่นอื่น

ระบบจะตรวจสอบและแปลงแต่ละค่าเป็นชนิดข้อมูลดังนี้

  • ค่าที่เขียนเป็นตัวเลขธรรมดา เช่น 42 หรือ -3.5 จะกลายเป็นตัวเลข JSON
  • ข้อความ true หรือ false ไม่ว่าจะใช้ตัวพิมพ์เล็กหรือใหญ่ จะกลายเป็นค่าบูลีนของ JSON
  • ค่าอื่นทั้งหมดจะยังคงเป็นสตริง JSON รวมถึงเซลล์ว่าง ซึ่งจะกลายเป็นสตริงว่าง
  • ตัวเลขที่มีเลขศูนย์นำหน้า เช่น 00512 จะยังคงเป็นสตริง เพราะเลขศูนย์นำหน้ามักมีความหมาย เช่น ในรหัสไปรษณีย์หรือหมายเลขประจำตัว
  • ระบบจะยอมรับค่าเป็นตัวเลขก็ต่อเมื่อการเขียนค่ากลับออกมาให้ข้อความเหมือนเดิมทุกประการ จำนวนเต็มยาวที่มากกว่า 9,007,199,254,740,991 ซึ่งเป็นจำนวนเต็มสูงสุดที่ตัวเลข JavaScript เก็บได้อย่างแม่นยำ โดยทั่วไปจะไม่ผ่านการตรวจสอบนี้และยังคงเป็นสตริง เพื่อไม่ให้ตัวเลขสูญหาย
  • ค่าที่ไฟล์ใส่เครื่องหมายอัญประกาศไว้แล้วจะถูกเก็บเป็นสตริงเสมอ แม้จะดูเหมือนตัวเลขก็ตาม เนื่องจากถือว่าการใส่เครื่องหมายอัญประกาศเป็นการระบุโดยผู้เขียนว่าค่านั้นเป็นข้อความ

บรรทัดว่างในไฟล์จะถูกข้ามและไม่สร้างออบเจกต์ว่าง

กฎการแปลง JSON เป็น CSV

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

การแปลง JSON เป็น CSV จะไม่คลี่ออบเจกต์ซ้อนกันออกเป็นคอลัมน์แยกต่างหาก ค่าที่เป็นออบเจกต์หรืออาร์เรย์จะถูกเขียนกลับเป็นข้อความ JSON ภายในเซลล์เดียว ดังนั้น {"b": 1} จะกลายเป็นเซลล์ {"b":1} และ [1, 2] จะกลายเป็นเซลล์ [1,2] ข้อมูลจะไม่สูญหาย แต่ส่วนที่ซ้อนกันจะยังอยู่ในคอลัมน์เดียวแทนที่จะถูกแยกออก หากแต่ละส่วนต้องอยู่ในคอลัมน์ของตนเอง ให้คลี่ JSON ที่ซ้อนกันด้วยตนเองก่อน

ค่า null และคีย์ที่ออบเจกต์หนึ่งมีแต่อีกออบเจกต์ไม่มี จะทำให้เกิดเซลล์ว่างทั้งคู่

ค่าของเซลล์ที่มีเครื่องหมายจุลภาค เครื่องหมายอัญประกาศ หรือการขึ้นบรรทัดใหม่ จะถูกครอบด้วยเครื่องหมายอัญประกาศคู่ในผลลัพธ์ และเครื่องหมายอัญประกาศภายในค่าจะถูกเขียนซ้ำสองครั้ง ตามกฎการหลีกอักขระของ CSV ที่กล่าวไว้ข้างต้น

JSON ขาเข้าต้องเป็นอาร์เรย์ และทุกรายการในอาร์เรย์ต้องเป็นออบเจกต์ หากมีตัวเลข สตริง null หรืออาร์เรย์ซ้อนกันแทนออบเจกต์ จะเกิดข้อผิดพลาด "JSON ต้องเป็นอาร์เรย์ของออบเจกต์" อาร์เรย์ที่ไม่มีรายการเลยจะเกิดข้อผิดพลาด "อาร์เรย์ JSON ว่างเปล่า โปรดเพิ่มออบเจกต์อย่างน้อยหนึ่งรายการเพื่อแปลง" ไฟล์ที่อัปโหลดและไม่มีเนื้อหาเลยจะเกิดข้อผิดพลาด "ไฟล์ที่อัปโหลดว่างเปล่า"

ตัวอย่างพร้อมวิธีทำ

ไฟล์ CSV เริ่มต้น:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

เมื่อแปลงเป็น JSON จะได้:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

โปรดสังเกตว่า "Bo, Jr." ยังคงมีเครื่องหมายจุลภาค เพราะฟิลด์นี้อยู่ในเครื่องหมายอัญประกาศในไฟล์ต้นฉบับ และ Age กับ Member ถูกแปลงเป็นตัวเลขและค่าบูลีน

เมื่อแปลง JSON เดิมกลับเป็น CSV โดยเพิ่มแถวที่ไม่มีค่า Age จะได้:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

ค่า Age ที่หายไปจะกลายเป็นเซลล์ว่าง และเครื่องหมายจุลภาคใน "Bo, Jr." ทำให้ฟิลด์นี้ถูกครอบด้วยเครื่องหมายอัญประกาศอีกครั้งขณะส่งออก

การใช้งานทั่วไป

  • การวิเคราะห์ข้อมูล: เปลี่ยนไฟล์ CSV ที่ส่งออกจากสเปรดชีตหรือเครื่องมือวิเคราะห์ให้เป็น JSON เพื่อประมวลผลด้วย JavaScript จากนั้นแปลงผลลัพธ์กลับเป็น CSV สำหรับรายงาน
  • การทดสอบ API: นักพัฒนาที่สร้าง API ซึ่งรับไฟล์ CSV สามารถแปลงไฟล์ตัวอย่างเป็น JSON เพื่อตรวจสอบว่าโปรแกรมแยกวิเคราะห์สร้างออบเจกต์ที่คาดไว้หรือไม่
  • การย้ายข้อมูล: ย้ายระเบียนจากระบบที่ส่งออกเป็น CSV ไปยังระบบที่รับเฉพาะ JSON หรือทำย้อนกลับกัน
  • การตรวจสอบอย่างรวดเร็ว: เปลี่ยนไฟล์ JSON ให้เป็น CSV ที่มีลักษณะคล้ายตารางเพื่ออ่านได้ง่ายขึ้น หรือทำย้อนกลับกัน

ไลบรารีสำหรับเขียนโปรแกรมมีการแปลงแบบเดียวกันสำหรับงานขนาดใหญ่หรืองานที่ต้องทำซ้ำ เช่น โมดูล csv และ json ใน Python หรือ pandas เครื่องมือบรรทัดคำสั่ง เช่น csvkit และ jq รองรับการแปลงและกรองข้อมูลจากเทอร์มินัล ตัวเลือกเหล่านี้เหมาะกับการประมวลผลเป็นชุด ส่วนเครื่องมือบนเบราว์เซอร์นี้เหมาะกับการแปลงไฟล์ครั้งเดียวโดยไม่ต้องติดตั้งอะไร

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

ไฟล์ที่อัปโหลดถูกส่งไปยังเซิร์ฟเวอร์หรือไม่ ไม่ การแปลงทำงานด้วย JavaScript ภายในแท็บเบราว์เซอร์ ไฟล์จะถูกอ่านจากอุปกรณ์ภายในเครื่องและไม่ถูกส่งออกไป

เครื่องมือรองรับตัวคั่นอื่นนอกจากจุลภาค เช่น อัฒภาคหรือแท็บหรือไม่ ไม่ รุ่นปัจจุบันอ่านได้เฉพาะค่าที่คั่นด้วยจุลภาคเท่านั้น ไฟล์ที่ใช้ตัวคั่นอื่นต้องแปลงเป็นรูปแบบที่คั่นด้วยจุลภาคก่อน เช่น เปลี่ยนตัวคั่นในโปรแกรมแก้ไขข้อความ

เหตุใดตัวเลขอย่าง 00512 จึงยังเป็นสตริงข้อความในผลลัพธ์ JSON เลขศูนย์นำหน้ามักมีความหมาย เช่น ในรหัสไปรษณีย์ ดังนั้นเครื่องมือจึงเก็บค่านั้นเป็นสตริง แทนที่จะแปลงเป็นตัวเลข 512 ซึ่งจะทำให้เลขศูนย์หายไป

จะเกิดอะไรขึ้นหากแปลง JSON ที่มีออบเจกต์ซ้อนกัน ออบเจกต์ซ้อนกันจะถูกเขียนเป็นข้อความ JSON ในเซลล์เดียว เช่น {"b":1} ข้อมูลยังคงอยู่ แต่จะไม่ถูกแยกเป็นคอลัมน์ต่าง ๆ หากแต่ละฟิลด์ต้องอยู่ในคอลัมน์ของตนเอง ให้คลี่ข้อมูลที่ซ้อนกันก่อน

ถ้า JSON ของฉันไม่ใช่อาร์เรย์ของออบเจกต์จะเป็นอย่างไร เครื่องมือจะแสดงข้อผิดพลาดและไม่แปลงข้อมูลใด ๆ ข้อมูลขาเข้าต้องเป็นอาร์เรย์ JSON ที่ทุกรายการเป็นออบเจกต์ ตัวอย่างเช่น [{"a":1},{"a":2}]

แถวแรกของไฟล์ CSV ต้องเป็นแถวส่วนหัวเสมอหรือไม่ ใช่ เครื่องมือจะถือว่าแถวแรกเป็นชื่อคอลัมน์เสมอ ไฟล์ที่ไม่มีแถวส่วนหัวจะทำให้แถวข้อมูลแรกถูกอ่านผิดเป็นส่วนหัว

เอกสารอ้างอิง

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, ตุลาคม 2005 https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., บรรณาธิการ "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, ธันวาคม 2017 https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON