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.

Por Equipo editorial de Camel Case ConverterPublicado 12 sept 2026Última revisió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.

JSON convertido
{
  "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.