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.