logo

Analizuj JSON w C#

Wstęp:

Analizowanie formatu JSON w języku C# jest częstym zadaniem programistów tworzących aplikacje korzystające z danych JSON. JSON reprezentuje Notacja obiektu JavaScript i jest lekkim formatem zmieniającym reprezentację danych, optymalnym do odczytu i zapisu dla zwykłych użytkowników oraz łatwym do analizowania i generowania przez maszyny. W tym artykule przyjrzymy się, jak analizować JSON w języku C# przy użyciu wbudowanej metody .NETJSON analizowanie bibliotek.

Analizę JSON w języku C# można osiągnąć na różne sposoby: używając metody Biblioteka Newtonsoft.Json lub za pomocą Biblioteka System.Text.Json wprowadzony w .NET Core 3.0 . Obie biblioteki są popularnymi opcjami analizy JSON w języku C# i zapewniają podobne funkcjonalności.

Metoda 1: Korzystanie z pakietu Newtonsoft.Json

Jednym z najpopularniejszych pakietów do analizowania JSON w C# jest Newtonsoft.Json . Jest to pakiet innej firmy, który zapewnia prosty i elastyczny sposób serializacji i deserializacji danych JSON.

Używać Newtonsoft.Json w projekcie C# musisz go najpierw zainstalować. Można go zainstalować poprzez NuGeta menedżer pakietów w Studio wizualne lub uruchamiając następującą komendę w konsoli Menedżera pakietów:

rokmiesiąc

Kod:

 Install-Package Newtonsoft.Json 

Po zainstalowaniu możesz zacząć używać go w swoim kodzie. Oto przykład analizowania formatu JSON przy użyciu Newtonsoft.Json:

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

W tym przykładzie definiujemy ciąg JSON i deserializujemy go za pomocą metody JsonConvert.DeserializeObject metoda dostarczona przez Newtonsoft.Json . Metoda zwraca obiekt dynamiczny, który umożliwia dostęp do danych JSON przy użyciu składni właściwości.

rzutuj ciąg jako int

Metoda 2: Korzystanie z przestrzeni nazw System.Text.Json

Zaczynając od .NET Core 3.0 I .NET 5.0, C# udostępnia także wbudowaną bibliotekę analizowania JSON o nazwie System.Text.Json . Jest to lekki i szybki serializator i deserializator JSON zawarty w pakiecie .INTERNET czas wykonania.

Oto przykład analizowania formatu JSON przy użyciu System.Text.Json:

Kod C#:

jpa vs hibernacja
 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); 

W tym przykładzie używamy JsonDocument.Parse metoda dostarczona przez System.Text.Json do analizy ciągu JSON. Metoda zwraca a Dokument Jsona obiekt, który reprezentuje przeanalizowane dane JSON. Następnie możemy uzyskać dostęp do danych JSON za pomocą Element Json klasa i jej PobierzWłaściwość metoda.

Metoda 3: Korzystanie z klasy JavaScriptSerializer

Innym sposobem analizowania JSON w języku C# jest użycie metody Serializator JavaScript klasa, która jest częścią Rozszerzenia System.Web montaż. Klasa ta została wprowadzona w . NET Framework 3.5 i zapewnia prosty sposób deserializacji danych JSON do obiektu o jednoznacznie określonym typie.

Aby skorzystać z Serializator JavaScript class, musisz utworzyć klasę reprezentującą obiekt JSON, który chcesz deserializować. Klasa powinna mieć właściwości zgodne z nazwami i typami danych właściwości obiektu JSON. Załóżmy na przykład, że masz poniższy obiekt JSON:

Obiekt JSON:

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

Możesz utworzyć klasę reprezentującą ten obiekt w następujący sposób:

Kod C#:

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

Po zdefiniowaniu klasy możesz użyć metody Serializator JavaScript class do deserializacji danych JSON do instancji klasy Person:

Kod C#:

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

W powyższym przykładzie najpierw zdefiniowaliśmy ciąg znaków zawierający dane JSON. Następnie utworzyliśmy instancję Serializator JavaScript class i użył metody Deserialize do przeanalizowania danych JSON w instancji klasy Person.

w którym roku wynaleziono komputer

Warto zaznaczyć, że Serializator JavaScript class ma ograniczenia w porównaniu z dwoma pozostałymi metodami, które omówiliśmy. Na przykład nie obsługuje niektórych bardziej zaawansowanych funkcji JSON, takich jak obsługa wartości null lub konwersja między konwencjami nazewnictwa CamelCase i PascalCase. Nie ma również wbudowanej obsługi deserializacji tablic JSON.

Wniosek:

W tym artykule omówiliśmy dwa sposoby analizowania formatu JSON w języku C#: przy użyciu metody Newtonsoft.Json bibliotekę i korzystanie z System.Text.Json biblioteka. Obie biblioteki zapewniają zaawansowane możliwości analizowania JSON i są powszechnie używane przez programistów tworzących aplikacje w języku C#, które korzystają z danych JSON.