JSON a Java
Converteix JSON en Java POJO, DTO o classes de model de manera ràpida i porta el codi generat directament al teu IDE. Tot el procés es fa localment al navegador.
Relacionats
Per a què serveix el convertidor de JSON a Java?
El convertidor de JSON a Java analitza l'estructura del JSON i la transforma automàticament en classes Java POJO estàndard. Això evita haver d'escriure manualment package, import, camps private, getters i setters repetitius.
És especialment útil a Spring Boot, Android, MyBatis o en integracions amb APIs externes, quan cal convertir una resposta d'exemple en un model Java reutilitzable. Els objectes imbricats passen a ser classes separades i els arrays es mapegen com a `List<T>`.
L'eina de GeekFormat admet Gson, Jackson, Fastjson, Lombok, Serializable, Builder, estratègies de nom de camps i descàrrega ZIP. El codi generat es pot afegir directament al projecte.
Casos d'ús
- Convertir JSON d'exemple d'una API Spring Boot en DTO i VO
- Crear JavaBean per a Android o clients Java a partir de respostes API
- Generar ràpidament models Jackson / Gson per integrar serveis externs
- Fer servir Lombok per tenir POJO més curts i amb menys boilerplate
- Descompondre JSON molt imbricat en classes Java més llegibles
- Descarregar totes les classes en ZIP i importar-les a l'IDE
Com usar-ho
- Enganxa el JSON a l'esquerra, carrega un exemple o importa un fitxer `.json` / `.txt`
- A Settings defineix el nom de la classe arrel, el package, la biblioteca d'anotacions, l'estratègia de noms i les opcions Lombok / Serializable
- Espera la generació automàtica o prem Convert per revisar les classes Java a la dreta
- Copia les classes necessàries o descarrega-ho tot amb Download ZIP
Característiques
- Suport per a diverses biblioteques d'anotacions: Gson, Jackson, Fastjson i Lombok
- Simplificació amb Lombok: activa `@Data`, `@Builder` i constructors per reduir boilerplate
- Estratègies de nom de camps: mantén el nom original o converteix snake_case a camelCase
- Generació automàtica de classes imbricades: els objectes interns del JSON es transformen en classes Java separades
- Arrays com a List<T>: el tipus dels elements es detecta automàticament
- Opcions de codi addicional: `toString`, `equals`, `hashCode`, Serializable i constructors
- Descàrrega ZIP de tots els fitxers: guarda diversos `.java` amb l'estructura de package corresponent
- Processament local al navegador: el parseig JSON, la generació de codi i l'empaquetat ZIP es fan sense servidor
Exemples de codi
Exemple per inferir el tipus Java a partir d'un valor JSON amb JavaScript
javascriptfunction toJavaFieldType(value) {
if (value === null) return 'Object';
if (Array.isArray(value)) return 'List<Object>';
if (typeof value === 'number') return Number.isInteger(value) ? 'Integer' : 'Double';
if (typeof value === 'boolean') return 'Boolean';
if (typeof value === 'string') return 'String';
if (typeof value === 'object') return 'NestedType';
return 'Object';
}
console.log(toJavaFieldType({ id: 1 }.id));
// => IntegerExemple de generació de camps Java des de JSON amb Python
pythonimport json
def java_type(value):
if value is None:
return 'Object'
if isinstance(value, bool):
return 'Boolean'
if isinstance(value, int):
return 'Integer'
if isinstance(value, float):
return 'Double'
if isinstance(value, str):
return 'String'
if isinstance(value, list):
return 'List<Object>'
if isinstance(value, dict):
return 'NestedType'
return 'Object'
sample = json.loads('{"name":"Alice","age":18}')
for key, value in sample.items():
print(f'private {java_type(value)} {key};')Exemple de POJO Lombok generat
javaimport lombok.Data;
import lombok.Builder;
@Data
@Builder
public class User {
private Integer id;
private String name;
}Preguntes freqients
Com puc convertir JSON a Java POJO?
Enganxa el JSON al panell esquerre i l'eina generarà les classes Java automàticament o en prémer Convert. Després pots copiar classes individuals o descarregar un ZIP amb tot el resultat.
Quines anotacions es poden generar?
Es poden generar `@SerializedName` per a Gson, `@JsonProperty` per a Jackson, `@JSONField` per a Fastjson i anotacions Lombok com `@Data` i `@Builder`.
Què passa amb els objectes JSON imbricats?
Cada objecte imbricat es converteix en una classe Java separada, i la classe pare conserva un camp d'aquell tipus. Això facilita treballar amb estructures profundes.
Els arrays es converteixen automàticament en List<T>?
Sí. Un array de cadenes es convertirà en `List<String>`, i un array d'objectes pot convertir-se en `List<User>`. Els arrays buits solen quedar com `List<Object>`.
Puc convertir snake_case a camelCase?
Sí. Si tries l'estratègia camelCase, `user_name` es convertirà en `userName`, i el nom original del JSON es pot mantenir dins de l'anotació.
Com queda el codi en mode Lombok?
Quan actives Lombok, l'eina genera classes més curtes amb `@Data`, `@Builder`, `@NoArgsConstructor` i `@AllArgsConstructor` en lloc de getters i setters manuals.
El resultat és útil per a Spring Boot?
Sí. Si selecciones Jackson o Lombok, les classes resultants encaixen bé com a DTO, models request/response i beans habituals dins de Spring Boot.
El meu JSON s'envia a cap servidor?
No. Tot s'executa localment al navegador, de manera que és més còmode treballar també amb JSON interns o sensibles.
Solució de problemes
Apareix l'error Invalid JSON
Comprova la sintaxi del JSON. Comes sobrants, cometes simples o claus sense cometes es poden corregir abans amb JSON Repair.
El tipus de l'array no s'infereix com espero
Els arrays buits o amb tipus barrejats sovint es converteixen en `List<Object>`. Per obtenir un resultat millor, posa un element representatiu al principi.
Els noms de camp continuen en snake_case
És possible que a Settings encara estigui seleccionat `asis`. Canvia-ho a camelCase i torna a generar el codi.
El codi Lombok no funciona a l'IDE
Afegeix la dependència de Lombok al projecte i activa annotation processing o el connector Lombok a l'IDE.
Un JSON gran genera massa classes
Per a estructures molt grans, és més còmode dividir el JSON en parts i generar-lo per etapes. Si cal, fes servir diversos models arrel.
Glossari
- POJO
- Plain Old Java Object, és a dir, un objecte Java normal sense dependència forta d'un framework, molt usat com a model de dades JSON.
- JavaBean
- Format clàssic de classe Java amb camps private, getters/setters i normalment constructor buit.
- DTO
- Data Transfer Object, classe usada per transportar dades entre capes, serveis o API.
- Lombok
- Biblioteca Java que genera getters, setters, builders i altre boilerplate a través d'anotacions.
- @JsonProperty
- Anotació de Jackson per mapar una clau JSON a un camp Java.
- @SerializedName
- Anotació de Gson per conservar el nom original de la clau JSON en mapar-la a un camp Java.
- Serializable
- Interfície marcador de Java que permet serialitzar un objecte per guardar-lo o transmetre'l.
- List<T>
- Tipus de col·lecció genèrica de Java que s'utilitza sovint per representar arrays JSON.
Mapatge entre tipus JSON i tipus Java
| Valor JSON | Tipus Java | Notes |
|---|---|---|
"Alice" | String | Cadena normal |
18 | Integer | Enter |
3.14 | Double | Número decimal |
[{...}] | List<User> | Array d'objectes → List<T> |
Guia per triar biblioteca d'anotacions
| Biblioteca | Anotació principal | Quan convé |
|---|---|---|
Jackson | @JsonProperty | Mapatge JSON per defecte a Spring Boot |
Gson | @SerializedName | Android i serialització lleugera |
Fastjson | @JSONField | Projectes Java que ja fan servir Fastjson |
Lombok | @Data / @Builder | POJO més curts i amb menys boilerplate |
Authoritative References
- Comprimir JSON
- CSV a JSON
- JSON a CSV
- JSON Diff
- JSON Escape / Unescape
- Aplanar JSON
- JSON Formatter
- Generador de JSON
- Consulta JSONPath
- Combinar JSON
- Reparació JSON
- Validador d'Esquema JSON
- Ordenar JSON
- JSON Stringify
- JSON a HTML
- JSON a Java
- JSON a Markdown
- JSON a SQL
- JSON a TOML
- JSON a TypeScript
- XML a JSON
- Converteix JSON a XML
- YAML a JSON
- JSON → YAML
- JSON a Python
- JSON a Go
- JSON a Rust
- JSON a Swift
- JSON a C#
- JSON a C++
- JSON a PHP