เลือกภาษา

เครื่องมือแปลง JSON เป็น TOML ที่รวดเร็วและแม่นยำ

แปลง JSON เป็น TOML สำหรับโปรเจกต์ Python (pyproject.toml), Rust (Cargo.toml) และไฟล์คอนฟิกอื่น รองรับโครงสร้างซ้อน ตารางในบรรทัด อาร์เรย์ของตาราง

Mehmet Demiray (เมห์เมต เดมิเรย์) เผยแพร่ อัปเดตล่าสุด
แชร์
เขียนจำนวนเต็มพร้อมจุดทศนิยม

แปลง JSON เป็น TOML คืออะไร

เครื่องมือแปลง JSON เป็น TOML เป็นตัวช่วยแปลงข้อมูลจากรูปแบบ JSON ไปเป็นรูปแบบ TOML ซึ่งเป็นภาษากำหนดค่าที่อ่านง่ายและนิยมใช้ในโปรเจกต์ซอฟต์แวร์หลากหลายภาษา เช่น pyproject.toml ใน Python หรือ Cargo.toml ใน Rust คุณอาจต้องใช้งานเมื่อต้องการย้ายไฟล์ตั้งค่าจากระบบที่ใช้ JSON ไปใช้ TOML หรือเมื่อต้องการสร้างไฟล์คอนฟิกสำหรับ Hugo เว็บไซต์ ข้อดีของ TOML คือมนุษย์อ่านได้ง่าย ลดความยุ่งเหยิงของวงเล็บปีกกา และรองรับคอมเมนต์ ซึ่ง JSON ไม่มี หากคุณเคยต้องทำงานกับไฟล์ JSON ขนาดใหญ่ที่อัดแน่น การแปลงเป็น TOML จะช่วยให้การแก้ไขค่าต่าง ๆ เป็นเรื่องที่สบายตายิ่งขึ้น ก่อนการแปลง คุณสามารถใช้ จัดรูปแบบ JSON เพื่อตรวจสอบความถูกต้องของ JSON ได้ และหากต้องการย้อนกลับจาก TOML ไป JSON ก็มี แปลง TOML เป็น JSON ให้คุณใช้อย่างสะดวก

ความแตกต่างระหว่าง JSON และ TOML ที่คุณต้องรู้

JSON ใช้โครงสร้างของออบเจ็กต์ (วงเล็บปีกกา) และอาร์เรย์ (วงเล็บเหลี่ยม) โดยมีคอมมาคั่นสมาชิก ส่วน TOML ใช้รูปแบบตารางที่กำหนดด้วยหัวเรื่อง [table] และคู่คีย์-ค่าที่เขียนง่าย เช่น key = "value" โดยไม่ต้องมีคอมมาและสามารถใส่คอมเมนต์ด้วยเครื่องหมาย # ได้ทันที ตัวอย่าง JSON {"name": "สมรักษ์", "age": 28} เมื่อแปลงเป็น TOML จะได้ name = "สมรักษ์"\nage = 28 ซึ่งดูสะอาดตาและไม่ต้องมีวงเล็บรกตา หาก JSON มีข้อมูลซ้อนกันหลายชั้น เช่น ออบเจ็กต์ภายในออบเจ็กต์ TOML จะแทนด้วยหัวตารางย่อย เช่น [profile] ตามด้วยคีย์ย่อย นอกจากนี้ TOML ยังรองรับประเภทข้อมูลเพิ่มเติมเช่นวันที่แบบ 2025-01-15 และอาร์เรย์ของตาราง [[items]] ซึ่งไม่มีใน JSON รูปแบบดั้งเดิม การเข้าใจความแตกต่างนี้จะช่วยให้คุณตัดสินใจได้ว่าเมื่อใดควรแปลง และเมื่อใดควรใช้ แปลง JSON เป็น YAML หาก YAML เหมาะกับงานมากกว่า

วิธีการแปลง JSON เป็น TOML แบบทีละขั้นตอน

การแปลงไฟล์ JSON เป็น TOML ด้วยเครื่องมือ แปลง JSON เป็น TOML นั้นง่าย เริ่มจากคัดลอกข้อมูล JSON ของคุณ ซึ่งอาจมาจากไฟล์ .json หรือผลลัพธ์จาก API ตรวจสอบว่า JSON มีโครงสร้างสมบูรณ์ ไม่มีคอมมาเกินหรือขาด หากมีข้อผิดพลาด คุณอาจใช้ จัดรูปแบบ JSON เพื่อจัดระเบียบและมองหาจุดผิดพลาด เมื่อแน่ใจแล้ว วาง JSON ลงในช่องป้อนข้อมูลของเครื่องมือ จากนั้นคลิกปุ่มแปลง ระบบจะวิเคราะห์ JSON และสร้างผลลัพธ์ TOML ให้ทันที ตัวอย่าง หากคุณมี JSON: {"product": {"name": "ทุเรียนหมอนทอง", "price": 150}} เครื่องมือจะคืนค่า TOML: [product]\nname = "ทุเรียนหมอนทอง"\nprice = 150 กรณีที่ JSON เป็นอาร์เรย์ของออบเจ็กต์ เช่นข้อมูลสินค้าหลายรายการ TOML จะใช้ [[products]] แทน ซึ่งเป็นการใช้ array of tables ผลลัพธ์ที่ได้สามารถเลือกดาวน์โหลดเป็นไฟล์ .toml หรือคัดลอกไปใช้งานต่อในโปรเจกต์ได้ทันที หากคุณต้องการแปลงกลับภายหลัง ก็ใช้ แปลง TOML เป็น JSON ได้เช่นกัน

กรณีการใช้งานจริงของ แปลง JSON เป็น TOML

หลายโครงการซอฟต์แวร์ได้เปลี่ยนจากการใช้ JSON มาเป็น TOML สำหรับไฟล์กำหนดค่า เพราะ TOML อ่านง่ายและลดความผิดพลาดจากเครื่องหมายวรรคตอน ในโลกของ Python เครื่องมือจัดการแพ็กเกจอย่าง Poetry ใช้ pyproject.toml เป็นไฟล์ตั้งค่าหลัก นักพัฒนาที่มีข้อมูลการตั้งค่าของโปรเจกต์เดิมในรูปแบบ JSON สามารถใช้ แปลง JSON เป็น TOML เพื่อเปลี่ยนไปใช้มาตรฐานใหม่ได้อย่างรวดเร็ว ในระบบ Hugo สำหรับสร้างเว็บไซต์คงที่ คุณอาจมี config.json เก่าที่ต้องการย้ายไป config.toml การแปลงตรงนี้ประหยัดเวลาและลดการพิมพ์ใหม่ นอกจากนี้ API บางตัวส่งข้อมูลกลับมาเป็น JSON หากคุณต้องการนำข้อมูลเหล่านั้นไปใช้ในระบบที่อ่านเฉพาะ TOML เช่นเครื่องมืออัตโนมัติสำหรับ CI/CD ก็สามารถแปลงและจัดเก็บได้ทันที อีกตัวอย่างคือการสร้างเทมเพลต TOML จากไฟล์ JSON ต้นแบบสำหรับโครงการใหม่ ๆ ซึ่งช่วยให้ทีมที่คุ้นเคยกับ JSON เริ่มต้นได้เร็ว หากคุณกำลังทำงานกับ YAML ในทำนองเดียวกัน ลองดู แปลง JSON เป็น YAML เพื่อความคล่องตัว

ข้อควรระวังในการแปลง JSON เป็น TOML

แม้ว่า แปลง JSON เป็น TOML จะทำงานได้ครอบคลุม แต่ก็มีจุดที่คุณควรระวังเพื่อให้การแปลงถูกต้องสมบูรณ์ หนึ่งในประเด็นสำคัญคือค่า null ใน JSON ซึ่ง TOML ไม่มีชนิดข้อมูล null โดยตรง เครื่องมือจะแปลง null เป็นสตริงว่าง "" หรือละเว้น ขึ้นอยู่กับการออกแบบ คุณควรตรวจสอบผลลัพธ์หากข้อมูลของคุณพึ่งพาค่า null มาก ข้อมูลวันที่และเวลาใน JSON มักเป็นสตริงในรูปแบบ ISO 8601 เช่น "2025-03-20T14:30:00" เครื่องมือของเราสามารถตรวจจับและแปลงเป็นประเภทวันที่ของ TOML ได้ เช่น 2025-03-20T14:30:00 โดยไม่ต้องมีเครื่องหมายคำพูด แต่หากรูปแบบสตริงไม่ชัดเจนอาจกลายเป็นสตริงธรรมดา จงตรวจสอบให้ดี ออบเจ็กต์ที่มีคีย์เป็นจุด เช่น "a.b": 1 ใน JSON จะต้องถูกอ้างอิงด้วยเครื่องหมายคำพูดใน TOML เป็น "a.b" = 1 มิฉะนั้นจะถือว่าเป็นการสร้างตารางซ้อนซึ่งอาจผิดจากเจตนา สำหรับโครงสร้างที่ซับซ้อนมาก ๆ เช่นอาร์เรย์หลายมิติที่ซ้อนกันลึก TOML อาจจัดการได้แต่ผลลัพธ์อาจไม่สวยงามนัก หากคุณต้องการแปลงกลับ ใช้ แปลง TOML เป็น JSON เพื่อตรวจสอบว่าข้อมูลยังคงเดิม

คำถามที่พบบ่อยเกี่ยวกับการแปลง JSON เป็น TOML

ถาม: การแปลง JSON เป็น TOML ทำอย่างไร? ตอบ: เพียงคุณวางข้อมูล JSON ที่ต้องการลงในกล่องข้อความของเครื่องมือ แปลง JSON เป็น TOML แล้วกดแปลง ระบบจะสร้างผลลัพธ์ TOML ให้คุณคัดลอกหรือดาวน์โหลดได้ทันที ถาม: การแปลงนี้เป็นการสูญเสียข้อมูลหรือไม่? ตอบ: โดยส่วนใหญ่จะเก็บข้อมูลได้ครบถ้วน ยกเว้นบางกรณีเช่นค่า null ซึ่ง TOML ไม่รองรับโดยตรง จะถูกแทนด้วยสตริงว่างหรือตัดออก ส่วนคอมเมนต์ใน JSON (ไม่เป็นทางการ) จะไม่ถูกแปลงไป เนื่องจาก JSON มาตรฐานไม่มีคอมเมนต์ ถาม: หากมีข้อมูลซ้อนกันหลายระดับจะแปลงได้ไหม? ตอบ: ได้ TOML รองรับการซ้อนผ่านหัวตาราง [parent.child] และอาร์เรย์ของตาราง [[items]] จึงสามารถแปลง JSON ที่ซับซ้อนได้ ถาม: ทำไมต้องเลือก TOML แทน JSON? ตอบ: TOML ออกแบบมาให้มนุษย์อ่านและแก้ไขได้สะดวก มีคอมเมนต์และน้ำหนักทางไวยากรณ์น้อยกว่า JSON ซึ่งเหมาะกับไฟล์ตั้งค่ามากกว่า ถ้าคุณต้องการเปรียบเทียบกับรูปแบบอื่น ดูเพิ่มที่ แปลง JSON เป็น YAML หรือถ้าคุณสนใจเริ่มจาก JSON ที่สะอาด ใช้ จัดรูปแบบ JSON เพื่อเตรียมข้อมูลให้พร้อมก่อนแปลง

คำถามที่เราตอบบ่อยที่สุด

แปลงไฟล์ JSON เป็น TOML ด้วยเครื่องมือนี้ต้องทำยังไงบ้าง

เพียงคัดลอกข้อมูล JSON หรืออัปโหลดไฟล์ .json ลงในช่องป้อนข้อมูล จากนั้นกดปุ่มแปลง ผลลัพธ์ที่เป็น TOML จะปรากฏทันทีในช่องถัดไป คุณสามารถคัดลอกหรือดาวน์โหลดไปใช้งานต่อได้ หาก JSON มีปัญหาด้านรูปแบบ เช่น จุลภาคตกหล่น ควรตรวจสอบและแก้ไขก่อนด้วย ตัวจัดรูปแบบ JSON ซึ่งช่วยให้แน่ใจว่าโครงสร้างสมบูรณ์ก่อนเริ่มแปลง

JSON กับ TOML แตกต่างกันอย่างไร โดยเฉพาะเวลาใช้ทำไฟล์ตั้งค่า

JSON ใช้ปีกกาและเครื่องหมายจุลภาค เน้นแลกเปลี่ยนข้อมูลระหว่างเครื่อง แต่เมื่อไฟล์มีโครงสร้างซับซ้อนจะอ่านยากสำหรับคน TOML ออกแบบมาให้มนุษย์อ่านและเขียนเป็นหลัก ใช้หัวตาราง [section] และคู่คีย์ = ค่า รองรับคอมเมนต์ด้วยเครื่องหมาย # ที่ JSON ไม่มี นอกจากนี้ TOML ยังระบุชนิดข้อมูลได้หลากหลายกว่า เช่น วันที่และเวลาแบบเนทีฟ เลขฐานสิบหก เลขฐานแปด และเลขฐานสอง ทำให้ไฟล์ตั้งค่าอย่าง Cargo.toml หรือ pyproject.toml ดูสะอาดและสื่อความหมายได้ตรงกว่า JSON มาก

ถ้า JSON มีออบเจกต์ซ้อนกันลึกหลายชั้น หรือมีอาร์เรย์ของออบเจกต์ เครื่องมือจะแปลงเป็น TOML อย่างไร

ออบเจกต์ JSON จะถูกแปลงเป็นตาราง TOML โดยใช้ชื่อคีย์ส่วนนอกสุดเป็นหัวตาราง [key] และคีย์ชั้นในกลายเป็นคีย์ย่อยในตารางนั้น หากซ้อนกันหลายระดับ เครื่องมือจะสร้างหัวตารางแบบจุด เช่น [parent.child] เพื่อแสดงลำดับชั้น ส่วนอาร์เรย์ของออบเจกต์จะถูกแปลงเป็นอาร์เรย์ของตาราง (array of tables) โดยใช้หัว [[array-name]] ซ้ำกันสำหรับสมาชิกแต่ละตัว วิธีนี้ทำให้โครงสร้างที่ซับซ้อนอ่านง่ายและเป็นระเบียบตามมาตรฐาน TOML

การแปลงจาก JSON เป็น TOML ด้วยเครื่องมือนี้ ข้อมูลจะหายหรือเพี้ยนไปไหม

การแปลงนี้พยายามรักษาเนื้อหาทั้งหมดไว้อย่างครบถ้วน แต่ควรทราบข้อควรระวังบางประการ ลำดับของคีย์ใน JSON ไม่มีความหมาย และ TOML ก็ไม่รับประกันลำดับของคีย์ในตาราง หากแปลงกลับด้วยเครื่องมือย้อนกลับ แปลง TOML เป็น JSON ลำดับของคีย์อาจไม่เหมือนเดิม นอกจากนี้ ตัวเลขใน JSON ไม่จำกัดขนาด แต่ TOML กำหนดให้จำนวนเต็มเป็นแบบ signed 64-bit และเลขทศนิยมเป็น IEEE 754 binary64 หากค่าเกินขอบเขตอาจเกิดค่าคลาดเคลื่อนหรือข้อผิดพลาด ควรตรวจสอบว่าค่าตัวเลขอยู่ในช่วงที่ TOML รองรับ

JSON ไม่มีชนิดข้อมูลวันที่หรือเวลา แต่ TOML มี ในเครื่องมือนี้จะจัดการกับค่าวันที่เวลาในสตริง JSON ได้หรือเปล่า

JSON ไม่มีชนิดข้อมูลวันที่หรือเวลา มีเพียงสตริง ตัวเลข บูลีน อาร์เรย์ ออบเจกต์ และ null หากสตริง JSON อยู่ในรูปแบบวันที่ตามมาตรฐาน ISO 8601 เช่น "2025-04-07T14:30:00Z" เครื่องมือจะคงค่านั้นเป็นสตริงใน TOML ไว้ตามเดิม ไม่ได้แปลงให้กลายเป็นชนิด datetime ของ TOML โดยอัตโนมัติ หากต้องการให้ TOML รู้จักเป็น datetime จริง คุณต้องแก้ไขผลลัพธ์ด้วยตนเอง โดยเปลี่ยนจากค่าที่อยู่ในเครื่องหมายคำพูด เป็นค่าวันที่เวลาแบบไม่มีเครื่องหมายคำพูด เช่น dt = 2025-04-07T14:30:00Z ตามข้อกำหนดของ TOML

อักขระพิเศษ ภาษาไทย หรือยูนิโคดในคีย์และค่าของ JSON จะแปลงไป TOML ได้โดยไม่มีปัญหาหรือไม่

TOML รองรับการเข้ารหัส UTF-8 อย่างสมบูรณ์ ค่าที่เป็นสตริงภาษาไทยหรืออีโมจิจะถูกเก็บไว้ในเครื่องหมายคำพูดคู่หรือเดี่ยวตามเดิม ส่วนคีย์ที่มีอักขระภาษาไทย ช่องว่าง หรือสัญลักษณ์พิเศษ จะต้องใช้คีย์แบบอ้างอิง (quoted key) ภายในเครื่องหมายคำพูดคู่ เช่น "ชื่อโปรเจกต์" แทนที่คีย์เปลือย (bare key) ที่ใช้ได้เฉพาะอักษรละติน ตัวเลข ขีดล่าง และขีดกลาง เครื่องมือนี้จะตรวจสอบและปรับคีย์ให้เป็นรูปแบบที่ถูกต้องโดยอัตโนมัติ เช่น ใส่เครื่องหมายคำพูดให้คีย์ที่มีอักขระนอกเหนือจากชุด bare key ทำให้ใช้งานต่อกับตัวแยกวิเคราะห์ TOML ได้ทันที

เครื่องมือนี้รับไฟล์ JSON ขนาดใหญ่หรือมีโครงสร้างซับซ้อนมากได้ไหม

โดยทั่วไปเครื่องมือรองรับข้อมูล JSON ที่มีขนาดพอสมควรประมาณ 5 เมกะไบต์ ซึ่งครอบคลุมไฟล์ตั้งค่าส่วนใหญ่ หากไฟล์มีขนาดใหญ่กว่านั้นอาจใช้เวลาประมวลผลนานขึ้นหรือพบข้อจำกัดของหน่วยความจำในเบราว์เซอร์ สำหรับกรณีโครงสร้างซับซ้อนมาก การแปลงยังทำงานได้ถูกต้องตามตรรกะที่อธิบายไว้ แต่การแสดงผลอาจต้องเลื่อนดูมาก หากคุณพบปัญหาเรื่องประสิทธิภาพ ลองแบ่ง JSON ออกเป็นส่วนย่อย ๆ ก่อนนำเข้า หรือใช้เครื่องมือ CLI ในสภาพแวดล้อมท้องถิ่นสำหรับไฟล์ขนาดใหญ่มาก

เมื่อไรควรเลือกใช้ TOML แทน JSON สำหรับโปรเจกต์ของเรา

TOML เหมาะอย่างยิ่งเมื่อคุณต้องการไฟล์ตั้งค่าที่มนุษย์อ่านและแก้ไขได้สะดวก พร้อมความสามารถในการเขียนคอมเมนต์อธิบายส่วนต่าง ๆ มีใช้อย่างแพร่หลายในระบบนิเวศของ Python (pyproject.toml), Rust (Cargo.toml), Hugo, และ Go หากโปรเจกต์ของคุณต้องการให้สมาชิกในทีมปรับแต่งการตั้งค่าโดยไม่ต้องพึ่งพา IDE มากนัก TOML เป็นตัวเลือกที่ดีกว่า JSON ซึ่งยังคงเหมาะกับการแลกเปลี่ยนข้อมูลระหว่างเอพีไอมากกว่า คุณสามารถใช้ แปลง JSON เป็น YAML หากต้องการฟอร์แมตที่อ่านง่ายอีกรูปแบบหนึ่ง และหากเปลี่ยนมาใช้ TOML แล้วต้องการส่งออกกลับเป็น JSON ในภายหลัง ก็ใช้ แปลง TOML เป็น JSON ได้ทันที