JSON ke Kelas C#
Buat kelas C# dari JSON dengan properti PascalCase, atribut [JsonPropertyName], nullable reference type, dan koleksi List<T>. Gratis dan privat.
Memakai atribut System.Text.Json dan nullable reference type (string?, long?).
Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Alat Terkait
Lihat SemuaApa itu JSON ke C#?
Ubah contoh JSON menjadi kelas C# untuk System.Text.Json. Setiap properti berupa PascalCase, membawa atribut [JsonPropertyName("…")] berisi key asli, dan memakai tipe nullable di tempat contoh berisi null atau nilai yang hilang.
Cara menggunakan JSON ke C#
- Tempel contoh JSON ke Input JSON (atau klik Muat contoh / Buka file).
- Atur Nama tipe root (bawaan
Root). - Salin kode C# yang dihasilkan atau Unduh sebagai file.
Contoh
{"id":1,"name":"A","tags":["x"]} using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Root
{
[JsonPropertyName("id")]
public long Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("tags")]
public List<string> Tags { get; set; } = new();
} Kapan menggunakan JSON ke C#
Gunakan untuk klien HTTP .NET, model ASP.NET, atau data uji. Untuk Newtonsoft.Json, ganti atributnya dengan [JsonProperty]; untuk nilai uang, pertimbangkan mengubah double menjadi decimal.
Cara kerja JSON ke C#
Contoh JSON ditelusuri secara rekursif dan setiap posisi mengumpulkan tipe yang pernah dilihatnya. Array berisi objek digabung menjadi satu tipe: key yang tidak ada di sebagian elemen menjadi opsional, key yang bernilai null di suatu tempat menjadi nullable, bilangan bulat yang bercampur dengan desimal menjadi tipe floating-point, dan campuran tipe lain beralih ke tipe dinamis. Objek bersarang menjadi tipe bernama sendiri (PascalCase dari key, key array disingularkan: orders → Order), dengan akhiran angka jika nama bentrok. Keluaran C# memetakan bilangan bulat ke long, desimal ke double, string ke string, boolean ke bool, array ke List<T>, objek bersarang ke kelasnya sendiri, dan nilai dinamis ke object?. Nilai nullable atau opsional mendapat ?; string non-nullable diinisialisasi ke string.Empty dan list atau objek ke new(), sehingga kode dikompilasi bersih dengan nullable reference type aktif.
Kasus Penggunaan Umum
- Mendeserialisasi respons API dengan HttpClient dan System.Text.Json
- Membuat model permintaan/respons untuk controller ASP.NET
- Memodelkan bagian konfigurasi JSON
- Menghasilkan kelas untuk trigger Azure Function
Pertanyaan Umum
Mengapa setiap properti diberi anotasi?
Atribut mempertahankan key JSON yang persis walau nama C# berbeda, sehingga serialisasi round-trip apa pun kebijakan penamaannya.
Mengapa double, bukan decimal?
JSON tidak punya tipe decimal; double sesuai dengan yang dihasilkan parser. Gunakan decimal untuk nilai mata uang.
Apakah bekerja dengan Newtonsoft.Json?
Ya, setelah mengganti [JsonPropertyName] dengan [JsonProperty] beserta direktif using-nya.