JSON Toolkit

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

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

25 บทความ

บทความในหมวดนี้

คำถามที่พบบ่อยเรื่องการใช้เครื่องมือ: ข้อมูล ไฟล์ และการส่งออก

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

ผู้เริ่มต้นอ่านประมาณ 10 นาทีอัปเดต 2026-10-30

คำถามที่พบบ่อยเรื่องไวยากรณ์และรูปแบบ: comment, trailing comma และความแม่นยำ

comment อนุญาตหรือไม่, ทำไม trailing comma ถึง error, key ต้องมี quote ไหม, ทำไม 9007199254740993 เปลี่ยนค่า — สิบสองข้อสรุปที่แต่ละข้อเทียบกับ RFC 8259

ผู้เริ่มต้นอ่านประมาณ 12 นาทีอัปเดต 2026-10-30

คำถามที่พบบ่อยเรื่องการค้นหาและการตรวจสอบ: JSONPath และ Schema

การ query ด้วย path ควรใช้ JSONPath หรือ Pointer, จะเลือก Patch กับ Merge Patch อย่างไร, Schema กันอะไรได้บ้าง และควรเลือก draft เวอร์ชันไหน — อธิบายครบในรอบเดียว

ระดับกลางอ่านประมาณ 12 นาทีอัปเดต 2026-10-30

คำถามที่พบบ่อยเรื่องประสิทธิภาพและความปลอดภัย: ช้า กระตุก และข้อมูลที่ไม่น่าเชื่อถือ

ทำไมไฟล์ JSON หลายสิบ MB เปิดไม่ขึ้น, การ deep clone แพงแค่ไหน, จะป้องกันการปนเปื้อน __proto__ อย่างไร และ XSS แทรกเข้ามาทางไหน — สิบข้อสรุปแบบปฐมพยาบาลที่จัดเรียงตามอาการ

ระดับกลางอ่านประมาณ 13 นาทีอัปเดต 2026-10-30

คำถามที่พบบ่อยเรื่องการทำงานเป็นทีม: contract, config และ fixture

สไตล์การตั้งชื่อ, รูปแบบเวลา, ความหมายของ null, รูปแบบของ enum, รูปแบบ config, การจัดระเบียบ fixture และ merge conflict — สิบสองการแลกเปลี่ยนที่ทีมเถียงกันจริง

ระดับกลางอ่านประมาณ 12 นาทีอัปเดต 2026-10-30

JSON มี comment ได้ไหม

RFC 8259 ไม่มีไวยากรณ์สำหรับ comment ดังนั้น // และ block comment ทำให้ JSON.parse throw ให้เปลี่ยนไปใช้ JSON5 หรือ JSONC, ฟิลด์ _comment, description ใน Schema หรือ YAML แทน

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

ทำไม trailing comma ถึงทำให้ JSON พัง

trailing comma ถูกกฎใน object literal ของ JavaScript แต่เป็นเรื่องถึงตายใน JSON นี่คือ error ที่เกิดจริง ไวยากรณ์ RFC 8259 ที่เป็นสาเหตุ และวิธีแก้สามแบบที่ได้ผลจริง

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

BOM ทำให้การ parse JSON พังไหม

BOM แบบ UTF-8 คือสามไบต์ที่มองไม่เห็น ดังนั้น JSON.parse จึงล้มเหลวที่อักขระตัวแรกและรายงานบรรทัด 1 คอลัมน์ 1 ทำให้ไฟล์ดูเหมือนว่างหรือถูกตัดทอน

ผู้เริ่มต้นอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

NaN หรือ Infinity ปรากฏใน JSON ได้ไหม

JSON มีเฉพาะ literal ของตัวเลขฐานสิบเท่านั้น JSON.stringify เปลี่ยน NaN และ Infinity เป็น null โดยไม่เตือน นี่คือเหตุผลที่ "ฟิลด์ตัวเลขบางครั้งเป็น null" ยังโผล่ใน production

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

ทำไมจำนวนเต็มขนาดใหญ่ถึงสูญเสียความแม่นยำ

จำนวนเต็มที่เกิน 2^53-1 สูญเสียความแม่นยำใน JSON.parse snowflake ID, หมายเลขคำสั่งซื้อ และ bigint ในฐานข้อมูลล้วนเจอปัญหานี้ จึงควรเก็บเป็น string ตลอดทั้งเส้นทาง

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-11-04

ทำไมภาษาจีนกลายเป็น \u4e2d\u6587

การ escape แบบ \u4e2d\u6587 เป็น Unicode ที่ถูกกฎ ไม่ใช่การเข้ารหัสล้มเหลว ตัวอักษรเพี้ยนจริงหน้าตาต่างออกไป และการแยกแยะสองกรณีนี้ตัดสินว่าคุณต้องแก้อะไรจริง ๆ

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

JSON vs JSON5 vs JSONC

superset ที่เข้มงวดเรียงตามลำดับ: JSONC เพิ่ม comment; JSON5 เพิ่มเครื่องหมายคำพูดเดี่ยว, key ที่ไม่มีเครื่องหมายคำพูด, trailing comma และเลขฐานสิบหก ถ้าเลือกผิดจะพังที่ API ไม่ใช่ที่ editor

ผู้เริ่มต้นอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

JSON หรือ YAML

JSON คั่นโครงสร้างด้วยปีกกา ส่วน YAML ใช้การย่อหน้า: เครื่องจักรได้ JSON คนที่ดูแล config ได้ YAML แต่คอมเมนต์ anchor และโครงสร้างหลายเอกสารจะหายไป

ผู้เริ่มต้นอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

JSONPath หรือ JSON Pointer

JSON Pointer คือที่อยู่ที่ไม่ซ้ำซึ่งเก็บเป็นคีย์ได้; JSONPath คือภาษา query การเลือกใช้ผิดจะทำให้การอัปเดต config พังหรือต้องสร้าง JSONPath ที่ไม่สมบูรณ์ขึ้นมาเอง

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

JSON Schema แก้ปัญหาอะไรจริง ๆ

Schema ควบคุมโครงสร้างและชนิดข้อมูล ไม่ใช่ความหมายทางธุรกิจ มันกันฟิลด์ที่หาย ชนิดผิด และ enum นอกช่วง แต่กฎอย่างยอดเงินต้องมากกว่าศูนย์ยังอยู่ที่โค้ด

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

draft-07 หรือ 2020-12

2020-12 เป็นเวอร์ชันปัจจุบันและเพิ่ม `$defs`, `prefixItems` และ `unevaluatedProperties` แต่เครื่องมือจำนวนมากยังรู้จักแค่ draft-07 เลือกตามสิ่งที่ toolchain ทั้งหมดของคุณรองรับ

ขั้นสูงอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

สร้าง TypeScript type จาก Schema

json-schema-to-typescript และ quicktype สร้าง .d.ts ได้ในคำสั่งเดียว แต่มันเป็นเพียงร่าง: optionality, union, additionalProperties และวันที่ยังต้องมีคนตรวจ

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

เร่งความเร็วการ parse JSON ขนาดใหญ่

การ optimize ผิดลำดับทำให้การเปลี่ยนไลบรารีไร้ประโยชน์ วัด network, parse และ render แยกกันก่อน แล้วจึงลดจำนวน parse ย่อ payload และ stream

ระดับกลางอ่านประมาณ 5 นาทีอัปเดต 2026-10-30

__proto__ injection คืออะไร

JSON.parse มอง __proto__ เป็นคีย์ธรรมดา; ความเสียหายเกิดใน recursive merge ที่เขียนไปยัง Object.prototype ทำให้ทุก object สืบทอดพร็อพเพอร์ตี้ของผู้โจมตี

ขั้นสูงอ่านประมาณ 5 นาทีอัปเดต 2026-10-30

XSS เกิดขึ้นผ่าน JSON ได้อย่างไร

JSON ไม่เคยทำงานเอง XSS เกิดขึ้นในจังหวะที่คุณปฏิบัติกับมันเป็น HTML — การต่อสตริงฝั่งเซิร์ฟเวอร์, innerHTML ฝั่ง frontend หรือการฝัง JSON ลงในแท็ก script โดยตรง

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

เครื่องมือ format JSON ออนไลน์อัปโหลดข้อมูลของฉันไหม

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

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

ไฟล์ JSON ใหญ่แค่ไหนที่เบราว์เซอร์รับได้

ไม่มีขีดจำกัดตายตัว; ข้อจำกัดคืองบหน่วยความจำของแท็บ ไฟล์ 20MB มักกลายเป็น 60–100MB เมื่อ parse แล้ว และ DOM ที่ไฮไลต์อาจทำให้เพิ่มเป็นสองเท่าอีกครั้ง

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

โครงสร้าง response ของ API ควรเป็นอย่างไร

object เปล่า ๆ สะอาดจนกระทั่งต้องมี metadata; envelope เต็มรูปแบบปลอดภัยแต่ยาว สำหรับโปรเจกต์ส่วนใหญ่ใช้ HTTP status บอกผลลัพธ์และ envelope ที่คงที่สำหรับ data

ระดับกลางอ่านประมาณ 4 นาทีอัปเดต 2026-10-30

รูปแบบวันที่และเวลาของ JSON ควรเป็นแบบไหน

ตัวเลข epoch และสตริง ISO ต่างมีข้อแลกเปลี่ยน แต่การผสมกันคือสิ่งที่ทำให้พังจริง ๆ ใช้ ISO 8601 พร้อม offset เก็บเป็น UTC และแสดงตามเขตเวลาของผู้ใช้

ผู้เริ่มต้นอ่านประมาณ 3 นาทีอัปเดต 2026-10-30

null หรือไม่ใส่ฟิลด์

`null` บอกว่าฟิลด์มีอยู่แต่ไม่มีค่า; การไม่ใส่ฟิลด์บอกว่าฟิลด์ไม่มีอยู่ PATCH body การ merge config และการเติมฟอร์มคือจุดที่ความต่างนี้สำคัญ

ระดับกลางอ่านประมาณ 3 นาทีอัปเดต 2026-10-30