Lewati ke konten

Generator skema JSON

Simpulkan skema JSON yang kompatibel dengan Draft-07 dari data sampel JSON, sepenuhnya di peramban Anda.

Opsi

Skema yang dihasilkan

Skema dihasilkan

Properti yang didefinisikan
-
Kunci tingkat atas
-

Cara kerja

Skema JSON adalah kosakata untuk mendeskripsikan dan memvalidasi struktur data JSON. Alat ini memeriksa objek atau larik sampel, menyimpulkan tipe dan format untuk setiap nilai, serta membangun skema yang kompatibel dengan Draft-07 yang dapat langsung Anda gunakan dalam pustaka validasi.

  1. Tempelkan sampel JSON yang representatif

    Sertakan setiap kolom yang Anda perkirakan, lengkap dengan nilai contoh yang realistis.

  2. Pilih properti wajib, contoh, dan properti tambahan

    Skema diperbarui saat Anda mengubah opsi apa pun.

  3. Salin atau unduh skema

    Tinjau larik wajib dan format sebelum menggunakannya dalam produksi.

Apa yang dideteksi oleh generator

Setiap nilai diberi tipe string, integer, number, boolean, array, object, atau null. Nilai string juga diperiksa terhadap format umum: email, date, date-time, uri, uuid, dan ipv4, dalam urutan tersebut. Jika cocok dengan lebih dari satu pola, format pertama yang cocok akan digunakan. Larik dengan item bertipe sama digabung menjadi satu skema items; larik dengan tipe campuran menggunakan oneOf dan menggabungkan contoh alih-alih mengulanginya.

Skema hanya sebaik sampelnya

Generator hanya dapat menyimpulkan apa yang terlihat. Jika suatu kolom terkadang bernilai null dan terkadang berupa string, tetapi sampel Anda hanya menampilkan kasus string, skema akan menetapkan tipe string dan melewatkan kasus yang dapat berisi null. Gunakan sampel yang mencakup setiap tipe nilai, kolom opsional, dan kasus khusus yang Anda perkirakan ada dalam data nyata.

Pertanyaan yang sering diajukan

Bagaimana cara membuat JSON Schema secara otomatis dari sampel data JSON?

Tempelkan objek atau array JSON yang representatif ke dalam area masukan. Alat ini memeriksa setiap kunci dan nilai, menyimpulkan tipenya (string, angka, boolean, array, objek, atau null), dan menghasilkan JSON Schema yang kompatibel dengan Draft-07 saat Anda mengetik. Anda juga dapat menambahkan judul skema serta memilih apakah ingin mewajibkan kunci objek, menyertakan nilai contoh, dan mengizinkan properti tambahan.

Apakah JSON Schema yang dihasilkan dikirim ke server?

Tidak. Pembuatan skema berjalan sepenuhnya di peramban Anda menggunakan JavaScript. Data JSON Anda dan skema yang dihasilkan tetap berada di perangkat Anda. Anda dapat menggunakan data produksi, muatan API internal, atau objek konfigurasi rahasia sebagai sumber dengan aman tanpa paparan apa pun di sisi server.

Untuk apa JSON Schema digunakan dan mengapa pengembang membutuhkannya?

JSON Schema adalah kosakata untuk mendeskripsikan dan memvalidasi struktur data JSON. Pengembang menggunakannya untuk memvalidasi isi permintaan dan respons API, menghasilkan dokumentasi, mengonfigurasi generator kode seperti quicktype atau openapi-generator, menegakkan kontrak data antarlayanan, serta mengatur validasi formulir dalam kerangka kerja yang mendukung formulir berbasis skema.

Apa keterbatasan utama dalam menginferensikan JSON Schema dari satu sampel?

Generator hanya dapat menyimpulkan hal yang terlihat dalam sampel. Jika sebuah bidang kadang null dan kadang string, tetapi sampel hanya menampilkan kasus string, skema akan menetapkan tipe string dan tidak mencakup kasus nullable. Gunakan sampel representatif yang mencakup semua tipe nilai, bidang opsional, dan kasus ekstrem yang diharapkan agar skema yang dihasilkan akurat.

Dapatkah saya menggunakan JSON Schema yang dihasilkan untuk memvalidasi data dalam kode?

Ya. Skema yang dihasilkan adalah JSON Schema Draft-07 standar, yang didukung oleh pustaka validasi populer seperti Ajv untuk JavaScript dan Node.js, jsonschema untuk Python, dan JSON.NET Schema untuk .NET. Salin keluaran skema dan integrasikan dengan pustaka validasi pilihan Anda. Tinjau dan sesuaikan larik wajib serta batasan tipe sebelum menggunakannya dalam produksi.

Haruskah saya mengizinkan properti tambahan yang tidak ada dalam sampel?

Secara bawaan, skema menetapkan additionalProperties ke false, sehingga validator menolak kolom apa pun yang tidak ada dalam sampel Anda; ini berguna untuk mendeteksi kesalahan ketik dan data tak terduga. Aktifkan "Izinkan properti ekstra yang tidak tercantum di sini" jika data nyata memang memiliki kolom opsional yang kebetulan tidak disertakan dalam sampel Anda, misalnya respons API yang fleksibel.