ข้ามไปยังเนื้อหา
ToolMug

ใช้ ↑ ↓ เพื่อเลื่อน, Enter เพื่อเปิด, Esc เพื่อปิด

เครื่องมือสร้าง JSON Schema จาก JSON

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

ทำงานในเบราว์เซอร์ของคุณ ข้อมูลที่คุณป้อนจะไม่ถูกอัปโหลด

วิธีใช้งาน

  1. วางตัวอย่าง JSON หรือคลิกปุ่มโหลดตัวอย่าง
  2. กำหนดชื่อสำหรับสคีมาหลัก
  3. คัดลอกหรือดาวน์โหลดสคีมา แล้วเพิ่มข้อกำหนด เช่น รูปแบบ แพตเทิร์น และช่วงค่า

คำอธิบายตัวเลือก

ชื่อ type หลัก
ใช้เป็นชื่อเรื่องของสคีมา

ตัวอย่าง

{"id": 1, "email": null} กลายเป็นสคีมาที่มี "id": {"type": "integer"}, "email": {"type": "null"} และทั้งสองคีย์อยู่ใน required

ตัวอย่างเพิ่มเติม

ระเบียนผู้ใช้สองรายการ ซึ่งมีเพียงรายการแรกที่มีอีเมล และ manager บางครั้งเป็น null:

[
  { "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
  { "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]

เมื่อตั้งชื่อ type หลักเป็น User สคีมาที่สร้างขึ้นคือ:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "User",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "integer" },
      "name": { "type": "string" },
      "email": { "type": "string" },
      "tags": { "type": "array", "items": { "type": "string" } },
      "manager": {
        "anyOf": [
          { "type": "null" },
          { "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
        ]
      }
    },
    "required": ["id", "name", "tags", "manager"]
  }
}

email ไม่อยู่ใน required เพราะระเบียนที่สองไม่มี และ manager รับได้ทั้ง null หรืออ็อบเจ็กต์ เพราะทั้งสองแบบปรากฏในตัวอย่าง ยิ่งข้อมูลตัวอย่างหลากหลาย สคีมายิ่งแม่นยำ ควรวางหลายระเบียนแทนที่จะวางระเบียนเดียว

การใช้งานทั่วไป

ตรวจสอบอินพุตของ API โหลดสคีมาลงในตัวตรวจสอบ เช่น Ajv (JavaScript) หรือ jsonschema (Python) และปฏิเสธคำขอที่ไม่ตรง

จัดทำเอกสาร API วางพร็อพเพอร์ตีลงในส่วน components.schemas ของ OpenAPI เป็นจุดเริ่มต้น

เติมโค้ดอัตโนมัติในตัวแก้ไข VS Code และ JetBrains IDE ใช้ JSON Schema เพื่อแนะนำคีย์และชี้ข้อผิดพลาดในไฟล์ตั้งค่า JSON

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

คีย์ใดจะถูกระบุว่าเป็นคีย์ที่จำเป็น

คีย์ที่มีอยู่ในอ็อบเจ็กต์ตัวอย่างทุกอ็อบเจ็กต์ หากอาร์เรย์มีอ็อบเจ็กต์ที่ใช้คีย์ต่างกัน คีย์ที่ขาดหายไปในบางรายการจะไม่ถูกระบุไว้ใน required

สามารถใช้กับ OpenAPI ได้หรือไม่

OpenAPI 3.1 ใช้ JSON Schema 2020-12 ดังนั้นสคีมาที่สร้างขึ้นจึงใช้ภายใต้ components/schemas ได้ สำหรับ OpenAPI 3.0 ให้แทนที่อาร์เรย์ของ type เช่น ["string", "null"] ด้วย nullable true

ตรวจจับ format เช่น email หรือ date-time ได้หรือไม่

ไม่ ระบบจะอนุมานเฉพาะชนิดข้อมูลเท่านั้น หากจำเป็น ให้เพิ่มคีย์เวิร์ดอย่าง format, pattern, minimum และคีย์เวิร์ดที่คล้ายกันด้วยตนเอง

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

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

ความเป็นส่วนตัว

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

เครื่องมือที่เกี่ยวข้อง