JSON vers classes Java (POJO ou Record)

Créez des POJO Java avec getters et setters ou des records Java 16 à partir de JSON, avec @JsonProperty de Jackson pour les clés inhabituelles et classes statiques imbriquées.

Les types imbriqués sont des classes imbriquées statiques. Les clés qui ne sont pas des noms Java valides reçoivent @JsonProperty (Jackson).

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Outils Connexes

Voir Tout

Qu'est-ce que JSON vers classe Java ?

Génère des classes de modèle Java à partir d'un exemple JSON, soit sous forme de POJO classiques avec champs privés, getters et setters, soit sous forme de records Java compacts. Les objets imbriqués deviennent des classes statiques imbriquées (ou des records imbriqués) à l'intérieur du type racine.

Comment utiliser JSON vers classe Java

  1. Collez un exemple JSON dans Entrée JSON (ou cliquez sur Charger un exemple / Ouvrir un fichier).
  2. Définissez le Nom du type racine (Root par défaut).
  3. Choisissez le Style de sortie : Classe avec getters/setters (Jackson) ou Record (Java 16 ou plus).
  4. Copiez le code Java généré ou utilisez Télécharger pour l'enregistrer dans un fichier.

Exemple

Entrée
{"id":1,"name":"A","tags":["x"]}
Sortie
import java.util.List;

public class Root {
    private long id;
    private String name;
    private List<String> tags;

    public long getId() { return id; }
    public void setId(long id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public List<String> getTags() { return tags; }
    public void setTags(List<String> tags) { this.tags = tags; }
}

Quand utiliser JSON vers classe Java

Utilisez-le pour amorcer des DTO pour du code Spring, Jackson ou Gson. Ajustez à la main les types comme les dates (LocalDate, Instant) et les enums, et répartissez les classes imbriquées dans des fichiers si votre base de code le préfère.

Comment fonctionne JSON vers classe Java

L'exemple est parcouru récursivement et chaque position collecte les types rencontrés. Les tableaux d'objets sont fusionnés en un seul type : une clé absente de certains éléments devient facultative, une clé nulle quelque part devient nullable, des entiers mêlés à des décimaux deviennent un type à virgule flottante, et tout autre mélange de types se rabat sur un type dynamique. Les objets imbriqués deviennent leurs propres types nommés (PascalCase de la clé, clés de tableau mises au singulier : orders → Order), avec des suffixes numériques en cas de collision de noms. La sortie Java utilise les primitives long/double/boolean pour les valeurs obligatoires et les types enveloppes Long/Double/Boolean pour les valeurs nullables ou facultatives, String, List<T> pour les tableaux et Object pour les valeurs dynamiques. Les noms de champs sont en camelCase ; lorsqu'ils diffèrent de la clé JSON, une annotation Jackson @JsonProperty("key") est ajoutée et l'import est inclus automatiquement.

Cas d'utilisation courants

  • Créer des DTO pour un client REST Spring Boot
  • Modéliser un message JSON pour des consommateurs Kafka
  • Générer des records pour une configuration immuable
  • Amorcer des jeux de test en Java

Questions Fréquentes

Ai-je besoin de Jackson ?

Seulement si certaines clés ne sont pas des noms Java valides ; @JsonProperty est alors utilisé. Sinon, les classes sont du Java simple et fonctionnent aussi avec Gson.

Pourquoi long plutôt que int ?

Les nombres JSON peuvent dépasser la plage de int (identifiants, horodatages). long évite le dépassement ; passez à int si vous savez que les valeurs sont petites.

Les records fonctionnent-ils avec Jackson ?

Oui, Jackson 2.12+ désérialise les records Java via leur constructeur canonique.

Explorer d'autres catégories