Convertir POJO a JSON
Convierte una instancia POJO (Plain Old Java Object) de Java a JSON usando Jackson, Gson o Moshi. Fragmentos de código listos para copiar, pegar y ejecutar, además de una herramienta para el proceso inverso cuando necesites reconstruir esa misma clase POJO.
Jackson — el valor por defecto en Spring
Spring Boot ships Jackson by default. ObjectMapper is thread-safe — reuse a single instance.
import com.fasterxml.jackson.databind.ObjectMapper;
private static final ObjectMapper MAPPER = new ObjectMapper();
public static String toJson(Object pojo) throws JsonProcessingException {
return MAPPER.writeValueAsString(pojo);
}
// Pretty-printed:
String pretty = MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(pojo);
Annotate fields with @JsonProperty("snake_case") when the JSON field name differs from the Java field. @JsonIgnore skips a field; @JsonInclude(NON_NULL) drops nulls.
Gson — dependencia mínima, ideal para Android
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
private static final Gson GSON = new GsonBuilder()
.serializeNulls() // include null fields
.setPrettyPrinting() // optional
.create();
public static String toJson(Object pojo) {
return GSON.toJson(pojo);
}
Use @SerializedName("json_field") on a Java field to override the JSON key. Mark fields transient to skip them.
Moshi — pensado para Kotlin, con codegen opcional
import com.squareup.moshi.Moshi;
import com.squareup.moshi.JsonAdapter;
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<User> adapter = moshi.adapter(User.class);
String json = adapter.toJson(user);
// Pretty:
String pretty = adapter.indent(" ").toJson(user);
Cómo se compara Convertir POJO a JSON con otras alternativas
| Concern | Jackson | Gson | Moshi |
|---|---|---|---|
| Default in Spring Boot | Jackson | Jackson | — |
| Smallest jar | Gson (~280KB) | Jackson (3 modules ~2MB) | — |
| Kotlin support | Moshi (best) | Jackson kotlin module | Gson (kludgy) |
| Annotation-free path | Jackson + naming strategy | Gson + FieldNamingPolicy | Moshi reflection adapter |
| Streaming API | JsonGenerator | JsonWriter | JsonWriter |
Preguntas frecuentes
¿Qué biblioteca debería usar para convertir un POJO a JSON?
Con Spring Boot, usa Jackson — ya viene incluida y el resto del stack la espera por defecto. Para Android o CLIs que necesitan pocas dependencias, elige Gson (jar más pequeño) o Moshi (mejor soporte para Kotlin). Las tres manejan el mismo POJO igual de bien; la diferencia está en qué tan bien encajan en tu ecosistema, no en su capacidad de conversión.
¿Cómo renombro un campo en el JSON de salida?
Jackson: <code class="font-mono">@JsonProperty("nombre")</code>. Gson: <code class="font-mono">@SerializedName("nombre")</code>. Moshi: <code class="font-mono">@Json(name = "nombre")</code>. Las tres anotaciones se colocan directamente sobre la declaración del campo.
¿Cómo omito los campos null o vacíos?
Jackson: aplica <code class="font-mono">@JsonInclude(JsonInclude.Include.NON_NULL)</code> a nivel de clase o de campo. Gson: los valores null se omiten por defecto — llama a <code class="font-mono">.serializeNulls()</code> en el builder si quieres conservarlos. Moshi: los valores null también se omiten por defecto, salvo que el adapter se configure con <code class="font-mono">.serializeNulls()</code>.
¿Por qué mi POJO no se serializa y solo muestra un objeto vacío {}?
Jackson necesita getters públicos o un constructor por defecto, junto con campos accesibles. Si usas Lombok, asegúrate de haber aplicado <code class="font-mono">@Getter</code> (o <code class="font-mono">@Data</code>). Con los records (Java 16+), los accessors se generan automáticamente.
¿Se puede convertir un POJO a JSON sin escribir código Java?
No del todo — la serialización a JSON depende de los valores reales que una instancia de Java mantiene en tiempo de ejecución, así que necesitas una JVM funcionando de verdad. Lo que sí puedes hacer sin escribir código es generar el POJO a partir de una muestra JSON con nuestra herramienta <a class="underline" href="/json-to-java">JSON to Java POJO</a>, y luego aplicar las recetas anteriores en tu proyecto.
¿Esta conversión provoca pérdida de datos?
No hay pérdida con los tipos primitivos ni con String. Algunos tipos de Java requieren un adapter específico: <code class="font-mono">LocalDateTime</code> (Jackson: registra el <code class="font-mono">JavaTimeModule</code>), la precisión de <code class="font-mono">BigDecimal</code> (Jackson: <code class="font-mono">USE_BIG_DECIMAL_FOR_FLOATS</code>) y los valores <code class="font-mono">enum</code> (configurables para usar <code class="font-mono">name()</code> u <code class="font-mono">ordinal()</code>).
¿Necesitas el proceso inverso?
Pega una muestra de JSON para obtener una clase Java POJO ya tipada — al estilo Jackson, Lombok o record, con las clases anidadas generadas automáticamente.
Abrir JSON to Java POJO →¿Qué es Convertir POJO a JSON?
Convertir un POJO a JSON es el proceso de tomar una instancia de Java — un Plain Old Java Object con campos, getters y setters — y serializarla como una cadena JSON. Las bibliotecas estándar para esto son Jackson (`ObjectMapper.writeValueAsString(obj)`), Gson (`new Gson().toJson(obj)`) y Moshi (`moshi.adapter(MyType.class).toJson(obj)`). Cada biblioteca inspecciona los campos del objeto mediante reflexión, aplica las anotaciones presentes (por ejemplo `@JsonProperty`, `@SerializedName`) y genera JSON válido.
Convertir POJO a JSON es una utilidad desarrollo gratuita de Zerethon Tools. Convierte una instancia POJO (Plain Old Java Object) de Java a JSON usando Jackson, Gson o Moshi. Fragmentos de código listos para copiar, pegar y ejecutar, además de una herramienta para el proceso inverso cuando necesites reconstruir esa misma clase POJO. Funciona totalmente en el navegador — sin registro, sin subida de archivos.
- Categoría
- Desarrollo
- Precio
- Gratis
- Privacidad
- Basado en el navegador
- Registro
- No necesario
Privacidad
Tus datos nunca salen de tu navegador, salvo que se indique explícitamente. Convertir POJO a JSON funciona completamente del lado del cliente — sin subida a servidor, sin registro de actividad, sin seguimiento de tu contenido.
Herramientas relacionadas
Formateador de JSON
Formatea, valida y minifica JSON en línea. Gratis, sin necesidad de registro — tus datos nunca salen de tu navegador.
Abrir herramientaFormateador de SQL
Formatea consultas SQL en línea — embellece el código para MySQL, PostgreSQL, SQLite, SQL Server, Oracle y BigQuery.
Abrir herramientaGenerador de UUID
Genera UUID en línea — v1, v4, v7 y Nil. Genera hasta 10.000 en lote. Gratis, sin registro.
Abrir herramientaGenerador de contraseñas
Genera contraseñas aleatorias fuertes y criptográficamente seguras. Personaliza la longitud y los conjuntos de caracteres — todo se ejecuta en tu navegador.
Abrir herramientaCrea, comparte y crece en Zerethon Social
Registro gratuito. Gana puntos, colecciona logros y conecta con creadores de todo el mundo.