AYUDA .NET

C# Json Serializer (Cómo funciona para desarrolladores)

Publicado en 12 de diciembre, 2023
Compartir:

En el ámbito del desarrollo de software moderno, los formatos de intercambio de datos desempeñan un papel crucial a la hora de permitir la comunicación entre diversos sistemas. Uno de estos formatos que ha ganado una inmensa popularidad es JSON(Notación de objetos de JavaScript).

Los desarrolladores de C# se encuentran a menudo trabajando con datos JSON, y para facilitar una interacción fluida, C# proporciona una potente herramienta: el serializador JSON de C#.

En este artículo hablaremos deSerialización JSON y sus usos. Además, intentaremos comprender el proceso de serialización JSON con la ayuda de un ejemplo conBiblioteca PDF IronPDF.

1. Comprender el serializador JSON de C

C# JSON Serializer es un componente que convierte objetos C# en su representación JSON y viceversa. Este proceso, conocido como serialización y deserialización, es esencial cuando se intercambian datos entre una aplicación C# y sistemas o servicios externos.

Imaginemos que una aplicación de comercio electrónico necesita enviar información sobre un producto a una aplicación móvil. En lugar de enviar objetos C# sin procesar, que la aplicación móvil podría no entender, la aplicación puede utilizar un serializador JSON para convertir los objetos a un formato JSON reconocido universalmente y fácilmente consumible por varias plataformas.

1.1. Ejemplos de serialización JSON en C

Veamos un ejemplo sencillo para ilustrar el concepto. Supongamos que tenemos una clase C# que representa a una persona

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
VB   C#

Utilizando la serialización JSON de C#, podemos convertir una instancia de esta clase en una cadena JSON

Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Person person = new Person { Name = "John Doe", Age = 30 };
string json = JsonConvert.SerializeObject(person);
Dim person As New Person With {
	.Name = "John Doe",
	.Age = 30
}
Dim json As String = JsonConvert.SerializeObject(person)
VB   C#

La cadena JSON resultante sería {"Nombre": "Juan Nadie", "Edad":30}, que representa el objeto persona en formato JSON.

2. Tipos de serializador JSON de C# y ejemplos de código

C# ofrece varias formas de realizar la serialización JSON, cada una con su propio conjunto de características y casos de uso. Estos son algunos de los métodos de serialización JSON más utilizados en C#

2.1. DataContractJsonSerializer

Este serializador forma parte del espacio de nombres System.Runtime.Serialization.Json y utiliza los atributos Data Contract para controlar el proceso de serialización.

using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));
        MemoryStream stream = new MemoryStream();
        serializer.WriteObject(stream, person);
        string json = Encoding.UTF8.GetString(stream.ToArray());
        Console.WriteLine("Serialized JSON using DataContractJsonSerializer:");
        Console.WriteLine(json);
    }
}
Imports System
Imports System.IO
Imports System.Runtime.Serialization.Json
Imports System.Text
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New DataContractJsonSerializer(GetType(Person))
		Dim stream As New MemoryStream()
		serializer.WriteObject(stream, person)
		Dim json As String = Encoding.UTF8.GetString(stream.ToArray())
		Console.WriteLine("Serialized JSON using DataContractJsonSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

2.2. JavaScriptSerializer

Ubicado en el espacio de nombres System.Web.Script.Serialization, este serializador forma parte de ASP.NET y proporciona una forma sencilla de serializar objetos a formato JSON.

using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}
using System;
using System.Web.Script.Serialization;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(person);
        Console.WriteLine("Serialized JSON using JavaScriptSerializer:");
        Console.WriteLine(json);
    }
}
Imports System
Imports System.Web.Script.Serialization
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim serializer As New JavaScriptSerializer()
		Dim json As String = serializer.Serialize(person)
		Console.WriteLine("Serialized JSON using JavaScriptSerializer:")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

2.3. Json.NET(Newtonsoft.Json)

Json.NET(Newtonsoft.Json) es una biblioteca de terceros ampliamente utilizada para la serialización de JSON en C#. Ofrece flexibilidad, rendimiento y un rico conjunto de funciones.

using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}
using System;
using Newtonsoft.Json;
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John Doe", Age = 30 };
        string json = JsonConvert.SerializeObject(person);
        Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):");
        Console.WriteLine(json);
    }
}
Imports System
Imports Newtonsoft.Json
Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim person As New Person With {
			.Name = "John Doe",
			.Age = 30
		}
		Dim json As String = JsonConvert.SerializeObject(person)
		Console.WriteLine("Serialized JSON using Json.NET (Newtonsoft.Json):")
		Console.WriteLine(json)
	End Sub
End Class
VB   C#

3. Cuándo utilizar el serializador JSON de C

Saber cuándo emplear la serialización JSON en C# es crucial para un intercambio de datos eficiente y sin errores. Estos son algunos de los escenarios en los que resulta beneficioso utilizar un serializador JSON

3.1. API web

Cuando se desarrollan API web que se comunican con aplicaciones cliente, JSON es el formato preferido para el intercambio de datos debido a su naturaleza ligera y legible por humanos.

3.2. Ajustes de configuración

Almacenar y leer ajustes de configuración en formato JSON es una práctica habitual. La serialización JSON simplifica el proceso de conversión de estos ajustes entre objetos C# y JSON.

3.3. Interoperabilidad

Al integrar aplicaciones C# con sistemas desarrollados en otros lenguajes, JSON proporciona un formato de datos independiente del lenguaje, lo que garantiza una interoperabilidad sin fisuras.

4. ¿Qué es una cadena JSON deserializada?

La deserialización es el proceso de convertir una cadena JSON de nuevo en su objeto C# equivalente. Se trata de un paso crucial cuando se trabaja con datos recibidos de fuentes externas, como API web o datos JSON almacenados.

En C#, los mismos serializadores utilizados para la serialización a menudo se pueden emplear para la deserialización. Ilustremos la deserialización con un ejemplo sencillo utilizando Json.NET(Newtonsoft.Json):

using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}
using System;
using Newtonsoft.Json;
public class user
{
    public string firstname { get; set; }
    public int Age { get; set; }
}
class Program
{
    static void Main()
    {
        string json = "{\"Name\":\"John Doe\",\"Age\":30}";
        Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}
Imports System
Imports Newtonsoft.Json
Public Class user
	Public Property firstname() As String
	Public Property Age() As Integer
End Class
Friend Class Program
	Shared Sub Main()
		Dim json As String = "{""Name"":""John Doe"",""Age"":30}"
		Dim deserializedPerson As Person = JsonConvert.DeserializeObject(Of Person)(json)
		Console.WriteLine("Deserialized Person:")
		Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}")
	End Sub
End Class
VB   C#

5. Presentación de IronPDF en C#

Ahora que tenemos una sólida comprensión de la serialización JSON en C#, vamos a explorar la integración deBiblioteca IronPDF C#una potente biblioteca para trabajar con archivos PDF en C#. IronPDF simplifica el proceso de generación y manipulación de documentos PDF, lo que lo convierte en una opción excelente para escenarios en los que haya PDF implicados.

5.1. IronPDF en pocas palabras

IronPDF es una biblioteca de C# que permite a los desarrolladores crear, manipular y representar documentos PDF en sus aplicaciones. Tanto si necesita generar facturas, informes o cualquier otro tipo de documento PDF, IronPDF le ofrece una solución cómoda y repleta de funciones.

IronPDF'sConversión de HTML a PDF es una función destacada, que mantiene tus diseños y estilos. Convierte contenidos web en PDF, adecuados para informes, facturas y documentación. Puede convertir archivos HTML, URL y cadenas HTML en PDF con facilidad.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

Para empezar a utilizar IronPDF, primero debe instalar el paquete IronPDF NuGet:

Install-Package IronPdf

Una vez instalada, puede utilizar la biblioteca IronPDF para realizar diversas tareas relacionadas con PDF en su aplicación C#.

5.2. Uso del serializador JSON de C# con código IronPDF

Ahora, vamos a explorar un ejemplo práctico de cómo la serialización C# JSON puede integrarse perfectamente con IronPDF. Imagínese una situación en la que tiene una colección de datos que necesita presentar en un informe PDF.

Los datos se almacenan inicialmente como objetos C# y es necesario convertirlos a formato JSON antes de incrustarlos en el documento PDF mediante IronPDF.

5.3. Ejemplo de código

using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}
using IronPdf;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Utilities;
using System.Collections.Generic;
using Newtonsoft.Json.Schema; // json schema
using Newtonsoft.Json;
public class ReportData
{
    public string Title { get; set; }
    public string Content { get; set; }
}
public class Program
{
    static void Main()
    {
        var data = new List<ReportData>
        {
            new ReportData { Title = "Section 1", Content = "Lorem ipsum dolor sit amet." },
            new ReportData { Title = "Section 2", Content = "Consectetur adipiscing elit." },
            // Add more data as needed
        };
        // Convert data to JSON format
        string jsonData = JsonConvert.SerializeObject(data);
        // Create PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        // Embed JSON data into the PDF
        string htmlContent = $"<html><body><h4>{jsonData}</h4></body></html>";
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save or display the PDF as needed
        pdfDocument.SaveAs("Report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

En este ejemplo, la clase ReportData representa la estructura de datos de cada sección del informe. La lista data contiene instancias de esta clase.

Los datos se serializan en JSON utilizando JsonConvert.SerializeObject, y la cadena JSON resultante se incrusta en una plantilla HTML. A continuación, se utiliza IronPDF para convertir esta plantilla HTML en un documento PDF.

5.4. Salida

Serializador C# Json (Cómo funciona para desarrolladores) Figura 1

6. Conclusión

En conclusión, la serialización JSON en C# es una herramienta fundamental para el manejo del intercambio de datos en aplicaciones C#.

Tanto si trabaja con API web, ajustes de configuración o integración con sistemas en otros lenguajes, comprender y aprovechar la serialización JSON de C# puede mejorar enormemente la eficacia y flexibilidad de sus aplicaciones.

Cuando se trata de trabajar con PDFs en C#, IronPDF proporciona una solución robusta para crear, manipular y renderizar documentos PDF.

Al combinar la potencia de la serialización JSON de C# y IronPDF, los desarrolladores pueden integrar sin problemas datos de objetos C# en informes PDF, lo que abre nuevas posibilidades para generar contenidos PDF dinámicos y basados en datos en sus aplicaciones.

A medida que el mundo del desarrollo de software sigue evolucionando, el dominio de estas herramientas es cada vez más importante para crear soluciones sólidas e interoperables.

IronPDF ofrece unlicencia de prueba gratuitala traducción es una buena oportunidad para probar y familiarizarse con la biblioteca PDF de C#Precios de IronPDF con precios a partir de $749 para la versión lite.

Para saber cómo empezar a utilizar IronPDF, visite la página webDocumentación de IronPDF.

< ANTERIOR
Principios sólidos C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Forms (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,781,565 Ver licencias >