HOWTO · Csharp

Deserializar JSON con C#

Este tutorial le enseña cómo deserializar un objeto JSON usando el lenguaje de programación C#.

La deserialización en C# se refiere a recuperar el objeto serializado para que pueda cargarlo en la memoria. Luego, permite que el objeto sea utilizado nuevamente. Finalmente, devuelve la vida al estado anterior del objeto al establecer sus atributos, etc.

Este tutorial le enseña cómo deserializar un objeto JSON usando el lenguaje de programación C#.

Deserializar JSON con C#

Veamos un ejemplo de deserializar un objeto JSON usando el lenguaje de programación C#. En el siguiente ejemplo, usaremos los datos de los estudiantes para deserializar JSON con C#. Pero, primero, veamos el siguiente ejemplo paso a paso.

  • Para comenzar, tenemos que importar las siguientes bibliotecas.
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Script.Serialization;
    using Newtonsoft.Json;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
  • Tenemos que crear una estructura de Estudiante que contendrá la información del Estudiante, por ejemplo, Studentid y Studentname de la siguiente manera.
    public class Students {
      public List<studentinfo> MyStudents { get; set; }
    }
    public class studentinfo {
      public string Studentid { get; set; }
      public string Studentname { get; set; }
    }
    
  • Ahora, crearemos una lista JSON y la completaremos con datos aleatorios de estudiantes.
    string json =
        @"{""MyStudents"":[
      {""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""},
      {""Studentid"":""3256"",""Studentname"":""Haseeb Khan""},
      {""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""},
      {""Studentid"":""3267"",""Studentname"":""Bawa Khan""}
    ]}";
    
  • Luego, use la función .Deserialize() para deserializar la lista.
    Students derializedStudent =
        new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);
    
  • Por último, usaremos el bucle foreach para mostrar los resultados en la consola.
    foreach (var item in derializedStudent.MyStudents) {
      Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname);
    }
    

El código fuente completo se proporciona a continuación.

Código fuente completo

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeserializeJSONbyZeeshan {
  class Program {
    static void Main(string[] args) {
      string json =
          @"{""MyStudents"":[
                           {""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""},
                           {""Studentid"":""3256"",""Studentname"":""Haseeb Khan""},
                           {""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""},
                           {""Studentid"":""3267"",""Studentname"":""Bawa Khan""}
                       ]}";

      Students derializedStudent =
          new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);

      foreach (var item in derializedStudent.MyStudents) {
        Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname);
      }
    }
  }
}

public class Students {
  public List<studentinfo> MyStudents { get; set; }
}

public class studentinfo {
  public string Studentid { get; set; }
  public string Studentname { get; set; }
}

Producción :

id: 3227, name: Muhammad Zeeshan
id: 3256, name: Haseeb Khan
id: 3241, name: Saad Ashrafi
id: 3267, name: Bawa Khan