Trabalho com JSON em C#: parsing e serialização para .NET

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao Trabalho com JSON em C#



JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que se tornou o padrão para comunicação entre serviços web, arquivos de configuração e APIs. No ecossistema C# (.NET), trabalhar com JSON é uma das tarefas básicas que todo desenvolvedor encontra. Neste artigo, examinaremos detalhadamente como realizar a análise (desserialização) e serialização de dados em C#, usando tanto a biblioteca nativa System.Text.Json quanto a popular biblioteca de terceiros Newtonsoft.Json.



Você aprenderá como converter objetos C# para strings JSON e vice-versa, como trabalhar com estruturas aninhadas e quais armadilhas pode encontrar na prática. O material será útil tanto para iniciantes quanto para desenvolvedores experientes que desejam sistematizar seus conhecimentos.



Serialização de Objetos C# para JSON



Serialização é o processo de converter um objeto C# (ou outra estrutura de dados) em uma string no formato JSON. No .NET, existem várias abordagens para isso. Vamos analisar duas principais: System.Text.Json (recomendado pela Microsoft) e Newtonsoft.Json (legado, mas ainda amplamente utilizado).



Serialização usando System.Text.Json



A partir do .NET Core 3.0, a Microsoft introduziu sua própria biblioteca para trabalhar com JSON — System.Text.Json. Ela é caracterizada por alto desempenho e consumo mínimo de memória. O método JsonSerializer.Serialize() é usado para serialização.



using System;using System.Text.Json;

public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }}

class Program{ static void Main() { var person = new Person { Name = "Ivan Petrov", Age = 30, Email = "ivan@example.com" };

string json = JsonSerializer.Serialize(person); Console.WriteLine(json); }}


Resultado da execução:

{"Name":"Ivan Petrov","Age":30,"Email":"ivan@example.com"}


Serialização usando Newtonsoft.Json



A biblioteca Newtonsoft.Json (também conhecida como Json.NET) foi o padrão de facto por muito tempo. Ela oferece mais flexibilidade e configurações do que a solução nativa. Para usá-la, é necessário instalar o pacote NuGet Newtonsoft.Json.



using System;using Newtonsoft.Json;

public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }}

class Program{ static void Main() { var person = new Person { Name = "Maria Sidorova", Age = 25, Email = "maria@example.com" };

string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); }}


O resultado será semelhante, mas o Newtonsoft.Json por padrão usa a notação camelCase para nomes de propriedades, se configurado.



Configuração de Serialização



Em ambas as bibliotecas, você pode controlar o formato de saída: ignorar valores nulos, usar CamelCase, formatar JSON com indentação, etc.



Exemplo para System.Text.Json com configurações:

var options = new JsonSerializerOptions{    WriteIndented = true, // Saída formatada com indentação    PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // Notação CamelCase    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull // Ignorar nulos};

string json = JsonSerializer.Serialize(person, options);


Análise (Desserialização) de JSON em C#



Desserialização é o processo inverso: converter uma string JSON em um objeto C#. Isso é necessário ao receber dados de uma API, ler arquivos de configuração

Blogs

Book Recommendations