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 Semua

Apa 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#

  1. Tempel contoh JSON ke Input JSON (atau klik Muat contoh / Buka file).
  2. Atur Nama tipe root (bawaan Root).
  3. Salin kode C# yang dihasilkan atau Unduh sebagai file.

Contoh

Masukan
{"id":1,"name":"A","tags":["x"]}
Keluaran
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.

Jelajahi kategori lainnya