Looking for json.net Answers? Try Ask4KnowledgeBase
Looking for json.net Keywords? Try Ask4Keywords

json.netEmpezando con json.net


Observaciones

[Json.NET] [1] es un popular marco JSON de alto rendimiento para .NET. Es un ensamblado .Net que expone una amplia variedad de clases y métodos para ayudar a realizar tareas comunes con datos json.

Esto incluye la capacidad de hacer cosas como serializar datos json en instancias de clase, archivos de datos así como deserializar datos json que pueden provenir de muchas fuentes diferentes, como desde un punto final de API o desde archivos de datos .json .

Versiones

Versión Fecha de lanzamiento
Json.NET 9.0.1 (versión actual) 2016-06-22
Json.NET 8.0.3 2016-03-14
Json.NET 8.0.2 2016-01-09
Json.NET 8.0.1 2015-12-29
Json.NET 7.0.1 2015-06-22
Json.NET 6.0.8 2015-01-11
Json.NET 6.0.7 2014-12-23
Json.NET 6.0.6 2014-10-24
Json.NET 6.0.5 2014-09-06
Json.NET 6.0.4 2014-08-03
Json.NET 6.0.3 2014-04-27
Json.NET 6.0.2 2014-03-30
Json.NET 6.0.1 2014-02-01
Json.NET 5.0.8 2013-10-17
Json.NET 5.0.7 2013-10-14
Json.NET 5.0.6 2013-06-06
Json.NET 5.0.5 2013-05-08
Json.NET 5.0.4 2013-04-25
Json.NET 5.0.3 2013-04-14
Json.NET 5.0.2 2013-04-08
Json.NET 5.0.1 2013-04-07
Json.NET 4.5.11 2012-11-20
Json.NET 4.5.10 2012-10-07
Json.NET 4.5.9 2012-09-08
Json.NET 4.5.8 2012-08-04
Json.NET 4.5.7 2012-06-09
Json.NET 4.5.6 2012-05-30
Json.NET 4.5.5 2012-05-08
Json.NET 4.5.4 2012-04-24
Json.NET 4.5.3 2012-04-13
Json.NET 4.5.2 2012-04-11
Json.NET 4.5.1 2012-03-20
Json.NET 4.0.8 2012-02-12
Json.NET 4.0.7 2012-01-24
Json.NET 4.0.6 2012-01-23
Json.NET 4.0.5 2011-12-10
Json.NET 4.0.4 2011-11-19
Json.NET 4.0.3 2011-10-02
Json.NET 4.0.2 2011-04-23
Json.NET 4.0.1 2011-04-22
Json.NET 3.5.8 2011-01-08

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, en 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 distintas sentencias de Console.WriteLine será la siguiente.

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

Algunas cosas a tener en cuenta

  1. La siguiente línea realiza la deserialización real de los datos en la cadena de JSON en el employee instancia de objeto del Employee clase.

Employee employee = 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 de esa List .

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 utilizando la Consola del administrador de paquetes.

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

introduzca la descripción de la imagen aquí

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

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

introduzca la descripción de la imagen aquí

  1. Ahora escribe el siguiente comando y presiona enter.

Install-Package 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, recibirá el mensaje de que se instaló correctamente en el proyecto seleccionado.

introduzca la descripción de la imagen aquí

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

introduzca la descripción de la imagen aquí

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

Instale Json.Net utilizando el Explorador de soluciones de Visual Studio.

También puede instalar json.net utilizando el Explorador de soluciones 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 Gestor de paquetes Nuget , asegúrese de que la opción En línea esté seleccionada 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 centro.

  3. Haga clic en el botón Instalar .

introduzca la descripción de la imagen aquí

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

introduzca 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 Administrador de paquetes Nuget .

introduzca la descripción de la imagen aquí

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

introduzca 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 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 una instancia de C # Object, a la 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"
  ]
}
 

Algunas cosas a tener en cuenta

  1. La siguiente línea realiza la serialización real de los datos dentro de la instancia de clase de employee 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 nuevas líneas. Si no lo hace, la cadena serializada será una cadena larga sin sangría ni saltos de línea.