ホームページ > Java > &#&チュートリアル > Maven プロジェクトで JSON スキーマから Java クラスを生成するにはどうすればよいですか?

Maven プロジェクトで JSON スキーマから Java クラスを生成するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-20 13:33:16
オリジナル
890 人が閲覧しました

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

Maven を使用した JSON からの Java クラスの生成

問題:

Java Maven プロジェクトで Java を生成するにはどうすればよいですか? JSON スキーマからのソース ファイル?たとえば、次の JSON があるとします:

{
  "firstName": "John",  
  "lastName": "Smith",  
  "address": {  
    "streetAddress": "21 2nd Street",  
     "city": "New York"
  }
}
ログイン後にコピー

次のような Java クラスを生成したいとします:

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"));
    }
}
ログイン後にコピー

解決策:

  1. JSON スキーマの使用: より堅牢なソリューションとしては、JSON 構造の正式な定義を提供する JSON スキーマの使用を検討してください。
  2. 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>
    ログイン後にコピー

    ソースが直接 JSON である場合は、sourceType を json に設定します。 JSON スキーマの場合は、この行を削除します。

追加のヒント:

  • JSON スキーマ: すでにJSON スキーマがある場合は、com.sun.codemodel.jsonschema.JsonUnboxer クラスを使用して org.jsonschema2pojo.model.Schema オブジェクトに変換することで Java クラスを生成できます。
  • カスタム コード生成: jsonschema2pojo ツールを直接使用して Java コードを生成すると、柔軟性が高まりますが、JSON スキーマが変更された場合は手動で変更する必要があります。

以上がMaven プロジェクトで JSON スキーマから Java クラスを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート