Kaip konvertuoti JSON į C# klasę

Kaip Konvertuoti Json I C Klase



JSON arba „JavaScript“ objektų žymėjimas yra pagrįstas JavaScript programavimo kalbos poaibiu, tačiau yra nepriklausomas nuo kalbos ir gali būti naudojamas su bet kuria programavimo kalba, kuri turi JSON analizatorių. Naudoti JSON duomenis C# programavimu, reikia konvertuoti JSON į a C# klasė . Tai leidžia programuotojams sąveikauti su duomenimis saugiai, o tai sumažina klaidų riziką ir palengvina kodo priežiūrą.

Dirbti su JSON duomenis C# dažnai reikia konvertuoti JSON duomenys į C# klasės kuriuos galima lengvai redaguoti ir naudoti programoje. Šioje pamokoje bus apžvelgtas konvertavimo procesas JSON duomenis į C# klases, su kodų pavyzdžiais, kurie padės jums pakeliui.







Kaip konvertuoti JSON į C# klasę

Veiksmai konvertuoti a JSON į a C# klasė yra:



1 veiksmas: išanalizuokite JSON duomenis



Pirmas žingsnis konvertuojant JSON į a C# klasė yra analizuoti JSON duomenis ir nustatyti jų struktūrą. Tai apima duomenų raktų arba savybių ir atitinkamų duomenų tipų identifikavimą. Kai ši informacija bus surinkta, galime pradėti kurti atitinkamą C# klasę, kuri atstovaus JSON duomenis.





2 veiksmas: sukurkite C# klasę, vaizduojančią JSON duomenis

The JSON tada duomenų pavadinimas naudojamas klasei apibrėžti. Šioje klasėje apibrėžiame ypatybes, kurios atitinka raktus JSON duomenis. Nustatome ypatybių duomenų tipus, kad atitiktų reikšmių duomenų tipus JSON duomenis. Pavyzdžiui, jei raktas į JSON duomenys turi eilutės reikšmę, atitinkamą savybę C# klasėje apibrėžiame kaip eilutę.



3 veiksmas: išveskite JSON duomenų seriją

Sukūrus C# klasę, kitas žingsnis yra deserializuoti JSON duomenis į klasės egzempliorių. Tai įmanoma naudojant Niutonsoftas.Json biblioteka, kuri suteikia paprastą API deserializavimui JSON duomenis. Turite įdiegti ir importuoti Niutonsoftas.Json paketą, kad galėtumėte jį naudoti savo kode. Sukurkite egzempliorių JsonSerializer klasę ir paskambinkite Deserializuoti metodu, įteikiant JSON duomenis kaip eilutę ir C# klasę kaip bendro tipo parametrą:

naudojant Newtonsoft.Json;

// JSON duomenys
string json = '{' vardas ':' Džonas Smitas ',' amžiaus ':30}' ;
// C # klasė
viešosios klasės Asmuo
{
vieša eilutė Pavadinimas { gauti; rinkinys ; }
viešasis int Amžius { gauti; rinkinys ; }
}
// Suskirstykite JSON duomenis į asmens objektą
Asmens asmuo = JsonConvert.DeserializeObject < Asmuo > ( json ) ;

The JSON duomenys šiame pavyzdyje yra paprastas objektas su pavadinimu ir amžiaus ypatybe, o C# klasė yra Asmens klasė su panašiomis savybėmis. JsonConvert.DeserializeObject naudojamas konvertuoti JSON duomenis į asmens objektą, kurį galima redaguoti ir naudoti programoje.

4 veiksmas: manipuliuokite C# objektu

Po deserializavimo JSON duomenys į a C# objektas , juo galima manipuliuoti ir naudoti programoje pagal pageidavimą. Savybės gali būti nuskaitomos arba nustatomos, metodai gali būti iškviesti, o objektas gali būti pateiktas kaip parametras kitoms procedūroms ar funkcijoms.

Štai pavyzdys, kaip dirbti su Asmuo objektas, kurį sukūrėte ankstesniame žingsnyje:

// Gaukite asmenį vardas
eilutės pavadinimas = asmuo.Vardas;

// Nustatyti asmenį'
s amžiaus
asmuo.Amžius = 31 ;

// Iškvieskite metodą asmens objektui
asmuo.SpausdintiDetalės ( ) ;

Asmens objektas šiame pavyzdyje naudojamas norint gauti asmens vardą, nustatyti asmens amžių ir paskambinti SpausdintiDetalės metodas objekte.

Čia yra visas kodas, rodantis, kaip tai padaryti konvertuoti JSON į C# klasę .

naudojant sistemą;
naudojant Newtonsoft.Json;

vardų sritis JsonToClassExample
{
klasės programa
{
statinė tuštuma Pagrindinis ( styga [ ] args )
{
string json = @ '{
'firstName': 'Laris',
'pavardė': 'Kevin',
'adresas': {
„gatvė“: „Pagrindinė gatvė“,
'miestas': 'Venecija',
}
}'
;

Rootobject myObject = JsonConvert.DeserializeObject < Šakninis objektas > ( json ) ;

Console.WriteLine ( 'Pirmas vardas yra: ' + myObject.firstName ) ;
Console.WriteLine ( 'Pavardė yra: ' + myObject.lastName ) ;
Console.WriteLine ( 'Gatvė yra:' + myObject.adresas.gatvė ) ;
Console.WriteLine ( 'Miestas yra:' + manoObjektas.adresas.miestas ) ;


Console.ReadLine ( ) ;
}
}

viešosios klasės šakninis objektas
{
vieša eilutė vardas Vardas { gauti; rinkinys ; }
vieša eilutė pavardė { gauti; rinkinys ; }
viešasis adresas { gauti; rinkinys ; }
}

viešoji klasė Adresas
{
viešoji styginių gatvė { gauti; rinkinys ; }
viešas styginių miestas { gauti; rinkinys ; }
}
}

Aukščiau pateiktas kodas parodo, kaip naudoti Newtonsoft.Json NuGet paketas į deserializuoti a JSON eilutę į C# klasę . JSON eilutę sudaro informacija apie asmens vardą ir pavardę, taip pat adresą (gatvė ir miestas). Kaip C# klasės, Rootobject ir Address klasės nustato JSON duomenų struktūrą.

The JsonConvert.DeserializeObject metodas naudojamas konvertuoti JSON eilutę į a Šakninis objektas instancija. Tada duomenys rodomi konsolėje, pasiekiant atributus Šakninis objektas ir Adreso klases. The Console.ReadLine metodas naudojamas sustabdyti programą prieš jai pasibaigiant.

Išvestis

Kiti būdai konvertuoti JSON į C#

Taip pat galite nukopijuoti JSON duomenis į mainų sritį ir naudokite a JSON į C# klasės generatorius sukurti C# klasę. Internete yra keletas įrankių, pvz Json2CSharp ir QuickType , kuris gali padėti jums sukurti C# klasę iš JSON duomenis. Įklijuokite JSON duomenis atitinkamame lauke ir leiskite įrankiui sugeneruoti C# klasę. Šis metodas yra paprastas ir greitas. Tačiau mokymosi tikslais turite laikytis pirmojo metodo.

Išvada

JSON duomenų konvertavimas į C# klasę apima analizę JSON duomenis, sukuriant atitinkamą C# klasę ir sujungiant JSON duomenis į C# klasės objektą. Šis procesas gali būti naudingas dirbant su JSON duomenis C# programose, kad būtų lengviau skaityti, valdyti ir siųsti duomenis į žiniatinklio paslaugas arba API. Greitai išversti JSON į C# , taip pat galite naudoti keletą žiniatinklio įrankių, pvz Json2CSharp ir QuickType .