DevToolPal
ไทย

แปลง JSON5 เป็น JSON

แปลง JSON5 หรือ JSONC (คอมเมนต์ จุลภาคท้าย คีย์ไม่มีเครื่องหมายคำพูด เครื่องหมายคำพูดเดี่ยว) เป็น JSON มาตรฐานแบบเข้มงวด

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

การเยื้อง

อินพุต

0 ตัวอักษร · 0 B

เอาต์พุต

0 ตัวอักษร · 0 B

เครื่องมือนี้ทำอะไร

JSON5 เป็นส่วนขยายของ JSON ที่ออกแบบมาสำหรับไฟล์ที่คนเขียนด้วยมือ รองรับคอมเมนต์ จุลภาคท้าย คีย์ของออบเจ็กต์ที่ไม่มีเครื่องหมายคำพูด สตริงในเครื่องหมายคำพูดเดี่ยว และรูปแบบการเขียนตัวเลขที่สะดวกขึ้นอีกหลายแบบ เครื่องมืออย่าง Babel บันเดิลเลอร์บางตัว และแอปพลิเคชันจำนวนมากรับ JSON5 หรือ JSONC (JSON ที่มีคอมเมนต์ ซึ่ง tsconfig.json และการตั้งค่าของ VS Code ใช้อยู่) เป็นรูปแบบไฟล์การตั้งค่า

แต่ตัวแยกวิเคราะห์ API และภาษาโปรแกรมจำนวนมากรับเฉพาะ JSON แบบเข้มงวด ตัวแปลงนี้อ่าน JSON5 หรือ JSONC แล้วสร้าง JSON มาตรฐานที่ตัวแยกวิเคราะห์ใดก็รับได้ คือคีย์ทุกตัวอยู่ในเครื่องหมายคำพูดคู่ ไม่มีคอมเมนต์ ไม่มีจุลภาคท้าย และตัวเลขเขียนเป็นเลขฐานสิบ

วิธีใช้

  1. วาง JSON5 หรือ JSONC อัปโหลดไฟล์ .json5, .jsonc หรือ .json หรือกด ตัวอย่าง
  2. เลือก การเยื้อง: 2 หรือ 4 ช่องว่าง หรือ แบบย่อ เพื่อให้อยู่ในบรรทัดเดียว
  3. เลือกวิธีจัดการ Infinity และ NaN: แปลงเป็น null แปลงเป็นสตริง หรือแสดงข้อผิดพลาด
  4. คัดลอกหรือดาวน์โหลด JSON

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

ตัวอย่าง

การตั้งค่า JSON5 นี้:

// Server settings
{
  host: 'localhost',
  port: 0x1F90,      // 8080
  ratio: .5,
  tags: ['api', 'v2',],
}

จะกลายเป็น JSON แบบเข้มงวดดังนี้:

{
  "host": "localhost",
  "port": 8080,
  "ratio": 0.5,
  "tags": [
    "api",
    "v2"
  ]
}

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

สิ่งที่ถูกแปลง

  • ลบคอมเมนต์บรรทัด // และคอมเมนต์บล็อก /* */
  • คีย์ที่ไม่มีเครื่องหมายคำพูดอย่าง port และสตริงในเครื่องหมายคำพูดเดี่ยวอย่าง 'localhost' เปลี่ยนเป็นเครื่องหมายคำพูดคู่
  • สตริงที่ต่อบรรทัดด้วยแบ็กสแลชท้ายบรรทัดถูกรวมเป็นสตริงเดียว
  • เลขฐานสิบหก (0xFF) จุดทศนิยมนำหน้าหรือต่อท้าย (.5, 5.) และเครื่องหมายบวกที่เขียนไว้ชัดเจน (+3) กลายเป็นเลขฐานสิบธรรมดา
  • ตัดจุลภาคท้ายในออบเจ็กต์และอาร์เรย์ออก
  • หากคีย์ซ้ำสองครั้ง จะใช้ค่าสุดท้ายเหมือนใน JavaScript

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

› JSON5 กับ JSONC ต่างกันอย่างไร

JSONC คือ JSON ที่เพิ่มคอมเมนต์ได้ (และใน VS Code อนุญาตจุลภาคท้ายด้วย) ส่วน JSON5 ไปไกลกว่านั้น ได้แก่ คีย์ไม่มีเครื่องหมายคำพูด สตริงในเครื่องหมายคำพูดเดี่ยว สตริงหลายบรรทัด เลขฐานสิบหก จุดทศนิยมนำหน้าหรือต่อท้าย รวมถึง Infinity และ NaN JSON5 ครอบคลุม JSONC ทั้งหมด เครื่องมือนี้จึงอ่านได้ทั้งสองแบบ

› คอมเมนต์จะถูกเก็บไว้ไหม

ไม่ JSON มาตรฐานไม่มีไวยากรณ์สำหรับคอมเมนต์ คอมเมนต์จึงถูกลบออก หากต้องการเก็บไว้ ให้ใช้ไฟล์ JSON5 เป็นต้นฉบับแล้วสร้าง JSON จากไฟล์นั้น

› Infinity และ NaN จะเป็นอย่างไร

JSON แบบเข้มงวดแทนค่าเหล่านี้ไม่ได้ โดยค่าเริ่มต้นจะกลายเป็น null เหมือน JSON.stringify ของ JavaScript คุณยังเลือกแปลงเป็นสตริง หรือให้แสดงข้อผิดพลาดพร้อมระบุพาธที่แน่นอนได้

› ข้อมูลของฉันถูกอัปโหลดหรือไม่

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