首页 > Java > java教程 > 如何从 Maven 项目中的 JSON 模式生成 Java 类?

如何从 Maven 项目中的 JSON 模式生成 Java 类?

Linda Hamilton
发布: 2024-11-20 13:33:16
原创
884 人浏览过

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 Schema:要获得更强大的解决方案,请考虑使用 JSON Schema,它提供了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 模式,您可以通过使用以下命令将 Java 类转换为 org.jsonschema2pojo.model.Schema 对象来生成 Java 类com.sun.codemodel.jsonschema.JsonUnboxer 类。
  • 自定义代码生成:直接使用 jsonschema2pojo 工具生成 Java 代码,为您提供更大的灵活性,但如果 JSON schema 则需要手动更改变化。

以上是如何从 Maven 项目中的 JSON 模式生成 Java 类?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板