logo

Parsēt JSON C#

Ievads:

JSON parsēšana C# ir izplatīts uzdevums izstrādātājiem, kuri veido lietojumprogrammas, kas patērē JSON datus. JSON pārstāv JavaScript objektu apzīmējums un tas ir viegls datu attēlojuma mainīgs formāts, kas ir optimāls parastiem lietotājiem lasīšanai un rakstīšanai, un ir viegli iekārtām parsējams un ģenerējams. Šajā rakstā mēs apskatīsim, kā parsēt JSON C#, izmantojot iebūvēto .NET JSON parsējot bibliotēkas.

JSON parsēšanu C# var panākt dažādos veidos: izmantojot Newtonsoft.Json bibliotēka vai izmantojot System.Text.Json bibliotēka ieviests .NET Core 3.0 . Abas bibliotēkas ir populāras izvēles iespējas JSON parsēšanai C#, un tās nodrošina līdzīgas funkcijas.

1. metode: Newtonsoft.Json pakotnes izmantošana

Viena no populārākajām pakotnēm JSON parsēšanai C# ir Newtonsoft.Json . Tā ir trešās puses pakotne, kas nodrošina vienkāršu un elastīgu veidu, kā serializēt un deserializēt JSON datus.

Izmantot Newtonsoft.Json savā C# projektā vispirms tas jāinstalē. Jūs varat to instalēt, izmantojot NuGet pakešu pārvaldnieks iekšā Visual Studio vai palaižot šo komandu pakotņu pārvaldnieka konsolē:

Salman Khan Khan vecums

Kods:

 Install-Package Newtonsoft.Json 

Pēc instalēšanas varat sākt to izmantot savā kodā. Šeit ir piemērs, kā parsēt JSON, izmantojot Newtonsoft.Json:

C# kods:

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

Šajā piemērā mēs definējam JSON virkni un deserializējam to, izmantojot JsonConvert.DeserializeObject nodrošinātā metode Newtonsoft.Json . Metode atgriež dinamisku objektu, kas ļauj mums piekļūt JSON datiem, izmantojot īpašuma sintaksi.

java virkne isempty

2. metode: System.Text.Json nosaukumvietas izmantošana

Sākot ar .NET Core 3.0 un .NET 5.0, C# nodrošina arī iebūvētu JSON parsēšanas bibliotēku, ko sauc System.Text.Json . Tas ir viegls un ātrs JSON serializators un deserializators, kas ir iekļauts .TĪKLS izpildlaiks.

Šeit ir piemērs, kā parsēt JSON, izmantojot System.Text.Json:

C# kods:

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

Šajā piemērā mēs izmantojam JsonDocument.Parse nodrošinātā metode System.Text.Json lai parsētu JSON virkni. Metode atgriež a JsonDocument objekts, kas apzīmē parsētos JSON datus. Pēc tam mēs varam piekļūt JSON datiem, izmantojot JsonElement klase un tā GetProperty metodi.

3. metode: JavaScriptSerializer klases izmantošana

Vēl viens veids, kā parsēt JSON C#, ir izmantot JavaScriptSerializer klase, kas ir daļa no System.Web.Extensions montāža. Šī klase tika ieviesta . NET Framework 3.5 un nodrošina vienkāršu veidu, kā deserializēt JSON datus stingri drukātā objektā.

Lai izmantotu JavaScriptSerializer klasē, jums ir jāizveido klase, kas pārstāv JSON objektu, kuru vēlaties deserializēt. Klasei ir jābūt rekvizītiem, kas atbilst JSON objekta rekvizītu nosaukumiem un datu tipiem. Piemēram, pieņemsim, ka jums ir tālāk norādītais JSON objekts:

JSON objekts:

bash if paziņojums
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Varat izveidot klasi, kas attēlo šo objektu, kā norādīts tālāk.

C# kods:

css iesaiņojuma teksts
 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Kad esat definējis klasi, varat izmantot JavaScriptSerializer klase, lai JSON datus deserializētu personas klases instancē:

C# kods:

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

Iepriekš minētajā piemērā mēs vispirms definējām virkni, kurā ir JSON dati. Pēc tam mēs izveidojām eksemplāru JavaScriptSerializer klasē un izmantoja savu Deserialize metodi, lai parsētu JSON datus personas klases instancē.

Ir vērts atzīmēt, ka JavaScriptSerializer klasei ir ierobežojumi salīdzinājumā ar pārējām divām metodēm, par kurām mēs runājām. Piemēram, tas neatbalsta dažas no uzlabotajām JSON funkcijām, piemēram, nulles vērtību apstrādi vai pārveidošanu starp CamelCase un PascalCase nosaukšanas konvencijām. Tam nav arī iebūvēts atbalsts JSON masīvu deserializēšanai.

Secinājums:

Šajā rakstā mēs izpētījām divus veidus, kā parsēt JSON C#: izmantojot Newtonsoft.Json bibliotēku un izmantojot System.Text.Json bibliotēka. Abas bibliotēkas nodrošina jaudīgas JSON parsēšanas iespējas, un tās plaši izmanto izstrādātāji, veidojot C# lietojumprogrammas, kas patērē JSON datus.