JSON'dan C#'a Dönüştürücü
Bir JSON örneğinden tarayıcınızda doğrudan C# sınıfları üretin.
Bu araç tamamen tarayıcınızda çalışır. Dosyalarınız hiçbir zaman bir sunucuya yüklenmez.
using System.Collections.Generic;
public class Root
{
public string Name { get; set; }
public int Age { get; set; }
public bool Active { get; set; }
public List<string> Tags { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string Street { get; set; }
public string Zip { get; set; }
}Bu dönüştürücü ne yapar?
Bir JSON değerini okuyup eşleşen C# sınıfları üretir: örnekte bulunan her nesne şekli için public auto-implemented property'lere sahip bir sınıf.
Nasıl kullanılır?
Editöre bir JSON nesnesi, dizisi veya temel değer yapıştırın. Hemen bir `Root` sınıfı ve iç içe geçmiş her nesne şekli için ek bir sınıf görünür; nesne olmayan bir kök, tek bir `Value` property'sine sahip bir `Root` sınıfına sarılır.
Örnek
Bir `name` metni ve iç içe bir `address` nesnesi içeren bir nesne, `public string Name { get; set; }` içeren bir `Root` sınıfı ve iç içe geçmiş şekil için ayrı bir `Address` sınıfı üretir.
Tip eşlemesi ve adlandırma
Metinler `string`, tam sayılar `int`, ondalıklı sayılar `double`, boolean'lar `bool` ve diziler `List<ElementType>` olur (gerekli `System.Collections.Generic` using ifadesi otomatik eklenir). Property adları, C# konvansiyonunu izleyerek JSON anahtarından PascalCase'e dönüştürülür — yani bir `first_name` anahtarı `FirstName` property'sini üretir.
İç içe nesneler ve listeler
Her iç içe nesne, geldiği anahtardan üretilmiş kendi sınıfını alır. C#'ta aynı dosyadaki sınıflar tanım sırasından bağımsız olarak birbirine referans verebildiğinden, çıktıdaki sınıf sırası önemli değildir.
Sınırlamalar
Property adları PascalCase'e dönüştürülüp artık orijinal JSON anahtar metniyle eşleşmediğinden, JSON'u System.Text.Json veya Newtonsoft.Json ile doğrudan bu sınıflara geri serileştirmek, zaten PascalCase olmayan her anahtar için elle eklenmiş bir [JsonPropertyName]/[JsonProperty] annotation'ı gerektirir. Üretilen sınıflar yalnızca sağlanan tek JSON örneğini tanımlar.
Gizlilik
Ayrıştırma ve kod üretimi tamamen tarayıcınızda yerel çalışır. Yapıştırdığınız JSON ve ürettiğiniz C# asla yüklenmez.
Sıkça Sorulan Sorular
- Bu sınıflar JSON'umu otomatik olarak geri serileştirir mi?
- Her zaman değil — property adları C# konvansiyonuna göre PascalCase yapılır, bu yüzden first_name gibi bir JSON anahtarının geri serileştirme sırasında eşleşmesi için bir [JsonPropertyName("first_name")] annotation'ı eklenmesi gerekir.
- Neden orijinal JSON anahtarı yerine PascalCase?
- Bu, çoğu C# geliştiricisinin kendi kodunda görmeyi ve kullanmayı beklediği, public property'ler için standart C# adlandırma konvansiyonunu izler.
- JSON'um bir sunucuya gönderiliyor mu?
- Hayır — ayrıştırma ve C# üretimi tamamen tarayıcınızda yerel olarak gerçekleşir.
İlgili Araçlar
JSON'dan TypeScript'e Dönüştürücü
Bir JSON örneğinden tarayıcınızda doğrudan TypeScript interface'leri üretin.
JSON'dan Python'a Dönüştürücü
Bir JSON örneğinden tarayıcınızda doğrudan Python dataclass'ları üretin.
JSON'dan Java'ya Dönüştürücü
Bir JSON örneğinden tarayıcınızda doğrudan Java POJO sınıfları üretin.