แปลง CSV เป็น JSON

สร้าง JSON จากไฟล์ CSV หรือข้อความที่วางลงไป ได้อาร์เรย์ที่มีหนึ่งออบเจกต์ต่อหนึ่งแถว ใช้หัวคอลัมน์เป็นคีย์ หรือได้อาร์เรย์ของอาร์เรย์ถ้าไฟล์ไม่มีหัวคอลัมน์ ทุกค่ายังเป็นข้อความ เว้นแต่คุณสั่งให้อ่านเป็นตัวเลข และถึงอย่างนั้นก็เปลี่ยนเฉพาะค่าที่อ่านกลับมาแล้วได้เหมือนเดิมทุกตัวอักษร 0812345678 จึงยังมีศูนย์นำหน้า 007 ยังเป็น 007 และ 12.50 ไม่ถูกตัดเหลือ 12.5 ไฟล์ภาษาไทยจาก Excel อ่านถูกไม่ว่า Excel จะเข้ารหัสแบบไหน และไม่มีอะไรออกจากเบราว์เซอร์ของคุณ

1 · ไฟล์ CSV

2 · ตัวเลือก

ปิดตัวเลือกนี้ถ้าแถวแรกเป็นข้อมูล

เฉพาะค่าที่อ่านกลับมาแล้วได้เหมือนเดิม: 42 และ -3.5 ได้ แต่ 007, 0812345678, 1,234 และ 12.50 ไม่เปลี่ยน

3 · ผลลัพธ์

ลากไฟล์ CSV มาวาง หรือวางข้อความเพื่อเริ่ม

ตัวอย่าง

CSV นี้:

ชื่อ,เบอร์โทร,จังหวัด
สมชาย ใจดี,0812345678,"เชียงใหม่, ช้างคลาน"
มะลิ รักไทย,0898765432,ภูเก็ต

ได้ผลลัพธ์เป็น:

[
  {
    "ชื่อ": "สมชาย ใจดี",
    "เบอร์โทร": "0812345678",
    "จังหวัด": "เชียงใหม่, ช้างคลาน"
  },
  {
    "ชื่อ": "มะลิ รักไทย",
    "เบอร์โทร": "0898765432",
    "จังหวัด": "ภูเก็ต"
  }
]

ตัวเลือกอ่านตัวเลขทำอะไรกับค่าแต่ละแบบ

ใน CSVปิดตัวเลือกเปิดตัวเลือก
300"300"300 (ตัวเลข)
-45.5"-45.5"-45.5 (ตัวเลข)
0812345678"0812345678""0812345678" (ยังเป็นข้อความ)
007"007""007" (ยังเป็นข้อความ)
12.50"12.50""12.50" (ยังเป็นข้อความ)
1,250.00"1,250.00""1,250.00" (ยังเป็นข้อความ)
1234567890123456"1234567890123456""1234567890123456" (ยังเป็นข้อความ)

ค่าจะกลายเป็นตัวเลขก็ต่อเมื่อ JSON ให้ค่าเดิมกลับมาครบทุกตัวอักษร เลขศูนย์นำหน้า ศูนย์ท้ายทศนิยม เครื่องหมายคั่นหลักพัน หรือจำนวนหลักที่เกินกว่าตัวเลขใน JSON จะเก็บได้ ทำให้ค่านั้นยังเป็นข้อความ

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

JSON ที่ได้หน้าตาเป็นยังไง

เป็นอาร์เรย์ที่มีหนึ่งออบเจกต์ต่อหนึ่งแถว ในแต่ละออบเจกต์ใช้หัวคอลัมน์เป็นคีย์ เช่น [{"ชื่อ": "สมชาย", "เบอร์โทร": "0812345678"}, …] ถ้าแถวแรกเป็นข้อมูล ไม่ใช่ชื่อคอลัมน์ ให้ติ๊กตัวเลือกนั้นออก จะได้อาร์เรย์ของอาร์เรย์แทน แถวละหนึ่งอาร์เรย์ ทุกค่าอยู่ตำแหน่งเดิมโดยไม่ต้องตั้งชื่อคอลัมน์ขึ้นมาเอง

ทำไมตัวเลขของฉันมีเครื่องหมายคำพูดครอบ

เพราะไฟล์ CSV ไม่ได้บอกว่าค่าไหนเป็นตัวเลข และการเดาคือทางที่ข้อมูลเสียหาย เบอร์โทร 0812345678 ถ้าอ่านเป็นตัวเลขจะเหลือ 812345678 รหัสสินค้า 007 เหลือ 7 และ 12.50 เหลือ 12.5 ทุกค่าจึงเป็นข้อความ เว้นแต่คุณติ๊กตัวเลือกไว้ และแม้ติ๊กแล้วก็เปลี่ยนเฉพาะค่าที่อ่านกลับมาแล้วได้เหมือนเดิมทุกตัวอักษร ถ้าคอลัมน์นั้นเป็นรหัส เช่น เลขบัตรประชาชน ให้ปิดตัวเลือกนี้ไว้ แม้เลขจะบังเอิญไม่มีศูนย์นำหน้าก็ตาม

ชื่อคอลัมน์ที่ซ้ำกันหรือว่างจะเป็นยังไง

ออบเจกต์ใน JSON มีคีย์ซ้ำกันไม่ได้ คอลัมน์ที่สองที่ชื่อ Phone จึงกลายเป็น Phone_2 และคอลัมน์ที่ไม่มีหัวกลายเป็น column_3 ที่เหลือคงไว้ตามที่พิมพ์ทุกตัวอักษร รวมถึงเว้นวรรคและภาษาไทย เพราะคีย์ของ JSON เป็นข้อความอะไรก็ได้ หน้านี้แสดงทุกชื่อที่เปลี่ยน

เซลล์ว่างจะเป็นอะไร

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

CSV ของฉันมีภาษาไทย จะออกมาถูกไหม

ถูก ระบบตรวจการเข้ารหัสแทนการเดา รู้จัก UTF-8, UTF-8 ที่มี BOM, Windows-874 (ที่ Excel เขียนบนเครื่องภาษาไทย) และ UTF-16 (ตัวเลือก "Unicode Text" ของ Excel) JSON ที่ได้เป็น UTF-8 เสมอ และภาษาไทยเขียนเป็นภาษาไทย ไม่ใช่รหัส \u0e0a จึงยังอ่านออก

ไฟล์ของฉันถูกอัปโหลดไหม

ไม่ เบราว์เซอร์ของคุณเป็นตัวอ่าน CSV และเขียน JSON เอง นโยบายความปลอดภัยของเว็บกำหนด connect-src ‘none’ เบราว์เซอร์จึงบล็อกการเรียกเครือข่ายจากหน้านี้ ต่อให้โค้ดอยากส่งออกไปก็ส่งไม่ได้ รายชื่อลูกค้าหรือไฟล์เงินเดือนไม่ควรถูกส่งให้เว็บไซต์ไหนแปลง

รับไฟล์ใหญ่ได้แค่ไหน

ได้ทุกขนาด ระบบอ่านไฟล์ทีละส่วนและเขียน JSON ทีละส่วน ไฟล์ที่ใหญ่กว่าหน่วยความจำของเครื่องก็ทำได้ บนหน้าจอแสดงผลลัพธ์ 200 KB แรก ไฟล์ที่ดาวน์โหลดมีครบทั้งหมด

ตรวจหรือจัดรูปแบบ JSON ที่ได้ต่อได้ไหม

ได้ ตัวจัดรูปแบบ JSON ของเว็บนี้ตรวจและจัดรูปแบบให้ และบอกตำแหน่งที่ผิดให้ตรง ๆ ถ้ามี ส่วนหน้า JSON กับ XML แปลงต่อเป็น XML ได้