Maison > Java > javaDidacticiel > le corps du texte

Comment générer des classes Java à partir d'un schéma JSON dans un projet Maven ?

Linda Hamilton
Libérer: 2024-11-20 13:33:16
original
798 Les gens l'ont consulté

How can I generate Java classes from a JSON schema in a Maven project?

Générer des classes Java à partir de JSON à l'aide de Maven

Problème :

Dans un projet Java Maven, comment générer du Java fichiers sources à partir d'un schéma JSON ? Par exemple, étant donné le JSON suivant :

{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}
Copier après la connexion

Vous souhaitez générer des classes Java comme :

class Address  {
    JSONObject mInternalJSONObject;
     
    Address (JSONObject json){
        mInternalJSONObject = json;
    }
     
    String  getStreetAddress () {
        return mInternalJSONObject.getString("streetAddress");
    }
    
    String  getCity (){
        return mInternalJSONObject.getString("city");
    }
}

class Person {        
    JSONObject mInternalJSONObject;
    
    Person (JSONObject json){
        mInternalJSONObject = json;
    }
    
    String  getFirstName () {
        return mInternalJSONObject.getString("firstName");
    }
    
    String  getLastName (){
        return mInternalJSONObject.getString("lastName");
    }
    
    Address getAddress (){
        return Address(mInternalJSONObject.getString("address"));
    }
}
Copier après la connexion

Solution :

  1. Utiliser le schéma JSON : pour une solution plus robuste, envisagez d'utiliser le schéma JSON, qui fournit une définition formelle de la structure du JSON.
  2. plugin jsonschema2pojo Maven :

    <plugin>
        <groupId>org.jsonschema2pojo</groupId>
        <artifactId>jsonschema2pojo-maven-plugin</artifactId>
        <version>1.0.2</version>
        <configuration>
            <sourceDirectory>${basedir}/src/main/resources/schemas</sourceDirectory>
            <targetPackage>com.myproject.jsonschemas</targetPackage>
            <sourceType>json</sourceType>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    Copier après la connexion

    Définissez sourceType sur json si votre source est directement JSON. Pour les schémas JSON, supprimez cette ligne.

Conseils supplémentaires :

  • Schéma JSON : Si vous avez déjà avez des schémas JSON, vous pouvez générer des classes Java en les convertissant en objets org.jsonschema2pojo.model.Schema à l'aide de la classe com.sun.codemodel.jsonschema.JsonUnboxer.
  • Génération de code personnalisé : Utilisez l'outil jsonschema2pojo directement pour générer du code Java, ce qui vous offre plus de flexibilité mais nécessite des modifications manuelles si le schéma JSON change.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal