Primeros pasos con json.net

Cómo instalar Json.Net en proyectos de Visual Studio

Puede instalar Json.Net en su proyecto de Visual Studio de 1 de 2 maneras.

Instale Json.Net usando la Consola del administrador de paquetes.

  1. Abra la ventana Consola del administrador de paquetes en Visual Studio escribiendo consola del administrador de paquetes en el cuadro Inicio rápido y seleccionándola

ingrese la descripción de la imagen aquí

o haciendo clic en Ver -> Otras ventanas -> Consola del administrador de paquetes.

  1. Una vez que la Consola del administrador de paquetes esté visible, seleccione el proyecto dentro de su solución, en el que desea instalar Json.Net, seleccionándolo del menú desplegable Proyecto predeterminado.

ingrese la descripción de la imagen aquí

  1. Ahora escriba el siguiente comando y presione enter.

Paquete de instalación Newtonsoft.Json

  1. Esto instalará la última versión de Json.Net. Verá el progreso de la instalación en la Consola del administrador de paquetes. Si tiene éxito, aparecerá el mensaje de que se instaló correctamente en el proyecto seleccionado.

ingrese la descripción de la imagen aquí

  1. Una vez que se haya instalado correctamente, ahora podrá ver el ensamblado Json.Net en las referencias de su proyecto seleccionado. El nombre del ensamblado Json.Net es Newtonsoft.Json

ingrese la descripción de la imagen aquí

¡Json.Net ahora está listo para usar en su proyecto!

Instale Json.Net usando Visual Studio Solution Explorer.

También puede instalar json.net mediante Solution Explorer en Visual Studio.

  1. Haga clic derecho en el nodo Referencias en su proyecto y haga clic en Administrar paquetes Nuget…

  2. En el cuadro de diálogo Nuget Package Manager, asegúrese de que En línea esté seleccionado en el panel izquierdo. Escriba Json.Net en el cuadro de búsqueda en la parte superior derecha. Esto mostrará el paquete Json.Net Nuget en el panel de resultados de búsqueda en el medio.

  3. Haga clic en el botón Instalar.

ingrese la descripción de la imagen aquí

  1. Verá el progreso de la instalación en la ventana de progreso que aparecerá.

ingrese la descripción de la imagen aquí

  1. Una vez que se complete la instalación, verá una marca de verificación verde junto al paquete Json.Net en el cuadro de diálogo Nuget Package Manager.

ingrese la descripción de la imagen aquí

  1. También verá el ensamblado Newtonsoft.Json en el nodo Referencias en su explorador de soluciones para su proyecto seleccionado.

ingrese la descripción de la imagen aquí

Esto completa la instalación de Json.Net. Ahora está listo para usarlo en su proyecto para realizar varias operaciones en datos json.

Cómo deserializar datos JSON a objetos usando Json.Net en C#

El siguiente ejemplo muestra cómo puede deserializar una cadena JSON que contiene un Objeto (es decir, una instancia de una clase).

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
                    
public class Program
{
    public class Employee
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public bool IsManager { get; set; }
        public DateTime JoinedDate { get; set; }
        public IList<string> Titles { get; set; }
    }
    
    public static void Main()
    {
        string json = @"{
                          'FirstName': 'Shiva',
                          'LastName': 'Kumar',
                          'IsManager': true,
                          'JoinedDate': '2014-02-10T00:00:00Z',
                          'Titles': [
                            'Sr. Software Engineer',
                            'Applications Architect'
                          ]
                        }";
        
        Employee employee = JsonConvert.DeserializeObject<Employee>(json);

        Console.WriteLine(employee.FirstName);
        Console.WriteLine(employee.LastName);
        Console.WriteLine(employee.JoinedDate);
        foreach (string title in employee.Titles)
        {
            Console.WriteLine("  {0}", title);    
        }
    }
}

Si ejecuta este programa de consola, la salida de las diversas declaraciones Console.WriteLine será la siguiente.

Shiva
Kumar
2/10/2014 12:00:00 AM
  Sr. Software Engineer
  Applications Architect

Pocas cosas a tener en cuenta

  1. La siguiente línea realiza la deserialización real de los datos en la cadena json en la instancia del objeto empleado de la clase Empleado.

Empleado empleado = JsonConvert.DeserializeObject<Employee>(json);

  1. Dado que employee.Titles es un tipo List<string>, usamos la construcción de bucle foreach para recorrer cada elemento en esa Lista.

Cómo serializar un objeto a JSON usando Json.Net en C#

El siguiente ejemplo muestra cómo puede usar Json.Net para serializar los datos en la instancia de un objeto C#, en una cadena JSON.

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool IsManager { get; set; }
    public DateTime JoinedDate { get; set; }
    public IList<string> Titles { get; set; }
}
                    
public class Program
{
    public static void Main()
    {
        Employee employee = new Employee
        {
            FirstName = "Shiva",
            LastName = "Kumar",            
            IsManager = true,
            JoinedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),
            Titles = new List<string>
            {
                "Sr. Software Engineer",
                "Applications Architect"
            }
        };

        string json = JsonConvert.SerializeObject(employee, Formatting.Indented);


Console.WriteLine(json);
        
    }
}

Si ejecuta este programa de consola, la salida de Console.WriteLine(json) será

{
  "FirstName": "Shiva",
  "LastName": "Kumar",
  "IsManager": true,
  "JoinedDate": "2013-01-20T00:00:00Z",
  "Titles": [
    "Sr. Software Engineer",
    "Applications Architect"
  ]
}

Pocas cosas a tener en cuenta

  1. La siguiente línea realiza la serialización real de los datos dentro de la instancia de clase empleado en una cadena json

    string json = JsonConvert.SerializeObject(employee, Formatting.Indented);

  2. El parámetro Formatting.Indented le dice a Json.Net que serialice los datos con sangría y líneas nuevas. Si no lo hace, la cadena serializada será una cadena larga sin sangría ni saltos de línea.