jsonschema2pojo 是一个java的json转bean的工具包.由于json本身就很灵活和普及,使用它来生成java bean实体也比较方便.
使用方式:
插件方式
通过依赖自己实现bean的生成
- 插件方式
前置条件:
将 address.schema.json 文件放到 src/main/resources/schema 目录下.
在maven的pom.xml中增加插件配置:
<plugins>
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
增加maven编译target插件,不同jdk版本要修改configuration的版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
增加maven依赖:
commons-lang:用于生成equals, hashCode and toString方法
jackson-databind: 用于注解解析
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
然后执行 mvn package 命令,就可以获取到 target/java-gen/com/example/types/Address.java 文件.
- 嵌入方式
插件方式使用比较简单,但是需要预先放置需要转换的json文件,实际使用中这种方式不是很灵活.嵌入方式直接可以基于 包来自定义实现json来源和输出方式.可以灵活的支持实际的业务需求.
引入maven依赖
<dependency>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-core</artifactId>
<version>1.1.1</version>
</dependency>
进行转换定义:
JCodeModel codeModel = new JCodeModel();
// 获取实际需要转换的json文件
URL source = Example.class.getResource("/schema/required.json");
GenerationConfig config = new DefaultGenerationConfig() {
@Override
public boolean isGenerateBuilders() { // set config option by overriding method
return true;
}
};
SchemaMapper mapper = new SchemaMapper(new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());
mapper.generate(codeModel, "ClassName", "com.example", source);
codeModel.build(Files.createTempDirectory("required").toFile());
最终生成的文件在 target/classes/com/example/AddressSchema.java
文中主要基于maven方式,如果使用ant或者没有使用maven可以查阅参考资料,进行实现.
参考资料
https://github.com/joelittlejohn/jsonschema2pojo/wiki/Getting-Started
原文地址:https://www.cnblogs.com/chengmuyu/p/15474164.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。