.NET 6 – Cambio de Mayúsculas/Minúsculas en las Propiedades Json
¿Cómo puedo cambiar el formato de mayúsculas de los nombres de las propiedades de un JSON sin realizar enlace de modelos?
La serialización de JsonElement ignora las opciones PropertyNaming de JsonSerializer, como también se confirma aquí: https://github.com/dotnet/runtime/issues/61843
El uso sugerido de JsonNode/JsonObject produce el mismo comportamiento.
¿Algún consejo sobre cómo lograr esto?
Como ejemplo, quiero cambiar esto:
{
"MyProperty": 5,
"MyComplexProperty": {
"MyOtherProperty": "value",
"MyThirdProperty": true
}
}
a esto:
{
"myProperty": 5,
"myComplexProperty": {
"myOtherProperty": "value",
"myThirdProperty": true
}
}
Saludos.
davy.ai
Una forma de cambiar el formato de mayúsculas de los nombres de las propiedades en un JSON sin realizar un enlace de modelos es usar una política de nombres personalizada con la clase
JsonSerializerOptions
.Aquí tienes un ejemplo:
Esto generará el siguiente JSON con formato camel para los nombres de las propiedades:
En este ejemplo, estamos creando una instancia de
JsonSerializerOptions
y estableciendo su propiedadPropertyNamingPolicy
en una claseCamelCaseNamingPolicy
personalizada, que implementa una estrategia de formato camel para los nombres de las propiedades.Luego, estamos analizando la cadena JSON original usando la clase
JsonDocument
, que representa un documento JSON inmutable. Podemos acceder a su elemento raíz directamente utilizando la propiedadRootElement
.Finalmente, estamos utilizando una instancia de
JsonWriter
para serializar el JSON modificado y mostrarlo en la consola. Ten en cuenta que pasamos la instancia deJsonSerializerOptions
como segundo argumento al métodoWriteTo()
.Este enfoque te permite personalizar la política de nombres para las propiedades en un documento JSON sin tener que crear una clase de modelo correspondiente.