JSON (JavaScript Nesne Gösterimi), web uygulamaları ve API’lerde yaygın olarak kullanılan hafif bir veri alışverişi biçimidir. C#, nesneleri JSON dizelerine verimli bir şekilde dönüştürmek için çeşitli yöntemler sunarak diğer sistemlerle iletişimi basitleştirir ve insan tarafından okunabilir veri depolama sağlar. Bu makale, bu dönüştürme için üç popüler yöntemi inceleyerek güçlü ve zayıf yönlerini karşılaştırmaktadır.
İçerik Tablosu
JavaScriptSerializer
kullanarak Nesneleri JSON’a DönüştürmeJsonConvert.SerializeObject
ile Verimli JSON SeriselleştirmeJObject.FromObject
ile İnce Ayrıntılı Kontrol
JavaScriptSerializer
kullanarak Nesneleri JSON’a Dönüştürme
System.Web.Script.Serialization.JavaScriptSerializer
sınıfı, JSON serileştirmeye doğrudan bir yaklaşım sunar. Bununla birlikte, eski bir bileşendir ve daha modern kütüphanelerin özelliklerine ve performansına sahip değildir. Yeni projeler için genellikle daha yeni alternatiflerin kullanılması önerilir.
using System;
using System.Web.Script.Serialization;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Example
{
public static void Main(string[] args)
{
Person person = new Person { Name = "John Doe", Age = 30 };
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonString = serializer.Serialize(person);
Console.WriteLine(jsonString); // Çıktı: {"Name":"John Doe","Age":30}
}
}
Not: System.Web.Extensions
başvurusu gerektirir (genellikle .NET Framework Derlemeleri altında bulunur). .NET Core ve sonraki sürümler için önerilmez.
JsonConvert.SerializeObject
ile Verimli JSON Seriselleştirme
Newtonsoft.Json (genellikle Json.NET olarak anılır), C# için yaygın olarak kullanılan, yüksek performanslı bir JSON kütüphanesidir. JSON serileştirme ve serileştirme çözümü için sağlam ve özellik açısından zengin bir çözüm sağlar. Bu yöntemi kullanmak için Newtonsoft.Json
NuGet paketini yükleyin.
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Example
{
public static void Main(string[] args)
{
Person person = new Person { Name = "John Doe", Age = 30 };
string jsonString = JsonConvert.SerializeObject(person);
Console.WriteLine(jsonString); // Çıktı: {"Name":"John Doe","Age":30}
}
}
JsonConvert.SerializeObject
özlü ve verimlidir. Newtonsoft.Json, null değerlerin, biçimlendirmenin ve daha fazlasının işlenmesi için kapsamlı özelleştirme seçenekleri sunar.
JObject.FromObject
ile İnce Ayrıntılı Kontrol
Newtonsoft.Json kütüphanesinin bir parçası olan JObject
sınıfı, serileştirmeden önce JSON yapısı üzerinde ince ayrıntılı kontrol sağlar. Bu, JSON gösterimini bir dizeye dönüştürmeden önce düzenlerken özellikle yararlıdır.
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Example
{
public static void Main(string[] args)
{
Person person = new Person { Name = "John Doe", Age = 30 };
JObject jsonObject = JObject.FromObject(person);
string jsonString = jsonObject.ToString();
Console.WriteLine(jsonString); // Çıktı: {"Name":"John Doe","Age":30}
}
}
Basit nesneler için JsonConvert.SerializeObject
‘e benzer olsa da, JObject.FromObject
karmaşık senaryolar için daha fazla esneklik sunar. Son serileştirmeden önce JObject
içindeki özellikleri kolayca ekleyebilir, kaldırabilir veya değiştirebilirsiniz.
Sonuç: Modern C# geliştirme için, performansları, özellikleri ve esneklikleri nedeniyle Newtonsoft.Json’ın JsonConvert.SerializeObject
ve JObject.FromObject
yöntemleri şiddetle önerilir. Newtonsoft.Json
NuGet paketini yüklemeyi unutmayın.