首頁  >  文章  >  Java  >  如何從 Maven 專案中的 JSON 模式產生 Java 類別?

如何從 Maven 專案中的 JSON 模式產生 Java 類別?

Linda Hamilton
Linda Hamilton原創
2024-11-20 13:33:16799瀏覽

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

使用Maven 從JSON 產生Java 類別

問題:

在Java Maven 專案中,如何產生來自JSON,如何產生來自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. 解決方案:
  2. 解決方案:

    解決方案:
    <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>

  3. 解決方案:

解>

使用JSON Schema
    :要獲得更強大的解決方案,請考慮使用JSON Schema,它提供了JSON 結構的正式定義。
  • jsonschema2pojo Maven 外掛程式
  • :
  • 如果您的來源直接是 JSON,請將 sourceType 設定為 json。對於 JSON 架構,請刪除此行。
其他提示:JSON 架構:如果您已經有JSON 架構,您可以透過使用以下指令將Java 類別轉換為org.jsonschema2pojo.model.Schema 物件來產生Java 類別com.sun.codemodel.jsonschema.JsonUnboxer 類別。 自訂程式碼產生:直接使用 jsonschema2pojo 工具產生 Java 程式碼,為您提供更大的靈活性,但如果 JSON schema 則需要手動變更變更。

以上是如何從 Maven 專案中的 JSON 模式產生 Java 類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn