Generator JSON Schema

Tempel JSON di kiri — skemanya muncul di kanan, saat Anda mengetik.

JSON Schema

Cara menggunakan

  1. Tempel contoh dokumen JSON di kiri — objek, larik, atau satu nilai. Skema dihasilkan langsung, saat Anda mengetik.
  2. Pilih versi skema (Draft 7 atau 2020-12), dan atur deteksi format string, nilai contoh, serta apakah setiap properti wajib.
  3. Salin atau unduh hasilnya sebagai schema.json. Tidak ada yang diunggah: seluruh dokumen diurai di peramban Anda.

Contoh

Contoh JSON

{
  "id": 42,
  "name": "Rina Wijaya",
  "email": "rina@example.com",
  "active": true,
  "tags": ["admin", "editor"],
  "profile": { "score": 4.5, "verified": false }
}

JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" },
    "tags": { "type": "array", "items": { "type": "string" } },
    "profile": {
      "type": "object",
      "properties": {
        "score": { "type": "number" },
        "verified": { "type": "boolean" }
      },
      "required": ["score", "verified"],
      "additionalProperties": false
    }
  },
  "required": ["id", "name", "email", "active", "tags", "profile"],
  "additionalProperties": false
}

Dihasilkan dengan aturan bawaan: Draft 7, format aktif, semua properti wajib. String surel mendapat petunjuk format; bilangan bulat tetap eksak, dan profil yang bersarang menjadi skema objeknya sendiri.

Aturan, batasan, dan masalah yang diketahui

  • Tipe disimpulkan dari contoh: object, array, string, integer, number, boolean, null. Item larik digabung — objek pada beberapa elemen menyatukan kuncinya, dan kunci yang tidak ada pada sebagian elemen tidak ditandai wajib.
  • Tipe campuran di dalam satu larik menjadi anyOf; larik kosong menghasilkan type:array tanpa items (tipe elemennya tidak diketahui dari contoh).
  • Format string (email, UUID, URI, date, date-time) ditebak dari nilainya — itu petunjuk, bukan validasi untuk setiap nilai yang mungkin. Matikan dengan sakelarnya.
  • Kunci duplikat menyimpan nilai terakhir, seperti JSON.parse. Hanya JSON ketat (RFC 8259): komentar, koma di akhir, dan kutip tunggal ditolak dengan pesan baris/kolom.
  • Skemanya adalah JSON standar, jadi kata kunci dan keluarannya tidak pernah berubah mengikuti bahasa halaman. Nilai contoh direkonstruksi secara asli, sehingga bilangan bulat ekstrem (misalnya 12345678901234567890) dapat dibulatkan hanya pada contohnya.
  • Batasan: 1.000.000 karakter dan 512 tingkat penyarangan. Melewati salah satunya memberi kesalahan, tidak pernah hasil yang dipotong. Unggahan berkas hanya membaca berkas lokal — tidak ada yang diunggah.

Yang biasanya dibutuhkan berikutnya setelah skema tersedia.