Java · nombres JSON con Jackson
Jackson snake_case ↔ camelCase
Mantén propiedades Java en camelCase y traduce el JSON externo snake_case en el límite de serialización.
Usar @JsonNaming para un modelo o DTO
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UserProfile {
private String firstName;
private String avatarUrl;
}SnakeCaseStrategy mapea firstName a first_name sin una anotación en cada propiedad.
Usar ObjectMapper para una convención global
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
UserProfile profile = mapper.readValue(json, UserProfile.class);
String output = mapper.writeValueAsString(profile);PropertyNamingStrategies.SNAKE_CASE se aplica a nombres externos en serialización y deserialización.
Usar @JsonProperty para excepciones
public class UserProfile {
@JsonProperty("user_id")
private String userId;
@JsonProperty("display_name")
private String displayName;
}Los mappings explícitos sirven para unos pocos nombres externos que no siguen la regla global.
Consideraciones de producción
- Define claramente el nivel propietario de la convención: clase, ObjectMapper o campo.
- La estrategia cambia nombres de propiedades, no valores string dentro del JSON.
- Varios nombres externos que normalizan a una propiedad indican un problema de contrato API.
- Los ejemplos usan packages Jackson 2.x; revisa la migración de tu major version.
Probar el límite JSON online
Prueba objetos anidados, arrays, exclusiones, stop paths, prefijos, colisiones y diff de claves antes de implementar.
Suelta un archivo .json o elige uno de tu dispositivo
Los archivos se leen solo en tu navegador. Tamaño máximo: 5 MB.
{
"user_profile": {
"first_name": "Ada",
"created_at": "2026-09-12"
}
}El análisis, lectura de archivos, formato y conversión se ejecutan localmente en tu navegador. El JSON no se envía a un servidor de conversión.