เครื่องมือแปลง 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
- คลิก "Upload CSV File" แล้วเลือกไฟล์
.csvจากอุปกรณ์ - เครื่องมือจะแสดงตัวอย่างเนื้อหาไฟล์ดิบ
- คลิก "Convert to JSON" เครื่องมือจะอ่านบรรทัดแรกเป็นส่วนหัวคอลัมน์ และเปลี่ยนทุกบรรทัดที่เหลือให้เป็นออบเจกต์ JSON หนึ่งรายการ
- ผลลัพธ์จะแสดงในตัวอย่างผลลัพธ์ โดยจัดรูปแบบด้วยการเยื้องบรรทัด
- คลิก "Download JSON" เพื่อบันทึกเป็นไฟล์
.jsonหรือคลิก "Copy JSON" เพื่อคัดลอกข้อความ
วิธีแปลง JSON เป็น CSV
- คลิก "Upload JSON File" แล้วเลือกไฟล์
.jsonไฟล์ต้องมีอาร์เรย์ JSON ที่ประกอบด้วยออบเจกต์ ตัวอย่างเช่น[{"Name":"Ann"},{"Name":"Bo"}] - เครื่องมือจะแสดงตัวอย่างข้อความ JSON ดิบ
- คลิก "Convert to CSV" เครื่องมือจะรวบรวมคีย์ทุกคีย์ที่ใช้ในออบเจกต์ทั้งหมด และเปลี่ยนแต่ละคีย์ให้เป็นคอลัมน์
- ผลลัพธ์จะแสดงในตัวอย่างผลลัพธ์ในรูปข้อความ CSV
- คลิก "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 ต้องเป็นแถวส่วนหัวเสมอหรือไม่ ใช่ เครื่องมือจะถือว่าแถวแรกเป็นชื่อคอลัมน์เสมอ ไฟล์ที่ไม่มีแถวส่วนหัวจะทำให้แถวข้อมูลแรกถูกอ่านผิดเป็นส่วนหัว
เอกสารอ้างอิง
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, ตุลาคม 2005 https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., บรรณาธิการ "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, ธันวาคม 2017 https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON