Processamento de JSON em C# (.NET): guia completo com exemplos

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

Processamento JSON em C# (.NET): guia completo com exemplos



JSON (JavaScript Object Notation) é um dos formatos de troca de dados mais populares em aplicações web modernas, APIs e arquivos de configuração. No ecossistema .NET, os desenvolvedores têm acesso a ferramentas poderosas para trabalhar com JSON, que permitem serializar facilmente objetos para JSON e vice-versa. Neste artigo, vamos explorar detalhadamente duas abordagens principais: a biblioteca nativa System.Text.Json (recomendada para .NET Core 3.0+ e .NET 5+) e a popular biblioteca de terceiros Newtonsoft.Json (também conhecida como Json.NET).



1. System.Text.Json — o padrão moderno do .NET



A partir do .NET Core 3.0, a Microsoft apresentou sua própria biblioteca de alto desempenho para trabalhar com JSON — System.Text.Json. Ela é otimizada para consumo mínimo de memória e alta velocidade, tornando-se a escolha ideal para novos projetos.



1.1. Instalação e importação



A biblioteca já está incorporada no .NET 5/6/7/8/9, portanto não é necessária instalação adicional. Para usá-la, basta incluir o namespace:



using System.Text.Json;using System.Text.Json.Serialization;


1.2. Serialização e desserialização básicas



Vamos considerar um exemplo simples: serialização de um objeto para JSON e vice-versa.



// Definindo a classepublic class Person{    public string Name { get; set; }    public int Age { get; set; }    public bool IsEmployed { get; set; }}

// Serializaçãovar person = new Person { Name = "Иван", Age = 30, IsEmployed = true };string json = JsonSerializer.Serialize(person);Console.WriteLine(json); // {"Name":"Иван","Age":30,"IsEmployed":true}

// Desserializaçãovar deserializedPerson = JsonSerializer.Deserialize<Person>(json);Console.WriteLine(deserializedPerson.Name); // Иван


1.3. Trabalhando com atributos



O System.Text.Json suporta atributos para ajuste fino da serialização:



public class Product{    [JsonPropertyName("product_id")]    public int Id { get; set; }        [JsonIgnore]    public string InternalCode { get; set; }        [JsonConverter(typeof(JsonStringEnumConverter))]    public ProductCategory Category { get; set; }}

public enum ProductCategory{ Electronics, Clothing, Food}

var product = new Product { Id = 101, InternalCode = "SECRET", Category = ProductCategory.Electronics };

string json = JsonSerializer.Serialize(product);// {"product_id":101,"Category":"Electronics"}// InternalCode não foi incluído no JSON graças a [JsonIgnore]


1.4. Opções de serialização



Você pode configurar o comportamento do serializador através de JsonSerializerOptions:



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

string prettyJson = JsonSerializer.Serialize(person, options);Console.WriteLine(prettyJson);/* Saída:{ "name": "Иван", "age": 30, "isEmployed": true}*/


2. Newtonsoft.Json (Json.NET) — uma ferramenta testada pelo tempo



Antes do surgimento do System.Text.Json, o Newtonsoft.Json era o padrão de facto para trabalhar com JSON no .NET. Ele oferece configurações mais flexíveis e um amplo conjunto de funcionalidades, embora seja inferior em desempenho.



2.1. Instalação



Para usar o Newtonsoft.Json, é necessário instalar o pacote NuGet:



// Via Package Manager Console:Install-Package Newtonsoft.Json

// Ou via .NET CLI:dotnet add package Newtonsoft.Json


2.2. Trabalho básico



using Newtonsoft.Json;

public class Or

Recommendations