logo

Parse JSON i C#

Introduksjon:

Parsing av JSON i C# er en vanlig oppgave for utviklere som bygger applikasjoner som bruker JSON-data. JSON representerer JavaScript-objektnotasjon og er et lett datarepresentasjonsformat som er optimalt for vanlige brukere å lese og skrive og enkelt for maskiner å analysere og generere. I denne artikkelen vil vi se hvordan du analyserer JSON i C# ved å bruke den innebygde .NET JSON analysere biblioteker.

JSON-parsing i C# kan oppnås på forskjellige måter: ved å bruke Newtonsoft.Json-bibliotek eller ved å bruke System.Text.Json-bibliotek introdusert i .NET Core 3.0 . Begge bibliotekene er populære valg for JSON Parsing i C# og gir lignende funksjoner.

Metode 1: Bruke Newtonsoft.Json-pakken

En av de mest populære pakkene for Parsing JSON i C# er Newtonsoft.Json . Det er en tredjepartspakke som gir en enkel og fleksibel måte å serialisere og deserialisere JSON-data.

Å bruke Newtonsoft.Json i C#-prosjektet ditt, må du installere det først. Du kan installere den via NuGet pakkebehandler i Visuelt studio eller ved å kjøre følgende kommando i Package Manager Console:

pyspark sql

Kode:

 Install-Package Newtonsoft.Json 

Når den er installert, kan du begynne å bruke den i koden din. Her er et eksempel på hvordan du analyserer JSON ved å bruke 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 eksemplet definerer vi en JSON-streng og deserialiserer den ved å bruke JsonConvert.DeserializeObject metode levert av Newtonsoft.Json . Metoden returnerer et dynamisk objekt, som lar oss få tilgang til JSON-dataene ved hjelp av egenskapssyntaks.

myflixr

Metode 2: Bruke System.Text.Json-navneområdet

Starter med .NET Core 3.0 og .NET 5.0, C# gir også et innebygd JSON Parsing-bibliotek kalt System.Text.Json . Det er en lett og rask JSON serializer og deserializer som er inkludert i .NETT kjøretid.

Her er et eksempel på hvordan du analyserer JSON ved å bruke 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 eksemplet bruker vi JsonDocument.Parse metode levert av System.Text.Json for å analysere JSON-strengen. Metoden returnerer en JsonDocument objekt, som representerer de analyserte JSON-dataene. Vi kan da få tilgang til JSON-dataene ved å bruke JsonElement klasse og dens GetProperty metode.

offentlig vs privat java

Metode 3: Bruke JavaScriptSerializer-klassen

En annen måte å analysere JSON i C# er å bruke JavaScriptSerializer klasse, som er en del av System.Web.Extensions montering. Denne klassen ble introdusert i . NET Framework 3.5 og gir en enkel måte å deserialisere JSON-data til et sterkt skrevet objekt.

For å bruke JavaScriptSerializer klasse, må du opprette en klasse som representerer JSON-objektet du vil deserialisere. Klassen bør ha egenskaper som samsvarer med navnene og datatypene til JSON-objektets egenskaper. Anta for eksempel at du har JSON-objektet nedenfor:

JSON-objekt:

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

Du kan opprette en klasse som representerer dette objektet 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 definert klassen, kan du bruke JavaScriptSerializer klasse for å deserialisere JSON-dataene til en forekomst av 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 definerte vi først en streng som inneholder JSON-dataene. Vi opprettet deretter en forekomst av JavaScriptSerializer klasse og brukte dens Deserialize-metode for å analysere JSON-dataene til en forekomst av Person-klassen.

Det er verdt å merke seg at JavaScriptSerializer klasse har begrensninger sammenlignet med de to andre metodene vi diskuterte. For eksempel støtter den ikke noen av de mer avanserte funksjonene i JSON, som å håndtere nullverdier eller konvertere mellom camelCase og PascalCase navnekonvensjoner. Den har heller ikke innebygd støtte for deserialisering av JSON-matriser.

Konklusjon:

I denne artikkelen utforsket vi to måter å analysere JSON i C#: ved å bruke Newtonsoft.Json biblioteket og bruke System.Text.Json bibliotek. Begge bibliotekene gir kraftige JSON-parsing-funksjoner og er mye brukt av utviklere som bygger C#-applikasjoner som bruker JSON-data.