เครื่องมือจัดรูปแบบและตรวจสอบ JSON

วาง JSON ลงไปเพื่อจัดรูปแบบหรือย่อขนาด เลือกเยื้องด้วยแท็บ หรือเว้นวรรค 2, 4, 8 ช่องก็ได้ ถ้าอ่านข้อมูลไม่ผ่าน จะบอกบรรทัดและคอลัมน์ที่พัง ไม่ใช่แค่ตำแหน่งตัวอักษร ไฟล์ใหญ่จะประมวลผลบนเธรดเบื้องหลัง หน้าเว็บจึงยังตอบสนองระหว่างทำงาน

ขนาดข้อมูลเข้า: 0 B

ขนาดผลลัพธ์: 0 B

ข้อความ error แต่ละแบบหมายถึงอะไร

สิ่งที่เห็นสาเหตุที่พบบ่อย
Unexpected token }มีคอมมาเกินก่อนปีกกาปิด ซึ่ง JSON ไม่อนุญาต
Unexpected token 'ใช้อัญประกาศเดี่ยว สตริงใน JSON ต้องใช้อัญประกาศคู่เสมอ
Unexpected token /มีคอมเมนต์ JSON ไม่มีคอมเมนต์ นั่นคือ JSONC หรือ JSON5
Unexpected end of inputปีกกาหรือวงเล็บไม่ได้ปิด มักเกิดจากไฟล์ขาดกลางคัน
Unexpected token Nมี NaN หรือ Infinity ซึ่ง JSON แทนค่าเหล่านี้ไม่ได้
Unexpected non-whitespace after JSONมีสองเอกสารในไฟล์เดียว หรือมีอักขระหลงเหลือหลังปีกกาสุดท้าย

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

เลือกการเยื้องแบบไหน

การเยื้องที่ที่ใช้เป็นธรรมเนียม
เว้น 2 ช่องnpm เครื่องมือฝั่ง JavaScript ส่วนใหญ่ และตัวอย่าง API ทั่วไป
เว้น 4 ช่องโปรเจกต์ Python ไฟล์ตั้งค่าของ .NET และ style guide ขององค์กรจำนวนมาก
แท็บโปรเจกต์ Go และที่ที่ไฟล์ถูกอ่านในหลายระดับการซูม
ย่อขนาดอะไรก็ตามที่ต้องส่งผ่านเครือข่าย เพราะช่องว่างก็คือไบต์

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

สิ่งที่ JSON จงใจไม่มี

JSON ที่ผิดรูปแบบส่วนใหญ่เป็น JavaScript ที่ถูกต้อง ซึ่งเป็นต้นเหตุของความสับสน รูปแบบนี้จงใจเป็นสับเซตที่เข้มงวด ทุกอย่างที่ตัดออกคือการตัดความกำกวมระหว่างตัวอ่านแต่ละตัว

  • ไม่มีคอมเมนต์ เพราะไม่มีวิธีที่ตกลงกันได้ว่าจะรักษามันไว้อย่างไร การอ่านแล้วเขียนกลับจึงจะทำให้คอมเมนต์หายไปเงียบ ๆ
  • ไม่มีคอมมาเกินท้าย เพราะตัวอ่านบางตัวข้ามมันไป บางตัวนับเป็นสมาชิกว่างเพิ่มมาอีกตัว
  • ไม่มีอัญประกาศเดี่ยว และคีย์ต้องอยู่ในอัญประกาศ
  • ไม่มี NaN Infinity หรือ undefined ให้ใช้ null หรือใช้สตริงถ้าความต่างนั้นมีความหมาย

ถ้าอยากได้ความสะดวกเหล่านั้น มี JSON5 กับ JSONC ที่มีตัวอ่านของตัวเอง สิ่งที่ทำไม่ได้คือเอาไปป้อนให้ระบบที่คาดหวัง JSON มาตรฐาน

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

ข้อมูล JSON ของฉันถูกส่งขึ้นเซิร์ฟเวอร์ไหม

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

ทำไมบางครั้ง Chrome ไม่บอกว่าผิดตรงไหน

Chrome รายงานข้อผิดพลาดหลายแบบเป็น "Unexpected token … is not valid JSON" โดยไม่บอกตำแหน่ง เครื่องมือนี้หาตำแหน่งจากข้อความตัวอย่างที่ Chrome ยกมา คุณจึงยังได้บรรทัดและคอลัมน์

รองรับคอมเมนต์หรือคอมมาเกินท้ายไหม

ไม่ เพราะมาตรฐาน JSON ไม่รองรับ ทั้งสองอย่างเป็นสาเหตุที่พบบ่อยเวลาไฟล์อ่านไม่ผ่าน ส่วน JSONC และ JSON5 เป็นคนละรูปแบบและใช้ตัวอ่านคนละตัว

รองรับไฟล์ใหญ่แค่ไหน

ไฟล์ 5MB จัดรูปแบบได้โดยหน้าเว็บไม่ค้าง เพราะประมวลผลบนเธรดเบื้องหลัง เกินจากนั้นขึ้นอยู่กับหน่วยความจำของเครื่องคุณ