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.