logo

Raščlanite JSON u C#

Uvod:

Raščlanjivanje JSON-a u C# uobičajen je zadatak programera koji izrađuju aplikacije koje koriste JSON podatke. JSON predstavlja JavaScript objektna notacija i lagani je format koji mijenja prikaz podataka koji je optimalan za normalne korisnike za čitanje i pisanje i jednostavan za strojeve za analizu i generiranje. U ovom ćemo članku pogledati kako raščlaniti JSON u C# pomoću ugrađenog .NET JSON raščlanjivanje knjižnica.

Raščlanjivanje JSON-a u C# može se postići na različite načine: pomoću Newtonsoft.Json biblioteka ili pomoću System.Text.Json biblioteka uveden u .NET Core 3.0 . Obje su biblioteke popularan izbor za JSON parsiranje u C# i pružaju slične funkcije.

Metoda 1: Korištenje paketa Newtonsoft.Json

Jedan od najpopularnijih paketa za raščlanjivanje JSON-a u C# je Newtonsoft.Json . To je paket treće strane koji pruža jednostavan i fleksibilan način za serijalizaciju i deserijalizaciju JSON podataka.

Koristiti Newtonsoft.Json u vašem C# projektu, morate ga prvo instalirati. Možete ga instalirati putem NuGet upravitelj paketa u Vizualni studio ili pokretanjem sljedeće naredbe u konzoli upravitelja paketa:

java korisnički unos

Kodirati:

 Install-Package Newtonsoft.Json 

Nakon instaliranja, možete ga početi koristiti u svom kodu. Evo primjera kako raščlaniti JSON pomoću Newtonsoft.Json:

C# kod:

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

U ovom primjeru definiramo JSON niz i deserijaliziramo ga pomoću JsonConvert.DeserializeObject metoda koju pruža Newtonsoft.Json . Metoda vraća dinamički objekt, koji nam omogućuje pristup JSON podacima pomoću sintakse svojstava.

negacija diskretna matematika

Metoda 2: Korištenje imenskog prostora System.Text.Json

Počevši s .NET Core 3.0 i .NET 5.0, C# također nudi ugrađenu JSON biblioteku parsinga tzv System.Text.Json . To je lagani i brzi JSON serijalizator i deserializator koji je uključen u .NETO vrijeme izvođenja.

Evo primjera kako raščlaniti JSON pomoću System.Text.Json:

C# kod:

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

U ovom primjeru koristimo JsonDocument.Parse metoda koju pruža System.Text.Json za raščlanjivanje JSON niza. Metoda vraća a JsonDocument objekt, koji predstavlja raščlanjene JSON podatke. Tada možemo pristupiti JSON podacima pomoću JsonElement klasa i njezina GetProperty metoda.

Metoda 3: Korištenje klase JavaScriptSerializer

Drugi način za raščlanjivanje JSON-a u C# je korištenje JavaScriptSerializer razreda, koji je dio System.Web.Extensions skupština. Ova je klasa uvedena godine. NET Framework 3.5 i pruža jednostavan način za deserijalizaciju JSON podataka u strogo tipiziran objekt.

Za korištenje JavaScriptSerializer klase, trebate stvoriti klasu koja predstavlja JSON objekt koji želite deserijalizirati. Klasa bi trebala imati svojstva koja odgovaraju imenima i tipovima podataka svojstava JSON objekta. Na primjer, pretpostavimo da imate donji JSON objekt:

JSON objekt:

char u int java
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Možete stvoriti klasu koja predstavlja ovaj objekt na sljedeći način:

C# kod:

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

Nakon što ste definirali klasu, možete koristiti JavaScriptSerializer klase za deserijalizaciju JSON podataka u instancu klase Osoba:

C# kod:

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

U gornjem primjeru prvo smo definirali niz koji sadrži JSON podatke. Zatim smo stvorili instancu JavaScriptSerializer klase i upotrijebio svoju metodu Deserialize za raščlanjivanje JSON podataka u instancu klase Person.

Vrijedno je napomenuti da je JavaScriptSerializer klasa ima ograničenja u usporedbi s druge dvije metode o kojima smo raspravljali. Na primjer, ne podržava neke od naprednijih značajki JSON-a, kao što je rukovanje null vrijednostima ili pretvaranje između camelCase i PascalCase konvencija imenovanja. Također nema ugrađenu podršku za deserijalizaciju JSON nizova.

Zaključak:

U ovom smo članku istražili dva načina raščlanjivanja JSON-a u C#: pomoću Newtonsoft.Json knjižnica i korištenje System.Text.Json knjižnica. Obje biblioteke pružaju moćne mogućnosti parsiranja JSON-a i naširoko ih koriste programeri koji grade C# aplikacije koje koriste JSON podatke.