Outil Tool Kumar

JSON vers Java

Convertissez un exemple d'API en records Java pour Jackson. La racine est un record public qui contient les records imbriqués, ce qui permet d'enregistrer la sortie dans Root.java.

Utiliser cet outil

  1. Collez une réponse représentative, en incluant des enregistrements dont les champs diffèrent.
  2. Vérifiez la sortie générée et modifiez le nom racine si nécessaire.
  3. Copiez ou téléchargez le code, puis vérifiez les types par rapport à votre contrat d'API.

Exemple détaillé

Cette sortie provient du convertisseur intégré. Les deux prix des articles donnent un champ à virgule flottante ; les valeurs null et chaîne du champ note donnent un champ nullable.

Entrée

{
  "user-id": 42,
  "profile": {
    "city": "London",
    "created_at": "2026-10-14T09:00:00Z"
  },
  "items": [
    {
      "price": 12,
      "note": null
    },
    {
      "price": 12.5,
      "note": "gift"
    }
  ]
}

Sortie

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

public record Root(
    @JsonProperty("user-id") long userId,
    Profile profile,
    List<Item> items
) {
    public record Profile(String city, @JsonProperty("created_at") String createdAt) {}

    public record Item(double price, String note) {}
}

Utiliser le record avec Jackson

Enregistrez la sortie par défaut dans Root.java. Jackson construit les composants du record à partir des propriétés JSON. Un record imbriqué comme Item est accessible sous le nom Root.Item.

La sortie ne contient pas de déclaration package. Ajoutez celle de votre application. Enregistrez vos modules Jackson habituels si vous convertissez les dates en types java.time.

import com.fasterxml.jackson.databind.ObjectMapper;

Root model = new ObjectMapper().readValue(responseBody, Root.class);

Options et cas limites

  • Cette cible produit des records plutôt que des POJO modifiables avec des setters. Utilisez Java 16 ou une version ultérieure et une version de Jackson qui prend en charge les records, par exemple 2.12 ou une version ultérieure.
  • Les composants de record renommés ou dont le nom est réservé reçoivent @JsonProperty avec la clé d'origine. Les tableaux d'objets imbriqués deviennent List<Item>.
  • Les entiers utilisent long, les grands entiers qui dépassent la plage des entiers signés sur 64 bits utilisent BigInteger et les nombres décimaux utilisent double. Les types primitifs nullables utilisent des classes enveloppes comme Long.
  • Les champs dont les valeurs sont uniquement null ou de types hétérogènes utilisent Object. Les dates restent de type String. Utilisez BigDecimal et vérifiez les correspondances de types lorsque l'exactitude des calculs décimaux est nécessaire.

Privé par défaut

Votre document reste dans ce navigateur. Tool Kumar analyse, convertit et crée les téléchargements sur votre appareil, sans compte ni étape d'envoi au serveur.

JSON vers Java : questions fréquentes

Le convertisseur JSON vers Java génère-t-il des POJO ?
Il génère des records Java immuables. Si vous avez besoin de POJO Java 8, de setters ou d'un constructeur sans argument, adaptez la sortie ou utilisez un générateur pour ce style de modèle.
Quelle bibliothèque JSON est ciblée ?
Jackson. Le convertisseur importe @JsonProperty lorsqu'il doit conserver une clé qui diffère du nom d'un composant Java.
Puis-je enregistrer tous les types imbriqués dans un seul fichier ?
Oui. Le record racine public contient les records publics imbriqués. La sortie par défaut pour un objet peut donc être enregistrée dans Root.java.
Comment désérialiser le record ?
Utilisez ObjectMapper.readValue(responseBody, Root.class) avec la prise en charge des records par Jackson. Vérifiez la gestion des dates et les limites numériques de votre API.

Outils associés

JSON vers des data classes Kotlin, JSON vers C# et Générateur JSON Schema.