tigtools

ตัวแปลง JSON เป็น TOML

วาง JSON object แล้วรับ TOML พร้อมตารางและอาร์เรย์ของตาราง ค่าที่ TOML ไม่รองรับจะถูกแจ้งเตือนแทนที่จะถูกเปลี่ยนโดยไม่บอก

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

แปลง TOML เป็น JSON แทน

วิธีใช้งาน

  1. วาง JSON object หรือลองใช้ตัวอย่าง
  2. เปิด “ไม่รวมค่า null” หาก JSON ของคุณมีค่า null ที่ไม่ต้องการ
  3. คัดลอก TOML หรือดาวน์โหลดเป็นไฟล์ .toml

วิธีการทำงาน

JSON จะถูกแยกวิเคราะห์อย่างเคร่งครัด แล้วเขียนเป็น TOML 1.0 ด้วยไลบรารีโอเพนซอร์ส smol-toml อ็อบเจกต์ซ้อนกันจะกลายเป็น [tables] อาร์เรย์ของอ็อบเจกต์จะกลายเป็น [[arrays of tables]] และคีย์ที่ไม่ใช่คำธรรมดาจะถูกใส่เครื่องหมายคำพูด

TOML ไม่สามารถแสดงทุกอย่างที่ JSON แสดงได้ รากของเอกสารต้องเป็นตาราง ดังนั้นอาร์เรย์ JSON หรือค่าเดี่ยวจะถูกปฏิเสธ ไม่มีค่า null ใน TOML: โดยค่าเริ่มต้น null ตัวแรกจะถูกรายงานพร้อมตำแหน่งพาธของมัน คุณสามารถเลือกให้ละสมาชิกอ็อบเจกต์ที่เป็น null แทนได้ null ภายในอาร์เรย์ถือเป็นข้อผิดพลาดเสมอ เพราะการลบออกจะเปลี่ยนตำแหน่งขององค์ประกอบอื่น ๆ อาร์เรย์ที่ผสมประเภท (เช่น ตัวเลขและสตริง) ใช้ได้ใน TOML 1.0 แต่ใช้ไม่ได้ในเวอร์ชัน 0.5 ที่เก่ากว่า จึงถูกนับเป็นหมายเหตุ

JSON ไม่แยกความแตกต่างระหว่าง 1 กับ 1.0 ดังนั้นจำนวนเต็มจะถูกเขียนเป็นจำนวนเต็ม TOML สตริงที่ดูเหมือนวันที่ยังคงเป็นสตริง ทิศทางย้อนกลับคือ TOML เป็น JSON

ตัวอย่าง

การตั้งค่าแอป

{"server": {"host": "0.0.0.0", "port": 8080}} จะกลายเป็นตาราง [server] ที่มีคีย์ host และ port

รายการเวิร์กเกอร์

"workers": [{"queue": "mail"}, {"queue": "images"}] จะกลายเป็นบล็อก [[workers]] สองบล็อก

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

ทำไมจึงไม่อนุญาตให้ใช้ null

TOML ไม่มีค่า null ให้เว้นคีย์นั้นไว้ หรือใช้ค่าเช่นสตริงว่าง ตามที่โปรแกรมอ่านคาดหวัง

ทำไมอาร์เรย์ที่ผสมตัวเลขและสตริงจึงแสดงหมายเหตุ

อาร์เรย์แบบผสมประเภทได้รับอนุญาตตั้งแต่ TOML 1.0 แต่เครื่องมือที่ใช้ TOML 0.5 จะปฏิเสธ หมายเหตุนี้ช่วยในกรณีที่เครื่องมือเป้าหมายของคุณเป็นรุ่นเก่า

1.0 จะคงเป็นจำนวนทศนิยมหรือไม่

ไม่ JSON เก็บ 1.0 และ 1 เป็นตัวเลขเดียวกัน จึงกลายเป็นจำนวนเต็ม 1 ให้เขียน 1.5 หรือแก้ไข TOML หากโปรแกรมอ่านต้องการจำนวนทศนิยม

ความเป็นส่วนตัว

การแปลงทำงานในเบราว์เซอร์ของคุณทั้งหมด JSON และ TOML ของคุณจะไม่ถูกอัปโหลดหรือจัดเก็บ