Novidades do .NET 9: gerando schemas JSON com JsonSchemaExporter

Renato Groffe
2 min readSep 23, 2024

--

Outra melhoria relacionada à serialização JSON no .NET 9 envolve um novo tipo: JsonSchemaExporter, uma opção que permite gerar uma string JSON descrevendo a estrutura de uma classe/tipo implementado na plataforma .NET. Trata-se de uma alternativa útil tanto na geração de documentações, quanto para o trabalho com ferramentas de Inteligência Artificial que dependam de schemas representando conjuntos de dados (caso do OpenAI).

Já abordei também novidades sobre a serialização JSON e outras melhorias sobre .NET 9/C# 13 em vários artigos neste blog, que foram agrupados em um guia gratuito:

.NET 9 - Guia de Referência: artigos, dicas, vídeos e exemplos de utilização

Partindo de uma estrutura composta formada pela classe TorneioEsportivo, que depende do tipo Edicao:

Através de uma chamada ao método GetJsonSchemaAsNode de JsonSchemaExporter (linha 14):

Será produzida como retorno a seguinte string JSON:

{
"type": [
"object",
"null"
],
"properties": {
"Nome": {
"type": [
"string",
"null"
]
},
"UltimasEdicoes": {
"type": "array",
"items": {
"type": [
"object",
"null"
],
"properties": {
"Ano": {
"type": "integer"
},
"PaisSede": {
"type": [
"array",
"null"
],
"items": {
"type": [
"string",
"null"
]
}
},
"EquipeVencedora": {
"type": [
"string",
"null"
]
}
}
}
}
}
}

Na imagem a seguir temos o resultado da execução desta aplicação de testes:

Clique nesta imagem para visualizar com uma melhor resolução

Este projeto já foi disponibilizado no GitHub:

https://github.com/renatogroffe/DotNet9-ConsoleApp-JsonSchemaExporter

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!

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet