Maison >Java >javaDidacticiel >Comment puis-je générer des classes Java à partir de données JSON à l'aide du plugin Maven jsonschema2pojo ?

Comment puis-je générer des classes Java à partir de données JSON à l'aide du plugin Maven jsonschema2pojo ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-28 21:10:16536parcourir

How Can I Generate Java Classes from JSON Data Using the jsonschema2pojo Maven Plugin?

Pouvez-vous générer des classes Java à partir de JSON ?

En tant que développeur Java, vous pouvez rencontrer des situations dans lesquelles vous devez générer des fichiers source Java à partir de données JSON. Cela peut être une technique précieuse pour créer des objets de transfert de données (DTO) ou des POJO (Plain Old Java Objects) qui reflètent les structures JSON.

Voici comment y parvenir à l'aide du jsonschema2pojo plugin Maven :

Configuration du plugin Maven

  1. Ajoutez la configuration du plugin suivante à votre fichier pom.xml :
<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>
  • sourceDirectory : Spécifie l'emplacement de vos fichiers de schéma JSON.
  • targetPackage : définit le nom du package pour votre généré classes.
  • sourceType : Indique que la source est JSON (supprimez cette ligne si vous utilisez des schémas JSON).

Exemple de données JSON

Considérez les données JSON suivantes :

{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}

Java généré Classes

Lors de l'exécution du plugin Maven, les classes Java suivantes seront générées :

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"));
    }
}

Ces classes générées offrent un accès facile aux données dans la structure JSON, vous permettant de travailler avec le données de manière pratique et orientée objet.

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!

Déclaration:
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