JSON ke Tipe TypeScript / C#

Membuat interface TypeScript atau kelas C# dari contoh JSON, dengan menyimpulkan tipe bersarang serta field opsional dan nullable.

Memuat…

Cara menggunakan

  1. Tempel contoh JSON (misalnya respons API) ke dalam kotak.
  2. Di Keluaran, pilih TypeScript interface atau C# class.
  3. Isi Nama tipe akar untuk tipe tingkat teratas (jika kosong, dipakai Root). Jika JSON berupa array, elemennya menjadi tipe bernama nama tersebut ditambah Item, misalnya RootItem.
  4. Kode diperbarui saat Anda mengetik. Setiap objek bersarang menjadi tipe tersendiri yang dinamai dari kuncinya dalam PascalCase, dan objek di dalam array mendapat nama tunggal (items menjadi Item).
  5. Tekan Salin untuk menyalin kode. Jika input bukan JSON yang valid, muncul JSON tidak valid beserta pesan parser.

Pertanyaan umum

Apakah JSON saya dikirim ke server?
Tidak. Tipe dibuat di browser Anda.
Bagaimana field opsional dan nullable ditentukan?
Objek-objek dalam array yang sama digabung menjadi satu tipe. Field yang tidak ada di sebagian objek menjadi opsional (tanda ? setelah nama di TypeScript, tipe nullable di C#), dan field yang bernilai null di bagian mana pun dari contoh mendapat | null di TypeScript dan ? di C#.
Tipe angka apa yang dipakai?
TypeScript memakai number untuk semua angka. Di C#, bilangan bulat menjadi int, bilangan bulat di luar rentang int (±2147483647) menjadi long, dan angka berpecahan menjadi double; jika satu field mencampurnya, dipakai tipe yang paling lebar. Perhatikan bahwa 1.0 di JSON dihitung sebagai bilangan bulat.
Bagaimana dengan array campuran, array kosong, dan field yang selalu null?
Di TypeScript, nilai dengan jenis berbeda menjadi union seperti string | number, sehingga array campuran menjadi (string | number)[]. C# tidak punya union sehingga memakai object. Array kosong menjadi unknown[] atau List<object>, dan field yang selalu null menjadi null atau object?.
Bagaimana nama properti C# ditentukan?
Kunci JSON diubah ke PascalCase (user_id menjadi UserId). Jika nama properti berbeda dari kuncinya, atribut [JsonPropertyName] untuk System.Text.Json menyimpan kunci aslinya; di TypeScript, kunci yang bukan identifier valid tetap diberi tanda kutip.