- JSON5 เป็นรูปแบบที่ขยายจากไฟล์ JSON เพื่อให้มนุษย์เขียนและดูแลรักษาได้ง่ายขึ้น
- ไม่ได้ใช้สำหรับการสื่อสารระหว่างเครื่อง
- เริ่มต้นในปี 2012 และ ณ ปี 2022 มียอดดาวน์โหลดมากกว่า 65 ล้านครั้งต่อสัปดาห์ และอยู่ในกลุ่มแพ็กเกจที่ถูกอ้างอิงมากที่สุด 0.1% บน npm
- ถูกนำไปใช้ในโปรเจ็กต์หลักอย่าง Chromium, Next.js, Babel, Retool, WebStorm เป็นต้น
- รองรับโดยค่าเริ่มต้นบนแพลตฟอร์มของ Apple เช่น MacOS และ iOS
- คุณสมบัติของ JSON5
- เป็น superset ของ JSON และรวมบางไวยากรณ์ของ ECMAScript 5.1 ไว้ด้วย
- ไฟล์ JSON5 เป็นไฟล์ ES5 ที่ถูกต้องเสมอ
- ความสามารถ ECMAScript 5.1 ที่ขยายเพิ่ม
- อ็อบเจ็กต์
- คีย์ของอ็อบเจ็กต์สามารถเป็น ECMAScript 5.1 IdentifierName ได้
- อนุญาตให้มี comma ต่อท้ายได้หนึ่งตัวในอ็อบเจ็กต์
- อาร์เรย์
- อนุญาตให้มี comma ต่อท้ายได้หนึ่งตัวในอาร์เรย์
- สตริง
- สตริงสามารถครอบด้วย single quote ได้
- สามารถมีหลายบรรทัดได้โดย escape อักขระขึ้นบรรทัดใหม่
- สามารถมี character escape ได้
- ตัวเลข
- แสดงในรูปแบบเลขฐานสิบหกได้
- สามารถมีจุดทศนิยมอยู่ด้านหน้าหรือด้านท้ายได้
- สามารถรวมค่า IEEE 754 positive infinity, negative infinity และ NaN ได้
- สามารถขึ้นต้นด้วยเครื่องหมายบวกแบบชัดเจนได้
- คอมเมนต์
- อนุญาตทั้งคอมเมนต์บรรทัดเดียวและหลายบรรทัด
- ช่องว่าง
- อนุญาตอักขระช่องว่างเพิ่มเติม
- API
JSON5.parse(): พาร์สสตริง JSON5 เพื่อสร้างค่า JavaScript หรืออ็อบเจ็กต์
JSON5.stringify(): แปลงค่า JavaScript เป็นสตริง JSON5
- CLI
- มี CLI สำหรับแปลง JSON5 เป็น JSON หรือตรวจสอบไวยากรณ์ของเอกสาร JSON5
- ความเข้ากันได้กับ ECMAScript
- JSON5 ถูกออกแบบมาให้เข้ากันได้กับ ES5 อย่างสมบูรณ์ แต่ตัวอักษร U+2028 และ U+2029 ไม่ได้รับอนุญาตใน ES5
- ใน ES2019 อักขระเหล่านี้ได้รับอนุญาต ทำให้ JSON และ JSON5 เข้ากันได้กับ ES2019 อย่างสมบูรณ์
- สัญญาอนุญาต
- เผยแพร่ภายใต้สัญญาอนุญาต MIT
2 ความคิดเห็น
สิ่งที่ได้เรียนรู้จากการสร้าง JSON5: จงเพิกเฉยต่อพวกที่เกลียดชัง
ความเห็นจาก Hacker News