C#'tan JSON'a Dönüştürücü
C# sınıfları veya nesneleri yapıştırın. Temiz JSON geri alın.
Bu araç ne yapıyor
Bir C# sınıfını yansıtan JSON payload'ı — bir test, bir API çağrısı ya da dokümantasyon için — elle hazırlamak zorunda kaldıysanız ne kadar sıkıcı olduğunu bilirsiniz. C#'ı buraya yapıştırın, hiçbir şeyi elle yeniden yazmadan geçerli JSON alın. Tekil bir object initializer, birden çok sınıf içeren tam bir model dosyası veya derinlemesine iç içe bir şey — hepsinde aynı sonuç: her alanı korunmuş eksiksiz bir JSON dokümanı.
Bu sadece string replace değil. Dönüştürücü, C#'ın runtime'da gerçekte nasıl serialize ettiğini bilir: 49.99m gibi decimal ekleri m'yi bırakıp JSON sayısı olur, DateTime ve DateTimeOffset RFC 8259'a göre ISO-8601 string'i olarak çıkar, Guid standart hex string'e dönüşür, null değerli nullable'lar null olur ve koleksiyonlar System.Text.Json ile Newtonsoft.Json'un üreteceği şekilde çıkar — List<T> ve array'ler JSON array olarak, Dictionary<K,V> JSON nesnesi olarak.
Serialization attribute'larına da uyulur. [JsonPropertyName("x")] anahtarı yeniden adlandırır, [JsonIgnore] property'yi atlar. Birden fazla sınıfı aynı anda yapıştırırsanız, her biri JSON'da ayrı bir top-level giriş olarak çıkar; iç içe tipler açılır, base sınıftan gelen kalıtımsal property'ler de dahil edilir. Hiçbir şey sessizce yok olmaz.
Nasıl kullanılır
Üç adım. İster beş satır yapıştırın ister koca bir model dosyası — aynı şekilde çalışır.
C#'ınızı yapıştırın (veya örneği deneyin)
C# kodunuzu olduğu gibi soldaki editöre bırakın. Bir object initializer, tam bir sınıf tanımı, birden fazla sınıf veya iç içe yapılar — hepsi olur. Önce gerçekçi bir örnek görmek isterseniz Örnek Yükle'ye tıklayın.
Kodu temizlemenize gerek yok — C# sözdizimini, erişim belirleyicilerini ve attribute'ları olduğu gibi bırakın. Sadece yapıştırın.
Dönüştür'e basın
Yeşil Dönüştür butonuna tıklayın. Araç C#'ı okur, her sınıfı ve property'yi korur ve JSON'u tek seferde kurar. Çalışırken kısa bir yükleme göstergesi görürsünüz.
JSON'u kopyalayın
Sağ panel, girintili ve MDN ile uyumlu JSON'la dolar. Doğrudan API isteğinize, test fixture'ınıza, config dosyanıza veya dokümantasyonunuza kopyalayabilirsiniz.
Gerçekten ne zaman işe yarıyor
API fixture'ları hazırlamak
Elinizde bir C# request model var ve Postman ya da curl'e atacak JSON payload'a ihtiyacınız var. Sınıfı yapıştırın, JSON'u alın, devam edin.
Config dosyalarına başlamak
40 property'li bir Settings sınıfı, appsettings.json veya herhangi bir config store için düzenlemeye hazır bir JSON şablonuna dönüşür — elle yazılmış boilerplate yok.
Dokümantasyonu senkron tutmak
README, API reference veya OpenAPI spec için JSON örneklerini doğrudan gerçek modellerinizden üretin; böylece dokümanlar kodla birebir uyuşsun.
Test verisi seed'lemek
Unit testlerinizdeki object initializer'ları entegrasyon testleri, mock sunucular veya veritabanı fixture'ları için JSON seed dosyalarına çevirin.
Sık sorulan sorular
Birden fazla sınıfı aynı anda yapıştırabilir miyim?
Evet — koca bir dosya yapıştırabilirsiniz. Her top-level sınıf JSON'da kendi anahtarı olarak çıkar; iç içe tipler açılır ve base sınıftan gelen property'ler de dahil edilir. Hiçbir şey atlanmaz.
[JsonPropertyName] veya [JsonIgnore] gibi attribute'lara uyuyor mu?
Evet. [JsonPropertyName("x")] ve [JsonProperty("x")] JSON anahtarını yeniden adlandırır, [JsonIgnore] ise property'yi çıktıdan kaldırır — System.Text.Json ile aldığınız davranışın aynısı.
decimal, DateTime, Guid ve alışıldık C# tiplerini nasıl ele alıyor?
decimal'lar (49.99m) son ekini bırakır ve JSON sayısı olur. DateTime ve DateTimeOffset ISO-8601 string'i olarak çıkar. Guid standart 8-4-4-4-12 hex string'tir. TimeSpan bir duration string'ine dönüşür. null değerli nullable'lar JSON null'ı olur; aksi halde alttaki tip serialize edilir.
Peki iç içe sınıflar, list'ler ve dictionary'ler?
List<T>, array, HashSet<T> ve IEnumerable<T> hepsi JSON array olur. Dictionary<K,V> JSON nesnesi olur. İç içe object initializer'lar — örneğin bir Order içinde Address — tüm alanları korunarak iç içe JSON nesneleri olarak açılır.
Kodum saklanıyor mu?
Kodunuz dönüşüm için backend'e gönderilir ve saklanmaz — payload'ı loglamıyoruz. Online araçlarda her zaman olduğu gibi, kod gerçekten hassassa yapıştırmadan önce bir göz atın.
Ya C# içinde sıra dışı bir şey varsa — method'lar, delegate'ler, IntPtr?
Bunlar tüm dönüşümü hataya düşürmek yerine null olarak yayılır, böylece modelinizin geri kalanı yine de geçer. Kodun kendisinde sözdizimi hataları varsa, önce bariz olanları düzeltin — parser hoşgörülü ama sihirbaz değil.
İhtiyacınız olabilecek diğer araçlar
C#'tan JSON'a yapbozun bir parçası. İyi eşleşen diğer araçlar: