Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich Java-Klassen aus einem JSON-Schema in einem Maven-Projekt generieren?

Linda Hamilton
Freigeben: 2024-11-20 13:33:16
Original
798 Leute haben es durchsucht

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

Java-Klassen aus JSON mit Maven generieren

Problem:

Wie können Sie in einem Java-Maven-Projekt Java generieren? Quelldateien aus einem JSON-Schema? Zum Beispiel mit dem folgenden JSON:

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

Sie möchten Java-Klassen generieren wie:

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"));
    }
}
Nach dem Login kopieren

Lösung:

  1. JSON-Schema verwenden: Für eine robustere Lösung sollten Sie die Verwendung des JSON-Schemas in Betracht ziehen, das eine formale Definition der JSON-Struktur bereitstellt.
  2. jsonschema2pojo Maven Plugin :

    <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>
    Nach dem Login kopieren

    Setzen Sie sourceType auf json, wenn Ihre Quelle direkt JSON ist. Für JSON-Schemas entfernen Sie diese Zeile.

Zusätzliche Tipps:

  • JSON-Schema: Wenn Sie bereits Wenn Sie über JSON-Schemas verfügen, können Sie Java-Klassen generieren, indem Sie sie mithilfe der Klasse com.sun.codemodel.jsonschema.JsonUnboxer in org.jsonschema2pojo.model.Schema-Objekte konvertieren.
  • Benutzerdefinierte Codegenerierung: Verwenden Sie das Tool jsonschema2pojo direkt zum Generieren von Java-Code. Dies bietet Ihnen mehr Flexibilität, erfordert jedoch manuelle Änderungen, wenn sich das JSON-Schema ändert.

Das obige ist der detaillierte Inhalt vonWie kann ich Java-Klassen aus einem JSON-Schema in einem Maven-Projekt generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage