logo

Analizar JSON en C#

Introducción:

Analizar JSON en C# es una tarea común para los desarrolladores que crean aplicaciones que consumen datos JSON. JSON representa Notación de objetos JavaScript y es un formato ligero de cambio de representación de datos que es óptimo para que los usuarios normales lean y escriban y fácil de analizar y generar para las máquinas. En este artículo, veremos cómo analizar JSON en C# usando el software integrado .NETJSON bibliotecas de análisis.

El análisis JSON en C# se puede lograr de diferentes maneras: usando el Biblioteca Newtonsoft.Json o usando el Biblioteca System.Text.Json introducido en .NET Core 3.0 . Ambas bibliotecas son opciones populares para JSON Parsing en C# y proporcionan funcionalidades similares.

Método 1: uso del paquete Newtonsoft.Json

Uno de los paquetes más populares para analizar JSON en C# es Newtonsoft.Json . Es un paquete de terceros que proporciona una forma sencilla y flexible de serializar y deserializar datos JSON.

Usar Newtonsoft.Json en su proyecto C#, primero debe instalarlo. Puedes instalarlo a través del NuGet administrador de paquetes en Estudio visual o ejecutando el siguiente comando en la Consola del Administrador de paquetes:

tamaño de cucharadita

Código:

 Install-Package Newtonsoft.Json 

Una vez instalado, puedes comenzar a usarlo en tu código. Aquí hay un ejemplo de cómo analizar JSON usando Newtonsoft.Json:

Código 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 este ejemplo, definimos una cadena JSON y la deserializamos usando el JsonConvert.DeserializeObject método proporcionado por Newtonsoft.Json . El método devuelve un objeto dinámico, que nos permite acceder a los datos JSON utilizando la sintaxis de propiedad.

emitir cadena como int

Método 2: usar el espacio de nombres System.Text.Json

Empezando con .NET Core 3.0 y .NET 5.0, C# también proporciona una biblioteca de análisis JSON integrada llamada Sistema.Texto.Json . Es un serializador y deserializador JSON ligero y rápido que se incluye en el .NETO tiempo de ejecución.

Aquí hay un ejemplo de cómo analizar JSON usando Sistema.Texto.Json:

Código 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 este ejemplo, utilizamos el JsonDocument.Parse método proporcionado por Sistema.Texto.Json para analizar la cadena JSON. El método devuelve un Documento Json objeto, que representa los datos JSON analizados. Luego podemos acceder a los datos JSON usando el Elemento Json clase y su Obtener propiedad método.

Método 3: usar la clase JavaScriptSerializer

Otra forma de analizar JSON en C# es mediante el uso del JavaScriptSerializador clase, que es parte de la Extensiones.web.del.sistema asamblea. Esta clase fue introducida en . NET Framework 3.5 y proporciona una forma sencilla de deserializar datos JSON en un objeto fuertemente tipado.

Usar el JavaScriptSerializador clase, necesita crear una clase que represente el objeto JSON que desea deserializar. La clase debe tener propiedades que coincidan con los nombres y tipos de datos de las propiedades del objeto JSON. Por ejemplo, supongamos que tiene el siguiente objeto JSON:

Objeto JSON:

diana maría negro
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Puede crear una clase que represente este objeto de la siguiente manera:

Código C#:

eliminar caché npm
 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Una vez que haya definido la clase, puede utilizar el JavaScriptSerializador clase para deserializar los datos JSON en una instancia de la clase Persona:

Código C#:

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

En el ejemplo anterior, primero definimos una cadena que contiene los datos JSON. Luego creamos una instancia del JavaScriptSerializador clase y utilizó su método Deserialize para analizar los datos JSON en una instancia de la clase Persona.

Vale la pena señalar que el JavaScriptSerializador La clase tiene limitaciones en comparación con los otros dos métodos que discutimos. Por ejemplo, no admite algunas de las funciones más avanzadas de JSON, como el manejo de valores nulos o la conversión entre las convenciones de nomenclatura camelCase y PascalCase. Tampoco tiene soporte integrado para deserializar matrices JSON.

Conclusión:

En este artículo, exploramos dos formas de analizar JSON en C#: usando el Newtonsoft.Json biblioteca y utilizando el Sistema.Texto.Json biblioteca. Ambas bibliotecas proporcionan potentes capacidades de análisis JSON y son ampliamente utilizadas por los desarrolladores que crean aplicaciones C# que consumen datos JSON.