logo

Analizați JSON în C#

Introducere:

Analizarea JSON în C# este o sarcină comună pentru dezvoltatorii care creează aplicații care consumă date JSON. JSON reprezintă Notarea obiectelor JavaScript și este un format ușor de modificare a reprezentării datelor, care este optim pentru utilizatorii obișnuiți să citească și să scrie și ușor de analizat și generat de mașini. În acest articol, vom analiza cum să analizăm JSON în C# folosind sistemul încorporat .NET JSON parsarea bibliotecilor.

Analiza JSON în C# poate fi realizată în diferite moduri: folosind Biblioteca Newtonsoft.Json sau folosind Biblioteca System.Text.Json introdus în .NET Core 3.0 . Ambele biblioteci sunt alegeri populare pentru analizarea JSON în C# și oferă funcționalități similare.

Metoda 1: Utilizarea pachetului Newtonsoft.Json

Unul dintre cele mai populare pachete pentru analizarea JSON în C# este Newtonsoft.Json . Este un pachet terță parte care oferă o modalitate simplă și flexibilă de a serializa și deserializa datele JSON.

A folosi Newtonsoft.Json în proiectul dvs. C#, trebuie să îl instalați mai întâi. Îl puteți instala prin intermediul NuGet manager de pachete în Studio vizual sau rulând următoarea comandă în Consola Manager de pachete:

liste css

Cod:

 Install-Package Newtonsoft.Json 

Odată instalat, puteți începe să îl utilizați în cod. Iată un exemplu despre cum să analizați JSON folosind Newtonsoft.Json:

Cod C#:

 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); 

În acest exemplu, definim un șir JSON și îl deserializăm folosind JsonConvert.DeserializeObject metoda oferita de Newtonsoft.Json . Metoda returnează un obiect dinamic, care ne permite să accesăm datele JSON folosind sintaxa proprietății.

bandă de bază vs bandă largă

Metoda 2: Utilizarea spațiului de nume System.Text.Json

Incepand cu .NET Core 3.0 și .NET 5.0, C# oferă, de asemenea, o bibliotecă de analiză JSON încorporată numită System.Text.Json . Este un serializator și deserializator JSON ușor și rapid, care este inclus în .NET timpul de rulare.

Iată un exemplu despre cum să analizați JSON folosind System.Text.Json:

Cod C#:

katrina kaif
 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); 

În acest exemplu, folosim JsonDocument.Parse metoda oferita de System.Text.Json pentru a analiza șirul JSON. Metoda returnează a JsonDocument obiect, care reprezintă datele JSON analizate. Apoi putem accesa datele JSON folosind JsonElement clasa și ea GetProperty metodă.

Metoda 3: Utilizarea clasei JavaScriptSerializer

O altă modalitate de a analiza JSON în C# este utilizarea JavaScriptSerializer clasa, care face parte din System.Web.Extensions asamblare. Această clasă a fost introdusă în . NET Framework 3.5 și oferă o modalitate simplă de a deserializa datele JSON într-un obiect puternic tipizat.

Pentru a utiliza JavaScriptSerializer clasa, trebuie să creați o clasă care să reprezinte obiectul JSON pe care doriți să îl deserializați. Clasa ar trebui să aibă proprietăți care se potrivesc cu numele și tipurile de date ale proprietăților obiectului JSON. De exemplu, să presupunem că aveți obiectul JSON de mai jos:

Obiect JSON:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Puteți crea o clasă care reprezintă acest obiect după cum urmează:

Cod C#:

 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Odată ce ați definit clasa, puteți utiliza JavaScriptSerializer clasă pentru a deserializa datele JSON într-o instanță a clasei Person:

Cod C#:

 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

În exemplul de mai sus, am definit mai întâi un șir care conține datele JSON. Am creat apoi o instanță a JavaScriptSerializer clasa și și-a folosit metoda Deserialize pentru a analiza datele JSON într-o instanță a clasei Person.

Formatator de date simplu în java

Este de remarcat faptul că JavaScriptSerializer clasa are limitări în comparație cu celelalte două metode pe care le-am discutat. De exemplu, nu acceptă unele dintre caracteristicile mai avansate ale JSON, cum ar fi gestionarea valorilor nule sau conversia între convențiile de denumire camelCase și PascalCase. De asemenea, nu are suport încorporat pentru deserializarea matricelor JSON.

Concluzie:

În acest articol, am explorat două moduri de a analiza JSON în C#: folosind Newtonsoft.Json bibliotecă și folosind System.Text.Json bibliotecă. Ambele biblioteci oferă capabilități puternice de analiză JSON și sunt utilizate pe scară largă de dezvoltatorii care creează aplicații C# care consumă date JSON.