首页 > Java > java教程 > 如何使用 jsonschema2pojo Maven 插件从 JSON 生成 Java 类?

如何使用 jsonschema2pojo Maven 插件从 JSON 生成 Java 类?

Barbara Streisand
发布: 2024-12-09 04:45:12
原创
705 人浏览过

How to Generate Java Classes from JSON Using the jsonschema2pojo Maven Plugin?

如何在 Maven 中从 JSON 生成 Java 类

从 JSON 生成 Java 源文件是对象到 JSON 映射的一项有价值的技术和数据序列化。在这种情况下,我们寻求创建类似于以下内容的 Java 类:

class Address {
  private JSONObject mInternalJSONObject;

  Address(JSONObject json) {
    mInternalJSONObject = json;
  }

  String getStreetAddress() {
    return mInternalJSONObject.getString("streetAddress");
  }

  String getCity() {
    return mInternalJSONObject.getString("city");
  }
}

class Person {
  private JSONObject mInternalJSONObject;

  Person(JSONObject json) {
    mInternalJSONObject = json;
  }

  String getFirstName() {
    return mInternalJSONObject.getString("firstName");
  }

  String getLastName() {
    return mInternalJSONObject.getString("lastName");
  }

  Address getAddress() {
    return new Address(mInternalJSONObject.getJSONObject("address"));
  }
}
登录后复制

要在 Maven 项目中实现这一生成,您可以利用 http://www.jsonschema2pojo.org 等综合工具。或者,您可以使用 Maven 的 jsonschema2pojo 插件:

<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 源,您可以指定 json。但是,如果您拥有实际的 JSON 模式,则不需要此行。

近年来,JSON 模式规范取得了显着进步,为定义结构规则提供了强大的机制。此外,jsonschema2pojo 项目提供了一个专用工具,可将 JSON 模式文档转换为 Java DTO 类。虽然仍在开发中,但它涵盖了 JSON 模式的重要部分。用户反馈对于其持续发展至关重要,您可以通过命令行或 Maven 插件提供。

以上是如何使用 jsonschema2pojo Maven 插件从 JSON 生成 Java 类?的详细内容。更多信息请关注PHP中文网其他相关文章!

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