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
- Tempel contoh JSON (misalnya respons API) ke dalam kotak.
- Di Keluaran, pilih TypeScript interface atau C# class.
- 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.
- 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).
- 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.