Introducción

1. Introducción a Newtonsoft.Json

Newtonsoft.Json (comúnmente conocido como Json.NET) es una biblioteca de código abierto para serializar y deserializar JSON dentro del ecosistema .NET

  • Su primera versión Json.NET 1.0.1 salió en 2006, las versiones principales han superado la versión 10
  • Originalmente compatible con .NET 2.0, funciona con casi todos los marcos .NET (Framework/.NET Core/.NET 5+)
  • Ensamblado: Newtonsoft.Json.dll, se instala mediante NuGet
  • El código fuente se alojó en CodePlex en sus inicios, actualmente está en GitHub, muy usado en proyectos empresariales

2. ¿Qué es JSON

JSON(JavaScript Object Notation)

  • Formato ligero de intercambio de datos textual y agnóstico al lenguaje, no es exclusivo de JavaScript
  • Estructura básica: par clave‑valor key:value;admite objetos anidados {} y arrays []
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"tom"},{"name":"bill"}]}Lenguaje del código: C# (cs)

II. Definición de clases entidad (adaptadas a la estructura JSON)

Person.cs (objeto estudiante)
namespace NewtonsoftDemo
{
    public class Person
    {
        public string name { set; get; }
    }
}Lenguaje del código: C# (cs)
WebInfo.cs (objeto raíz)
namespace NewtonsoftDemo
{
    public class WebInfo
    {
        public string webname { set; get; }
        public string website { set; get; }
        public int age { set; get; }
        public Person[] students { set; get; }
    }
}Lenguaje del código: C# (cs)

Ejemplo‑Serializar objeto a JSON

protected void Page_Load(object sender, EventArgs e)
{
    // 1. Instanciar la entidad y asignar valores
    WebInfo webInfo = new WebInfo();
    webInfo.age = 4;
    webInfo.webname = "FoxDevelop";
    webInfo.website = "foxdevelop.com";
    webInfo.students = new Person[] 
    { 
        new Person { name = "TOM" },
        new Person { name = "JACK" } 
    };

    // 2. Código de bajo nivel Newtonsoft.Json: serialización con JsonWriter
    StringWriter sw = new StringWriter();
    JsonWriter writer = new JsonWriter(sw);
    new JsonSerializer().Serialize(writer, webInfo);
    string json = sw.GetStringBuilder().ToString();
}Lenguaje del código: C# (cs)

Sintaxis simplificada para uso diario

Newtonsoft.Json trae métodos estáticos auxiliares, no hace falta crear manualmente JsonWriter:

// Serialización en una sola línea, muy usada en desarrollo
string json = JsonConvert.SerializeObject(webInfo);Lenguaje del código: C# (cs)

Resultado JSON de salida

{
  "webname": "FoxDevelop",
  "website": "foxdevelop.com",
  "age": "4",
  "students": [
    {"name":"TOM"},
    {"name":"JACK"}
  ]
}Lenguaje del código: C# (cs)

Otros puntos

  • System.Text.Json:biblioteca nativa de Microsoft desde .NET Core 3.0; los proyectos antiguos de .NET Framework siguen usando mucho Newtonsoft.Json
  • Características: alias de propiedades, ignorar campos, formato de fechas, manejo de referencias circulares y otras funciones avanzadas

Introducción

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *