Novidades do .NET 9: melhorias na serialização JSON com IndentCharacter e IndentSize
.NET 9: melhorias na serialização JSON com IndentCharacter e IndentSize. Abordo agora o uso das novas propriedades IndentCharacter e IndentSize: estas são

Em um artigo anterior já apresentei uma das novidades previstas para o .NET↳.NET113 conteúdosNovidades do .NET 9 – o tipo genérico OrderedDictionaryDev (Back & Front) · dez 2024Novidades .NET 10: novas formas de uso do .NET CLIDev (Back & Front) · dez 2025Novidades do .NET 5: implementando um proxy reverso com YARP + ASP.NET 5Dev (Back & Front) · nov 2020Ver tudo em Dev (Back & Front) → 9 e que está relacionada à serialização de dados no formato JSON.
Neste novo artigo retomo esse tema, abordando agora o uso das novas propriedades IndentCharacter e IndentSize: estas são novas opções para definir o formato empregado na serialização a partir do tipo JsonSerializerOptions (namespace System.Text.Json).
.NET 9
Tomando como base a classe Localidade:
namespace ConsoleAppIndentationOptions.Models;
public class Localidade
{
public int Id { get; set; }
public string? NomeContinente { get; set; }
public string? NomePais { get; set; }
public string? NomeCidade { get; set; }
}
Instância
Ao criar uma instância de JsonSerializerOptions podemos informar:
- O caracter empregado para indentação na propriedade IndentCharacter, que será espaço ou Tab (‘/t’);
- Quantas vezes tal caracter deverá ser empregado em indentações, através da utilização da propriedade IndentSize.
É o que demonstra a listagem seguinte:
using ConsoleAppIndentationOptions.Models;
using System.Runtime.InteropServices;
using System.Text.Json;
Console.WriteLine("***** Testes com .NET 9 | Indentation options *****");
Console.WriteLine($"Versao do .NET em uso: {RuntimeInformation
.FrameworkDescription} - Ambiente: {Environment.MachineName} - Kernel: {Environment
.OSVersion.VersionString}");
var localidades = new Localidade[]
{
new () { Id = 1, NomeCidade = "Sao Paulo", NomePais = "Brasil", NomeContinente = "America do Sul" },
new () { Id = 2, NomeCidade = "Roma", NomePais = "Italia", NomeContinente = "Europa" }
};
var options = new JsonSerializerOptions
{
WriteIndented = true,
IndentCharacter = '\t',
IndentSize = 1
};
Console.WriteLine();
Console.WriteLine("*** Resultados da serializacao ***");
foreach (var localidade in localidades)
{
Console.WriteLine();
Console.WriteLine(JsonSerializer.Serialize(localidade, options));
}Executar
Ao executar essa aplicação por meio do Visual Studio 2022↳Leia tambémNovidades do .NET 8: coleções imutáveis com FrozenSetDev (Back & Front) · nov 2023 teremos como resultado:
Esse exemplo está disponível no GitHub:
https://github.com/renatogroffe/DotNet9-ConsoleApp-IndentationOptions
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!
LEIA TAMBÉM: Novidades do .NET 9: melhorias em criptografia com CryptographicOperations.HashData()







