Giriiş:
JSON'u C#'ta ayrıştırmak, JSON verilerini tüketen uygulamalar geliştiren geliştiriciler için yaygın bir görevdir. JSON temsil eder JavaScript Nesnesi Gösterimi ve normal kullanıcıların okuması ve yazması için ideal olan ve makinelerin ayrıştırması ve oluşturması kolay, hafif bir veri temsili değişen formattır. Bu makalede, yerleşik JSON'u kullanarak C#'ta nasıl ayrıştırılacağına bakacağız. .NET JSON kitaplıkları ayrıştırma.
C#'ta JSON Ayrıştırma farklı yollarla gerçekleştirilebilir: Newtonsoft.Json kütüphanesi veya kullanarak System.Text.Json kitaplığı tanıtıldı .NET Çekirdek 3.0 . Her iki kitaplık da C#'ta JSON Ayrıştırma için popüler seçimlerdir ve benzer işlevler sağlar.
Yöntem 1: Newtonsoft.Json Paketini Kullanma
C#'ta JSON Ayrıştırma için en popüler paketlerden biri: Newtonsoft.Json . JSON verilerini serileştirmek ve seri durumdan çıkarmak için basit ve esnek bir yol sağlayan üçüncü taraf bir pakettir.
Kullanmak Newtonsoft.Json C# projenizde önce onu yüklemeniz gerekir. aracılığıyla yükleyebilirsiniz. NuGet paket yöneticisi Görsel stüdyo veya Paket Yönetici Konsolunda aşağıdaki komutu çalıştırarak:
jquery ebeveyni
Kod:
Install-Package Newtonsoft.Json
Kurulduktan sonra kodunuzda kullanmaya başlayabilirsiniz. JSON'u kullanarak nasıl ayrıştırılacağına dair bir örnek: Newtonsoft.Json:
C# Kodu:
using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city);
Bu örnekte, bir JSON dizesi tanımlıyoruz ve onu kullanarak seri durumdan çıkarıyoruz. JsonConvert.DeserializeObject tarafından sağlanan yöntem Newtonsoft.Json . Yöntem, özellik sözdizimini kullanarak JSON verilerine erişmemizi sağlayan dinamik bir nesne döndürür.
Java'da do ve while döngüsü
Yöntem 2: System.Text.Json Ad Alanını Kullanma
Şununla başlıyor: .NET Çekirdek 3.0 Ve .NET 5.0, C# aynı zamanda yerleşik bir JSON Ayrıştırma kitaplığı da sağlar. System.Text.Json . Hafif ve hızlı bir JSON seri hale getirici ve seri durumdan çıkarıcıdır. .AÇIK Çalışma süresi.
JSON'u kullanarak nasıl ayrıştırılacağına dair bir örnek: System.Text.Json:
C# Kodu:
using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city);
Bu örnekte, şunu kullanıyoruz: JsonDocument.Parse tarafından sağlanan yöntem System.Text.Json JSON dizesini ayrıştırmak için. Yöntem bir döndürür JsonBelgesi Ayrıştırılmış JSON verilerini temsil eden nesne. Daha sonra JSON verilerine aşağıdakileri kullanarak erişebiliriz: JsonElement sınıf ve onun GetProperty yöntem.
linux değişiklik dosyası
Yöntem 3: JavaScriptSerializer Sınıfını Kullanma
JSON'u C#'ta ayrıştırmanın başka bir yolu da JavaScriptSerializer bir parçası olan sınıfın System.Web.Extensions toplantı. Bu sınıf . NET Çerçevesi 3.5 ve JSON verilerinin serisini kesin olarak yazılan bir nesneye dönüştürmek için basit bir yol sağlar.
Kullanmak için JavaScriptSerializer class, serisini kaldırmak istediğiniz JSON nesnesini temsil eden bir sınıf oluşturmanız gerekir. Sınıfın, JSON nesnesinin özelliklerinin adları ve veri türleriyle eşleşen özelliklere sahip olması gerekir. Örneğin, aşağıdaki JSON nesnesine sahip olduğunuzu varsayalım:
JSON Nesnesi:
{ 'name': 'John Doe', 'age': 30, 'email': '[email protected]' }
Bu nesneyi temsil eden bir sınıfı aşağıdaki gibi oluşturabilirsiniz:
C# Kodu:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }
Sınıfı tanımladıktan sonra kullanabilirsiniz. JavaScriptSerializer JSON verilerinin seri durumdan çıkarılıp Person sınıfının bir örneğine dönüştürülmesi için sınıf:
birleştirme sıralaması
C# Kodu:
string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json);
Yukarıdaki örnekte öncelikle JSON verilerini içeren bir string tanımladık. Daha sonra bunun bir örneğini oluşturduk. JavaScriptSerializer JSON verilerini Person sınıfının bir örneğine ayrıştırmak için Deserialize yöntemini kullandı.
Şunu belirtmek gerekir ki JavaScriptSerializer class'ın tartıştığımız diğer iki yöntemle karşılaştırıldığında sınırlamaları vardır. Örneğin, boş değerlerin işlenmesi veya camelCase ile PascalCase adlandırma kuralları arasında dönüştürme gibi JSON'un daha gelişmiş özelliklerinden bazılarını desteklemez. Ayrıca JSON dizilerinin seri durumdan çıkarılmasına yönelik yerleşik desteğe de sahip değildir.
Çözüm:
Bu makalede, C#'ta JSON'u Ayrıştırmanın iki yolunu araştırdık: Newtonsoft.Json kütüphane ve kullanımı System.Text.Json kütüphane. Her iki kitaplık da güçlü JSON ayrıştırma yetenekleri sağlar ve JSON verilerini tüketen C# uygulamaları geliştiren geliştiriciler tarafından yaygın olarak kullanılır.