DEV Community

Guilherme FGR
Guilherme FGR

Posted on • Edited on

EmbedIO como deserializar Json camelCase para objetos em PascalCase 😸

Durante a realização de um projeto na empresa onde trabalhava na data da publicação desse artigo, encontramos a necessidade de criar uma API dentro de um projeto Windows Forms, assim dando a possibilidade do navegador acessar o app desktop para configurá-lo e termos uma comunicação entre ambos.

Nesse contexto utilizamos o EmbedIO para solucionarmos esse problema e assim criarmos essa interação, entretanto, trabalhamos com objetos Json em camelCase pela convenção da Google.

O EmbendIO ainda não suporta a mesma configuração de serialização e deserialização do Newtonsoft sendo necessária a utilização do mesmo para podermos fazer essa configuração do EmbedIO.

Essa necessidade de usar o Newtonsoft veio após encontrar a seguinte issue no git deles, sendo assim tive que buscar por meios de como fazer e sendo um dev estágiario ainda sou muito apegado a buscar soluções no Google tendo a certeza que vou encontrar tudo, porém pela primeira vez na minha vida eu não encontrei nada. 😿

Após algumas tentativas e erro encontrei uma solução que é simples e prática e pode ser usada como um helper para uma aplicação que será usada multiplas vezes.

No site do EmbedIO não é mencionado que você pode trazer o body de uma requisição como uma string da seguinte forma:
var bodyAsString = await HttpContext.GetRequestBodyAsStringAsync();

Feito isso agora temos uma string que é fácilmente deserializada pelo Newtonsoft:
var config = Json.Deserialize<ConfigurationsRequestDto>(bodyAsString, JsonSerializerCase.CamelCase);

Passando o JsonSerializerCase.CamelCase como parâmetro e assim resolvendo o mistério do título! 😼

Top comments (0)