logo

Jäsennä JSON C#:ssa

Esittely:

JSON-jäsennys C#:ssa on yleinen tehtävä kehittäjille, jotka rakentavat sovelluksia, jotka kuluttavat JSON-tietoja. JSON edustaa JavaScript-objektin merkintä ja se on kevyt dataesitysmuoto, joka on optimaalinen tavallisille käyttäjille luettavaksi ja kirjoitettavaksi ja joka on helppo koneiden jäsentää ja luoda. Tässä artikkelissa tarkastellaan, kuinka JSON jäsennetään C#:ssa sisäänrakennetun tekniikan avulla .NET JSON jäsentää kirjastoja.

JSON-jäsennys C#:ssa voidaan saavuttaa eri tavoilla: käyttämällä Newtonsoft.Json-kirjasto tai käyttämällä System.Text.Json-kirjasto otettu käyttöön .NET Core 3.0 . Molemmat kirjastot ovat suosittuja JSON-jäsennysvaihtoehtoja C#:ssa ja tarjoavat samanlaisia ​​toimintoja.

Tapa 1: Newtonsoft.Json-paketin käyttäminen

Yksi suosituimmista paketeista JSON-jäsennykseen C#:ssa on Newtonsoft.Json . Se on kolmannen osapuolen paketti, joka tarjoaa yksinkertaisen ja joustavan tavan JSON-tietojen sarjoittamiseksi ja sarjoittamiseksi.

Käyttää Newtonsoft.Json C#-projektissasi sinun on asennettava se ensin. Voit asentaa sen kautta NuGet paketinhallinta sisään Visual Studio tai suorittamalla seuraava komento Package Manager -konsolissa:

java parseint

Koodi:

 Install-Package Newtonsoft.Json 

Kun se on asennettu, voit alkaa käyttää sitä koodissasi. Tässä on esimerkki JSONin jäsentämisestä Newtonsoft.Json:

C# koodi:

 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); 

Tässä esimerkissä määritämme JSON-merkkijonon ja sarjoitamme sen käyttämällä JsonConvert.DeserializeObject tarjoama menetelmä Newtonsoft.Json . Menetelmä palauttaa dynaamisen objektin, jonka avulla voimme käyttää JSON-tietoja ominaisuussyntaksin avulla.

bubble sort java

Tapa 2: System.Text.Json-nimiavaruuden käyttäminen

alkaen .NET Core 3.0 ja .NET 5.0, C# tarjoaa myös sisäänrakennetun JSON-jäsennyskirjaston nimeltä System.Text.Json . Se on kevyt ja nopea JSON-serialisoija ja deserialisoija, joka sisältyy .NETTO suoritusaika.

Tässä on esimerkki JSONin jäsentämisestä System.Text.Json:

C# koodi:

 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); 

Tässä esimerkissä käytämme JsonDocument.Parse tarjoama menetelmä System.Text.Json jäsentääksesi JSON-merkkijonon. Menetelmä palauttaa a JsonDocument objekti, joka edustaa jäsennettyä JSON-dataa. Voimme sitten käyttää JSON-tietoja käyttämällä JsonElement luokka ja sen Hanki Property menetelmä.

Tapa 3: JavaScriptSerializer-luokan käyttäminen

Toinen tapa jäsentää JSON:ia C#:ssa on käyttää JavaScript Serializer luokkaa, joka on osa System.Web.Extensions kokoonpano. Tämä luokka otettiin käyttöön vuonna. NET Framework 3.5 ja tarjoaa yksinkertaisen tavan deserialisoida JSON-tiedot vahvasti kirjoitetuksi objektiksi.

Käyttääksesi JavaScript Serializer luokassa, sinun on luotava luokka, joka edustaa JSON-objektia, jonka sarjoittaminen haluat tehdä. Luokassa tulee olla ominaisuuksia, jotka vastaavat JSON-objektin ominaisuuksien nimiä ja tietotyyppejä. Oletetaan esimerkiksi, että sinulla on alla oleva JSON-objekti:

JSON-objekti:

alimerkkijonoindeksi sql:ssä
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Voit luoda luokan, joka edustaa tätä objektia seuraavasti:

C# koodi:

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

Kun olet määrittänyt luokan, voit käyttää JavaScript Serializer luokkaa sarjoittamaan JSON-tiedot Person-luokan esiintymään:

C# koodi:

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

Yllä olevassa esimerkissä määritimme ensin merkkijonon, joka sisältää JSON-tiedot. Sitten loimme esiintymän JavaScript Serializer luokkaan ja käytti Deserialize-menetelmää jäsentääkseen JSON-tiedot Person-luokan esiintymään.

On syytä huomata, että JavaScript Serializer luokassa on rajoituksia verrattuna kahteen muuhun menetelmään, josta keskustelimme. Se ei esimerkiksi tue joitain JSONin edistyneempiä ominaisuuksia, kuten nolla-arvojen käsittelyä tai muuntamista camelCasen ja PascalCasen nimeämiskäytäntöjen välillä. Siinä ei myöskään ole sisäänrakennettua tukea JSON-taulukoiden sarjoittamiseksi.

Johtopäätös:

Tässä artikkelissa tutkimme kahta tapaa jäsentää JSON:ia C#:ssa: käyttämällä Newtonsoft.Json kirjastosta ja sen käyttämisestä System.Text.Json kirjasto. Molemmat kirjastot tarjoavat tehokkaat JSON-jäsennysominaisuudet, ja kehittäjät, jotka rakentavat C#-sovelluksia, jotka kuluttavat JSON-tietoja, käyttävät niitä laajasti.