ToolHub
View All Posts

วิธีตรวจสอบ JSON: คู่มือฉบับสมบูรณ์และตัวอย่าง

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

ทำไมการตรวจสอบ JSON จึงสำคัญ

JSON ที่ไม่ถูกต้องเป็นหนึ่งในแหล่งที่มาของข้อผิดพลาดที่พบบ่อยที่สุดในเว็บแอปพลิเคชัน เครื่องหมายจุลภาคที่วางผิดที่ คีย์ที่ไม่มีเครื่องหมายอัญประกาศ หรือเครื่องหมายจุลภาคต่อท้ายอาจทำให้ JSON.parse() โยน SyntaxError ซึ่งทำให้ไปป์ไลน์ข้อมูลทั้งหมดล้มเหลว การตรวจสอบสามารถจับข้อผิดพลาดเหล่านี้ได้ตั้งแต่เนิ่นๆ ก่อนที่มันจะแพร่กระจายไปยังระบบและทำให้เกิดความเสียหายตามมา

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

กฎไวยากรณ์ JSON

ก่อนที่จะเจาะลึกเครื่องมือตรวจสอบ สิ่งสำคัญคือต้องเข้าใจกฎที่ทำให้ JSON ถูกต้อง JSON มีไวยากรณ์ที่เข้มงวดซึ่งกำหนดโดย RFC 8259 แม้แต่การละเมิดเพียงอักขระเดียวก็ทำให้เอกสารทั้งหมดไม่ถูกต้อง

สตริงต้องใช้เครื่องหมายอัญประกาศคู่

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

// Invalid - single quotes
{'name': 'Alice', 'age': 30}

// Valid - double quotes
{"name": "Alice", "age": 30}

คีย์ของออบเจ็กต์ต้องอยู่ในเครื่องหมายอัญประกาศ

ต่างจาก JavaScript object literal ตรงที่ JSON ต้องการให้คีย์ออบเจ็กต์ทั้งหมดอยู่ในเครื่องหมายอัญประกาศคู่ คีย์ที่ไม่มีเครื่องหมายอัญประกาศเป็นข้อผิดพลาดทางไวยากรณ์

// Invalid - unquoted keys
{name: "Alice", age: 30}

// Valid - quoted keys
{"name": "Alice", "age": 30}

ไม่อนุญาตให้มีเครื่องหมายจุลภาคต่อท้าย

JSON ไม่อนุญาตให้มีเครื่องหมายจุลภาคหลังรายการสุดท้ายในออบเจ็กต์หรืออาร์เรย์ นี่เป็นข้อผิดพลาดทั่วไปอีกประการหนึ่ง โดยเฉพาะเมื่อแก้ไข JSON ด้วยตนเอง

// Invalid - trailing comma
{
  "name": "Alice",
  "age": 30,
}

// Valid - no trailing comma
{
  "name": "Alice",
  "age": 30
}

ไม่รองรับความคิดเห็น

JSON ไม่รองรับความคิดเห็น ความคิดเห็นแบบบรรทัดเดียว // และความคิดเห็นแบบหลายบรรทัด /* */ ไม่ถูกต้องใน JSON หากคุณต้องการเอกสารประกอบ ให้ใช้ไฟล์แยกต่างหากหรือรูปแบบอย่าง JSONC

ข้อผิดพลาดในการตรวจสอบ JSON ที่พบบ่อย

การเข้าใจข้อผิดพลาดที่พบบ่อยที่สุดช่วยให้คุณค้นหาและแก้ไขได้อย่างรวดเร็ว นี่คือข้อผิดพลาดที่คุณจะพบบ่อยที่สุด:

การตรวจสอบ JSON ใน JavaScript

วิธีที่ง่ายที่สุดในการตรวจสอบ JSON ใน JavaScript คือการห่อ JSON.parse() ในบล็อก try-catch หาก JSON ไม่ถูกต้อง เมธอดจะโยน SyntaxError

function validateJSON(jsonString) {
  try {
    JSON.parse(jsonString);
    return { valid: true };
  } catch (error) {
    return {
      valid: false,
      error: error.message
    };
  }
}

const result = validateJSON('{"name": "Alice"}');
console.log(result);
// { valid: true }

const badResult = validateJSON("{'name': 'Alice'}");
console.log(badResult);
// { valid: false, error: "Unexpected token '..." }

การตรวจสอบ JSON ใน Python

Python มีโมดูล json ซึ่งรวมถึง json.loads() สำหรับการแยกวิเคราะห์สตริง JSON เช่นเดียวกับ JavaScript JSON ที่ไม่ถูกต้องจะทำให้เกิด json.JSONDecodeError พร้อมข้อมูลตำแหน่งโดยละเอียด

import json

def validate_json(json_string):
    try:
        json.loads(json_string)
        return {"valid": True}
    except json.JSONDecodeError as e:
        return {
            "valid": False,
            "error": str(e),
            "line": e.lineno,
            "column": e.colno
        }

result = validate_json('{"name": "Alice"}')
print(result)
# {'valid': True}

การตรวจสอบ JSON Schema

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

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["name", "email"],
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  }
}

ตัวตรวจสอบ JSON Schema ที่นิยมได้แก่ Ajv สำหรับ JavaScript, jsonschema สำหรับ Python และ json-schema-validator สำหรับ Java ไลบรารีเหล่านี้ตรวจสอบข้อมูล JSON เทียบกับ Schema ของคุณและสร้างข้อความข้อผิดพลาดโดยละเอียดสำหรับการละเมิดแต่ละครั้ง

เครื่องมือตรวจสอบ JSON ออนไลน์

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

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

แนวทางปฏิบัติที่ดีที่สุดในการตรวจสอบ JSON

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

ตรวจสอบ JSON ทันที

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

การตรวจสอบ JSON คืออะไร?

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

ข้อผิดพลาด JSON ที่พบบ่อยที่สุดคืออะไร?

ข้อผิดพลาด JSON ที่พบบ่อยที่สุดรวมถึง: เครื่องหมายจุลภาคต่อท้ายหลังรายการสุดท้าย การใช้เครื่องหมายอัญประกาศเดี่ยวแทนอัญประกาศคู่ คีย์ออบเจ็กต์ที่ไม่มีเครื่องหมายอัญประกาศ ความคิดเห็น (ไม่อนุญาตใน JSON) และค่า undefined หรือ NaN ข้อผิดพลาดเหล่านี้ทำให้ JSON.parse() โยน SyntaxError

จะตรวจสอบ JSON ใน JavaScript ได้อย่างไร?

ใช้ JSON.parse() ที่ห่อในบล็อก try-catch หาก JSON ไม่ถูกต้อง JSON.parse() จะโยน SyntaxError ซึ่งคุณสามารถจับและจัดการได้ สำหรับการตรวจสอบ Schema ให้ใช้ไลบรารีอย่าง Ajv ที่ดำเนินการตรวจสอบ JSON Schema

JSON Schema คืออะไร?

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

สามารถตรวจสอบ JSON ออนไลน์ได้หรือไม่?

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