logo

Analitza JSON en C#

Introducció:

L'anàlisi de JSON en C# és una tasca habitual per als desenvolupadors que creen aplicacions que consumeixen dades JSON. JSON representa Notació d'objectes JavaScript i és un format de canvi de representació de dades lleuger que és òptim per als usuaris normals per llegir i escriure i fàcil per a les màquines d'analitzar i generar. En aquest article, veurem com analitzar JSON en C# mitjançant el sistema integrat .NET JSON anàlisi de biblioteques.

L'anàlisi JSON en C# es pot aconseguir de diferents maneres: utilitzant el Biblioteca Newtonsoft.Json o utilitzant el Biblioteca System.Text.Json introduït en .NET Core 3.0 . Les dues biblioteques són opcions populars per a l'anàlisi JSON en C# i proporcionen funcionalitats similars.

Mètode 1: utilitzant el paquet Newtonsoft.Json

Un dels paquets més populars per analitzar JSON en C# és Newtonsoft.Json . És un paquet de tercers que proporciona una manera senzilla i flexible de serialitzar i deserialitzar dades JSON.

Usar Newtonsoft.Json al vostre projecte C#, primer heu d'instal·lar-lo. Podeu instal·lar-lo a través de NuGet gestor de paquets a Visual Studio o executant l'ordre següent a la consola del gestor de paquets:

cadena de divisió c++

Codi:

 Install-Package Newtonsoft.Json 

Un cop instal·lat, podeu començar a utilitzar-lo al vostre codi. Aquí teniu un exemple de com analitzar JSON utilitzant Newtonsoft.Json:

Codi C#:

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

En aquest exemple, definim una cadena JSON i la deserialitzem amb el JsonConvert.DeserializeObject mètode proporcionat per Newtonsoft.Json . El mètode retorna un objecte dinàmic, que ens permet accedir a les dades JSON mitjançant la sintaxi de la propietat.

La cadena de Java està buida

Mètode 2: utilitzant l'espai de noms System.Text.Json

Començant per .NET Core 3.0 i .NET 5.0, C# també proporciona una biblioteca d'anàlisi JSON integrada anomenada System.Text.Json . És un serialitzador i deserialitzador JSON lleuger i ràpid que s'inclou al .NET temps d'execució.

Aquí teniu un exemple de com analitzar JSON utilitzant System.Text.Json:

Codi C#:

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

En aquest exemple, fem servir el JsonDocument.Parse mètode proporcionat per System.Text.Json per analitzar la cadena JSON. El mètode retorna a JsonDocument objecte, que representa les dades JSON analitzades. Aleshores podem accedir a les dades JSON mitjançant el JsonElement classe i la seva GetProperty mètode.

Mètode 3: Ús de la classe JavaScriptSerializer

Una altra manera d'analitzar JSON en C# és utilitzant el Serialitzador de JavaScript classe, que forma part de la Extensions.web.sistema muntatge. Aquesta classe es va introduir a. NET Framework 3.5 i proporciona una manera senzilla de deserialitzar les dades JSON en un objecte de tipus fort.

Per utilitzar el Serialitzador de JavaScript classe, heu de crear una classe que representi l'objecte JSON que voleu deserialitzar. La classe ha de tenir propietats que coincideixin amb els noms i els tipus de dades de les propietats de l'objecte JSON. Per exemple, suposem que teniu l'objecte JSON següent:

Objecte JSON:

string n java
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Podeu crear una classe que representi aquest objecte de la següent manera:

Codi C#:

exemples de sistemes operatius
 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Un cop hàgiu definit la classe, podeu utilitzar el Serialitzador de JavaScript classe per deserialitzar les dades JSON en una instància de la classe Person:

Codi C#:

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

A l'exemple anterior, primer hem definit una cadena que conté les dades JSON. Aleshores vam crear una instància del Serialitzador de JavaScript classe i va utilitzar el seu mètode Deserialize per analitzar les dades JSON en una instància de la classe Person.

Val la pena assenyalar que el Serialitzador de JavaScript classe té limitacions en comparació amb els altres dos mètodes que hem comentat. Per exemple, no admet algunes de les funcions més avançades de JSON, com ara la gestió de valors nuls o la conversió entre les convencions de nomenclatura camelCase i PascalCase. Tampoc té suport integrat per deserialitzar matrius JSON.

Conclusió:

En aquest article, hem explorat dues maneres d'analitzar JSON en C#: utilitzant el Newtonsoft.Json biblioteca i utilitzant el System.Text.Json biblioteca. Ambdues biblioteques ofereixen potents capacitats d'anàlisi JSON i són àmpliament utilitzades pels desenvolupadors que creen aplicacions C# que consumeixen dades JSON.