logo

Analysera JSON i C#

Introduktion:

Att analysera JSON i C# är en vanlig uppgift för utvecklare som bygger applikationer som konsumerar JSON-data. JSON representerar JavaScript-objektnotation och är ett lätt datarepresentation som ändrar format som är optimalt för normala användare att läsa och skriva och lätt för maskiner att analysera och generera. I den här artikeln kommer vi att titta på hur man tolkar JSON i C# med den inbyggda .NET JSON tolka bibliotek.

JSON Parsing i C# kan uppnås på olika sätt: med hjälp av Newtonsoft.Json bibliotek eller använda System.Text.Json-bibliotek introducerad i .NET Core 3.0 . Båda biblioteken är populära val för JSON Parsing i C# och tillhandahåller liknande funktioner.

Metod 1: Använda Newtonsoft.Json-paketet

Ett av de mest populära paketen för Parsing JSON i C# är Newtonsoft.Json . Det är ett tredjepartspaket som ger ett enkelt och flexibelt sätt att serialisera och deserialisera JSON-data.

Att använda Newtonsoft.Json i ditt C#-projekt måste du installera det först. Du kan installera den via NuGet pakethanterare i Visuell Studio eller genom att köra följande kommando i Package Manager Console:

array i java-metoder

Koda:

 Install-Package Newtonsoft.Json 

När du har installerat den kan du börja använda den i din kod. Här är ett exempel på hur man tolkar JSON med hjälp av 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); 

I det här exemplet definierar vi en JSON-sträng och deserialiserar den med hjälp av JsonConvert.DeserializeObject metod tillhandahållen av Newtonsoft.Json . Metoden returnerar ett dynamiskt objekt som låter oss komma åt JSON-data med hjälp av egenskapssyntax.

typscript switch

Metod 2: Använda System.Text.Json-namnrymden

Börjar med .NET Core 3.0 och .NET 5.0, C# tillhandahåller också ett inbyggt JSON Parsing-bibliotek som heter System.Text.Json . Det är en lätt och snabb JSON serializer och deserializer som ingår i .NETTO körning.

Här är ett exempel på hur man tolkar JSON med hjälp av 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); 

I det här exemplet använder vi JsonDocument.Parse metod tillhandahållen av System.Text.Json för att analysera JSON-strängen. Metoden returnerar en JsonDocument objekt, som representerar Parsed JSON-data. Vi kan sedan komma åt JSON-data med hjälp av JsonElement klass och dess GetProperty metod.

Metod 3: Använda JavaScriptSerializer-klassen

Ett annat sätt att analysera JSON i C# är att använda JavaScriptSerializer klass, som är en del av System.Web.Extensions hopsättning. Denna klass introducerades i . NET Framework 3.5 och ger ett enkelt sätt att deserialisera JSON-data till ett starkt skrivet objekt.

Att använda JavaScriptSerializer klass måste du skapa en klass som representerar JSON-objektet du vill deserialisera. Klassen bör ha egenskaper som matchar namnen och datatyperna för JSON-objektets egenskaper. Anta till exempel att du har JSON-objektet nedan:

maskinskrivet datum

JSON-objekt:

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

Du kan skapa en klass som representerar detta objekt enligt följande:

C#-kod:

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

När du har definierat klassen kan du använda JavaScriptSerializer klass för att deserialisera JSON-data till en instans av klassen Person:

C#-kod:

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

I exemplet ovan definierade vi först en sträng som innehåller JSON-data. Vi skapade sedan en instans av JavaScriptSerializer klass och använde dess Deserialize-metod för att analysera JSON-data till en instans av klassen Person.

Det är värt att notera att JavaScriptSerializer klass har begränsningar jämfört med de andra två metoderna vi diskuterade. Till exempel stöder den inte några av de mer avancerade funktionerna i JSON, som att hantera nollvärden eller konvertera mellan camelCase och PascalCase namnkonventioner. Den har inte heller inbyggt stöd för deserialisering av JSON-arrayer.

Slutsats:

I den här artikeln utforskade vi två sätt att analysera JSON i C#: med hjälp av Newtonsoft.Json biblioteket och använda System.Text.Json bibliotek. Båda biblioteken tillhandahåller kraftfulla JSON-parsningsmöjligheter och används i stor utsträckning av utvecklare som bygger C#-applikationer som konsumerar JSON-data.