Hur man konverterar JSON till C# Class

Hur Man Konverterar Json Till C Class



JSON eller JavaScript-objektnotation är baserat på en delmängd av JavaScript-programmeringsspråket, men det är språkoberoende och kan användas med alla programmeringsspråk som har en JSON-parser. Att använda JSON data i C#-programmering måste man konvertera JSON till a C# klass . Detta gör det möjligt för programmerare att interagera med datan på ett typsäkert sätt, vilket minskar risken för misstag och gör koden enklare att underhålla.

Arbetar med JSON data i C# kräver ofta konvertering av JSON-data in i C# klasser som lätt kan redigeras och användas i applikationen. Denna handledning kommer att gå över processen för konvertering JSON data till C#-klasser, med kodexempel som hjälper dig på vägen.







Hur man konverterar en JSON till en C#-klass

Stegen för att konvertera en JSON till a C# klass är:



Steg 1: Analysera JSON-data



Det första steget i konverteringen JSON till a C# klass är att analysera JSON-data och bestämma dess struktur. Detta innebär att identifiera nycklarna eller egenskaperna för data och deras motsvarande datatyper. När denna information har samlats in kan vi börja skapa en motsvarande C#-klass som kommer att representera JSON-data.





Steg 2: Skapa en C#-klass som representerar JSON-data

De JSON datas namn används sedan för att definiera en klass. Inuti den här klassen definierar vi egenskaper som matchar nycklarna i JSON data. Vi ställer in datatyperna för egenskaperna så att de matchar datatyperna för värdena i JSON data. Till exempel, om en nyckel i JSON data har värdet av en sträng, definierar vi motsvarande egenskap i klassen C# som en sträng.



Steg 3: Deserialisera JSON-data

Efter att ha skapat C#-klassen är nästa steg att deserialisera JSON data till en klassinstans. Detta är möjligt med Newtonsoft.Json bibliotek, som tillhandahåller ett enkelt API för deserialisering JSON data. Du måste installera och importera Newtonsoft.Json paketet för att använda det i din kod. Skapa en instans av JsonSerializer klass och ring Deserialisera metod, lämna in JSON data som en sträng och C#-klassen som generisk typparameter:

använder Newtonsoft.Json;

// JSON-data
sträng json = '{' namn ':' John Smith ',' ålder ':30}' ;
// C # klass
person i offentlig klass
{
offentlig sträng Namn { skaffa sig; uppsättning ; }
offentlig int Ålder { skaffa sig; uppsättning ; }
}
// Deserialisera JSON-data till ett personobjekt
Person person = JsonConvert.DeserializeObject < Person > ( json ) ;

De JSON data i det här exemplet är ett enkelt objekt med en namn- och åldersegenskap, och klassen C# är en Person-klass med liknande egenskaper. JsonConvert.DeserializeObject används för att konvertera JSON data till ett personobjekt som kan redigeras och användas i applikationen.

Steg 4: Manipulera C#-objektet

Efter att ha deserialiserat JSON-data in i en C#-objekt , kan den manipuleras och användas i applikationen efter önskemål. Egenskaper kan läsas eller ställas in, metoder kan anropas och objektet kan tillhandahållas som en parameter till andra procedurer eller funktioner.

Här är ett exempel på hur man arbetar med Person objekt du gjorde i föregående steg:

// Få personen s namn
strängnamn = person.Namn;

// Ställ in personen'
s ålder
person.Ålder = 31 ;

// Anropa en metod på personobjektet
person.PrintDetails ( ) ;

Personobjektet används i det här exemplet för att få personens namn, ställa in personens ålder och anropa Skriv ut Detaljer metod på objektet.

Här är en komplett kod som visar hur man gör konvertera JSON till en C#-klass .

använder System;
använder Newtonsoft.Json;

namnutrymme JsonToClassExample
{
klass program
{
statiskt tomrum Main ( sträng [ ] args )
{
sträng json = @ '{
'firstName': 'Larry',
'efternamn': 'Kevin',
'adress': {
'street': 'Main Street',
'city': 'Venedig',
}
}'
;

Rootobject myObject = JsonConvert.DeserializeObject < Rotobjekt > ( json ) ;

Console.WriteLine ( 'Förnamnet är:' + mittObject.firstName ) ;
Console.WriteLine ( 'Efternamnet är:' + mittObjekt.efternamn ) ;
Console.WriteLine ( 'Gatan är:' + minObject.address.street ) ;
Console.WriteLine ( 'Staden är:' + myObject.address.city ) ;


Console.ReadLine ( ) ;
}
}

offentlig klass Rootobjekt
{
offentlig sträng förnamn { skaffa sig; uppsättning ; }
offentlig sträng efternamn { skaffa sig; uppsättning ; }
allmän adress { skaffa sig; uppsättning ; }
}

allmän klass Adress
{
allmän stråkgata { skaffa sig; uppsättning ; }
offentlig stråkstad { skaffa sig; uppsättning ; }
}
}

Ovanstående kod visar hur man använder Newtonsoft.Json NuGet-paket till deserialisera a JSON-sträng till en C#-klass . JSON-strängen innehåller information om en persons för- och efternamn, samt deras adress (gata och stad). Som C#-klasser fastställer klasserna Rootobject och Address strukturen för JSON-data.

De JsonConvert.DeserializeObject metod används för att konvertera en JSON-sträng till en Rotobjekt exempel. Data visas sedan på konsolen genom att komma åt attributen för Rotobjekt och adressklasser. De Console.ReadLine metod används för att stoppa programmet innan det avslutas.

Produktion

Andra sätt att konvertera JSON till C#

Du kan också kopiera JSON data till urklipp och använd en JSON till C#-klassgenerator för att generera klassen C#. Det finns flera verktyg på nätet, som t.ex Json2CSharp och QuickType , som kan hjälpa dig att generera din C#-klass från JSON data. Klistra in JSON data i lämpligt fält och låt verktyget generera C#-klassen åt dig. Detta tillvägagångssätt är enkelt och snabbt. Men i lärande syfte måste du följa den första metoden.

Slutsats

Konvertera JSON-data till en C#-klass innebär att analysera JSON data, skapa en motsvarande C#-klass och deserialisera JSON-data till C#-klassobjektet. Denna process kan vara användbar när man arbetar med JSON data i C#-applikationer, vilket gör det lättare att läsa, manipulera och skicka data till webbtjänster eller API:er. Att snabbt översätta JSON till C# , kan du också använda flera webbverktyg, t.ex Json2CSharp och QuickType .