logo

Parse JSON i C#

Introduktion:

Parsing af JSON i C# er en almindelig opgave for udviklere, der bygger applikationer, der forbruger JSON-data. JSON repræsenterer JavaScript-objektnotation og er et letvægts datarepræsentationsskiftende format, der er optimalt for normale brugere at læse og skrive og let for maskiner at parse og generere. I denne artikel vil vi se, hvordan man parser JSON i C# ved hjælp af den indbyggede .NET JSON parsing biblioteker.

JSON-parsing i C# kan opnås på forskellige måder: ved at bruge Newtonsoft.Json bibliotek eller ved at bruge System.Text.Json-bibliotek introduceret i .NET Core 3.0 . Begge biblioteker er populære valg til JSON Parsing i C# og giver lignende funktionaliteter.

Metode 1: Brug af Newtonsoft.Json-pakken

En af de mest populære pakker til Parsing JSON i C# er Newtonsoft.Json . Det er en tredjepartspakke, der giver en enkel og fleksibel måde at serialisere og deserialisere JSON-data på.

At bruge Newtonsoft.Json i dit C#-projekt, skal du først installere det. Du kan installere det via NuGet pakkeansvarlig i Visual Studio eller ved at køre følgende kommando i Package Manager Console:

pyspark sql

Kode:

 Install-Package Newtonsoft.Json 

Når det er installeret, kan du begynde at bruge det i din kode. Her er et eksempel på, hvordan man parser JSON ved hjælp af Newtonsoft.Json:

C# kode:

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

I dette eksempel definerer vi en JSON-streng og deserialiserer den ved hjælp af JsonConvert.DeserializeObject metode leveret af Newtonsoft.Json . Metoden returnerer et dynamisk objekt, som giver os adgang til JSON-dataene ved hjælp af egenskabssyntaks.

syreegenskaber i dbms

Metode 2: Brug af System.Text.Json-navneområdet

Starter med .NET Core 3.0 og .NET 5.0, C# giver også et indbygget JSON Parsing-bibliotek kaldet System.Text.Json . Det er en let og hurtig JSON serializer og deserializer, der er inkluderet i .NET køretid.

Her er et eksempel på, hvordan man parser JSON ved hjælp af System.Text.Json:

C# kode:

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

I dette eksempel bruger vi JsonDocument.Parse metode leveret af System.Text.Json for at parse JSON-strengen. Metoden returnerer en JsonDokument objekt, som repræsenterer de parserede JSON-data. Vi kan derefter få adgang til JSON-dataene ved hjælp af JsonElement klasse og dens GetProperty metode.

java erstatte alt

Metode 3: Brug af JavaScriptSerializer-klassen

En anden måde at parse JSON i C# er ved at bruge JavaScriptSerializer klasse, som er en del af System.Web.Extensions montage. Denne klasse blev introduceret i . NET Framework 3.5 og giver en enkel måde at deserialisere JSON-data til et stærkt indtastet objekt.

For at bruge JavaScriptSerializer klasse, skal du oprette en klasse, der repræsenterer det JSON-objekt, du vil deserialisere. Klassen skal have egenskaber, der matcher navnene og datatyperne for JSON-objektets egenskaber. Antag for eksempel, at du har nedenstående JSON-objekt:

JSON-objekt:

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

Du kan oprette en klasse, der repræsenterer dette objekt som følger:

C# kode:

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

Når du har defineret klassen, kan du bruge JavaScriptSerializer klasse for at deserialisere JSON-dataene til en forekomst af Person-klassen:

java og swing

C# kode:

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

I eksemplet ovenfor definerede vi først en streng, der indeholder JSON-dataene. Vi oprettede derefter en instans af JavaScriptSerializer klasse og brugte dens Deserialize-metode til at parse JSON-dataene til en forekomst af Person-klassen.

Det er værd at bemærke, at JavaScriptSerializer klasse har begrænsninger i forhold til de to andre metoder, vi diskuterede. For eksempel understøtter den ikke nogle af de mere avancerede funktioner i JSON, såsom håndtering af null-værdier eller konvertering mellem camelCase og PascalCase navngivningskonventioner. Den har heller ikke indbygget understøttelse af deserialisering af JSON-arrays.

Konklusion:

I denne artikel undersøgte vi to måder at analysere JSON i C#: ved hjælp af Newtonsoft.Json bibliotek og ved hjælp af System.Text.Json bibliotek. Begge biblioteker leverer kraftfulde JSON-parsing-funktioner og bruges i vid udstrækning af udviklere, der bygger C#-applikationer, der forbruger JSON-data.