Ir para o conteúdo do rodapé
AJUDA DO .NET

Serializador JSON em C# (Como funciona para desenvolvedores)

No âmbito do desenvolvimento de software moderno, os formatos de intercâmbio de dados desempenham um papel crucial ao permitir a comunicação entre diversos sistemas. Um desses formatos que ganhou imensa popularidade é o JSON (JavaScript Object Notation).

Os desenvolvedores C# frequentemente trabalham com dados JSON e, para facilitar essa interação, o C# oferece uma ferramenta poderosa: o serializador JSON do C#.

Neste artigo, discutiremos o que é a serialização JSON e suas aplicações. Além disso, tentaremos compreender o processo de serialização JSON com a ajuda de um exemplo utilizando a biblioteca IronPDF para PDF .

1. Compreendendo o Serializador JSON em C

O serializador JSON em C# é um componente que converte objetos C# em sua representação JSON e vice-versa. Esse processo, conhecido como serialização e desserialização, é essencial na troca de dados entre um aplicativo C# e sistemas ou serviços externos.

Considere um cenário em que um aplicativo de comércio eletrônico precisa enviar informações de produtos para um aplicativo móvel. Em vez de enviar objetos C# brutos, que o aplicativo móvel pode não entender, o aplicativo pode usar um serializador JSON para converter os objetos em um formato JSON universalmente reconhecido e facilmente utilizável por diversas plataformas.

1.1. Exemplos de serialização JSON em C

Vamos analisar um exemplo simples para ilustrar o conceito. Suponha que temos uma classe C# representando uma pessoa:

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
$vbLabelText   $csharpLabel

Usando a serialização JSON em C#, podemos converter uma instância dessa classe em uma string 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)
$vbLabelText   $csharpLabel

A string JSON resultante seria {"Name":"John Doe","Age":30} , representando o objeto pessoa em formato JSON.

2. Tipos de serializador JSON em C# e exemplos de código

C# oferece diversas maneiras de realizar a serialização JSON, cada uma com seu próprio conjunto de recursos e casos de uso. Aqui estão alguns métodos de serialização JSON comumente usados ​​em C#:

2.1. DataContractJsonSerializer

Este serializador faz parte do namespace System.Runtime.Serialization.Json e utiliza os atributos do Data Contract para controlar o processo de serialização.

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));
        using (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));
        using (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))
		Using 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 Using
	End Sub
End Class
$vbLabelText   $csharpLabel

2.2. JavaScriptSerializer

Localizado no namespace System.Web.Script.Serialization , este serializador faz parte do ASP.NET e fornece uma maneira simples de serializar objetos para o 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
$vbLabelText   $csharpLabel

2.3. Json .NET (Newtonsoft.Json)

Json .NET (Newtonsoft.Json) é uma biblioteca de terceiros amplamente utilizada para serialização JSON em C#. Oferece flexibilidade, desempenho e um conjunto abrangente de recursos.

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
$vbLabelText   $csharpLabel

3. Quando usar o serializador JSON em C

Saber quando usar a serialização JSON em C# é crucial para uma troca de dados eficiente e sem erros. Aqui estão alguns cenários comuns em que o uso de um serializador JSON é benéfico:

3.1. APIs da Web

Ao desenvolver APIs web que se comunicam com aplicações cliente, o JSON é um formato preferido para troca de dados devido à sua natureza leve e legível para humanos.

3.2. Configurações

Armazenar e ler configurações em formato JSON é uma prática comum. A serialização JSON simplifica o processo de conversão dessas configurações entre objetos C# e JSON.

3.3. Interoperabilidade

Ao integrar aplicações C# com sistemas desenvolvidos em outras linguagens, o JSON fornece um formato de dados independente de linguagem, garantindo uma interoperabilidade perfeita.

4. O que é uma string JSON desserializada?

A desserialização é o processo de converter uma string JSON de volta em seu objeto C# equivalente. Este é um passo crucial ao trabalhar com dados recebidos de fontes externas, como APIs da web ou dados JSON armazenados.

Em C#, os mesmos serializadores usados ​​para serialização geralmente podem ser empregados para desserialização. Vamos ilustrar a desserialização com um exemplo simples usando Json .NET (Newtonsoft.Json):

using System;
using Newtonsoft.Json;

public class Person
{
    public string Name { 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 Person
{
    public string Name { 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 Person
	Public Property Name() 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
$vbLabelText   $csharpLabel

5. Apresentando o IronPDF em C

Agora que temos um sólido entendimento da serialização JSON em C#, vamos explorar a integração da biblioteca IronPDF C# , uma poderosa biblioteca para trabalhar com PDFs em C#. O IronPDF simplifica o processo de geração e manipulação de documentos PDF, tornando-se uma excelente opção para cenários que envolvem PDFs.

5.1. IronPDF em poucas palavras

IronPDF é uma biblioteca C# que permite aos desenvolvedores criar, manipular e renderizar documentos PDF em seus aplicativos. Seja para gerar faturas, relatórios ou qualquer outro tipo de documento PDF, o IronPDF oferece uma solução prática e repleta de recursos.

O recurso de conversão de HTML para PDF do IronPDF é um destaque, mantendo seus layouts e estilos. Converte conteúdo da web em PDFs, adequados para relatórios, faturas e documentação. Você pode converter arquivos HTML, URLs e strings HTML em PDFs com facilidade.

using IronPdf;

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

        // 1. Convert an 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 an 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 a 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 an 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 an 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 a 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 an 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 an 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 a URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Para começar a usar o IronPDF , primeiro você precisa instalar o pacote NuGet do IronPDF :

Install-Package IronPdf

Após a instalação, você pode usar a biblioteca IronPDF para executar diversas tarefas relacionadas a PDFs em sua aplicação C#.

5.2. Usando o serializador JSON em C# com o código IronPDF

Agora, vamos explorar um exemplo prático de como a serialização JSON em C# pode ser perfeitamente integrada ao IronPDF. Considere um cenário em que você possui uma coleção de dados que precisa ser apresentada em um relatório em PDF.

Os dados são inicialmente armazenados como objetos C# e precisam ser convertidos para o formato JSON antes de serem incorporados ao documento PDF usando o IronPDF.

5.3. Código de exemplo

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

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 a 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;
using System.Collections.Generic;

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 a 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");
    }
}
Imports IronPdf
Imports Newtonsoft.Json
Imports System.Collections.Generic

Public Class ReportData
	Public Property Title() As String
	Public Property Content() As String
End Class

Public Class Program
	Shared Sub Main()
		Dim data = New List(Of ReportData) From {
			New ReportData With {
				.Title = "Section 1",
				.Content = "Lorem ipsum dolor sit amet."
			},
			New ReportData With {
				.Title = "Section 2",
				.Content = "Consectetur adipiscing elit."
			}
		}

		' Convert data to JSON format
		Dim jsonData As String = JsonConvert.SerializeObject(data)

		' Create a PDF document using IronPDF
		Dim renderer = New ChromePdfRenderer()

		' Embed JSON data into the PDF
		Dim htmlContent As String = $"<html><body><h4>{jsonData}</h4></body></html>"
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

		' Save or display the PDF as needed
		pdfDocument.SaveAs("Report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Neste exemplo, a classe ReportData representa a estrutura de dados para cada seção do relatório. A lista de dados contém instâncias dessa classe.

Os dados são serializados em JSON usando JsonConvert.SerializeObject , e a string JSON resultante é incorporada em um modelo HTML. O IronPDF é então usado para converter esse modelo HTML em um documento PDF.

5.4. Saída

Serializador JSON em C# (Como funciona para desenvolvedores) Figura 1

6. Conclusão

Em conclusão, a serialização JSON em C# é uma ferramenta fundamental para lidar com a troca de dados em aplicações C#.

Seja trabalhando com APIs da web, configurações ou integrando-se a sistemas em outras linguagens, entender e aproveitar a serialização JSON em C# pode aumentar significativamente a eficiência e a flexibilidade de seus aplicativos.

Quando se trata de trabalhar com PDFs em C#, o IronPDF oferece uma solução robusta para criar, manipular e renderizar documentos PDF.

Ao combinar o poder da serialização JSON em C# com o IronPDF, os desenvolvedores podem integrar dados de objetos C# em relatórios PDF de forma transparente, abrindo novas possibilidades para gerar conteúdo PDF dinâmico e orientado a dados em seus aplicativos.

À medida que o mundo do desenvolvimento de software continua a evoluir, dominar essas ferramentas torna-se cada vez mais importante para a construção de soluções robustas e interoperáveis.

O IronPDF oferece uma licença de avaliação gratuita , que é uma ótima oportunidade para testar e se familiarizar com a biblioteca PDF em C#. Os preços do IronPDF começam em $799 para a versão lite.

Para aprender como começar a usar o IronPDF, visite a Documentação do IronPDF .

Perguntas frequentes

Como posso converter HTML para PDF em C#?

Você pode usar o método RenderHtmlAsPdf do IronPDF para converter strings HTML em PDFs. Você também pode converter arquivos HTML em PDFs usando o RenderHtmlFileAsPdf .

O que é serialização JSON em C# e por que ela é importante?

A serialização JSON em C# é o processo de conversão de objetos C# em sua representação JSON, o que é crucial para a troca de dados entre aplicativos e sistemas externos. Isso a torna uma ferramenta essencial para cenários como APIs da web e configurações.

Quais são os principais serializadores JSON disponíveis em C#?

Os principais serializadores JSON em C# são DataContractJsonSerializer, JavaScriptSerializer e Json.NET (Newtonsoft.Json), cada um oferecendo recursos exclusivos adequados para diferentes casos de uso.

Como posso incorporar dados JSON em documentos PDF em C#?

Você pode serializar objetos C# em formato JSON e, em seguida, usar o IronPDF para incorporar esses dados JSON em documentos PDF, aproveitando seus recursos de renderização HTML.

Posso converter strings JSON de volta em objetos C#? Como?

Sim, você pode converter strings JSON de volta em objetos C# por meio de um processo chamado desserialização. O Json.NET (Newtonsoft.Json) oferece recursos robustos para desserializar JSON em objetos C#.

Qual o papel do IronPDF na geração de PDFs a partir de JSON em C#?

O IronPDF permite que desenvolvedores criem PDFs renderizando conteúdo HTML, que pode incluir dados JSON. Essa integração é útil para gerar PDFs dinâmicos e orientados a dados.

Como faço para instalar uma biblioteca PDF em um projeto C#?

Você pode instalar uma biblioteca PDF em um projeto C# usando o Gerenciador de Pacotes NuGet para adicionar o pacote de biblioteca relevante, como o IronPDF, ao seu projeto.

Como a serialização JSON melhora a interoperabilidade entre sistemas?

A serialização JSON aprimora a interoperabilidade ao fornecer um formato de dados independente de linguagem, permitindo que diferentes sistemas, potencialmente desenvolvidos em várias linguagens, troquem dados perfeitamente.

Quais são os benefícios de usar o Json.NET para serialização JSON em C#?

O Json.NET (Newtonsoft.Json) oferece flexibilidade, desempenho e um conjunto abrangente de recursos, tornando-o a escolha preferida para serialização JSON em aplicativos C#.

Qual é um exemplo prático de uso do IronPDF com serialização JSON em C#?

Um exemplo prático é a conversão de objetos C# para o formato JSON e o uso do IronPDF para incorporar esse JSON em um documento PDF, criando assim um relatório dinâmico que pode ser facilmente compartilhado e impresso.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim