我有以下json对象:
{
"period": {
"startDate": "2016-09-01T14:39:13.884Z",
"endDate": "2021-09-01T14:39:13.884Z"
}
在我的maven插件配置中,我添加了
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.4.23</version>
<configuration>
<sourceType>json</sourceType>
</configuration>
<executions>
<execution>
<id>id</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
...
<dateTimeType>java.time.ZonedDateTime</dateTimeType>
</configuration>
</execution>
</executions>
</plugin>
我正在使用Java8。但是在我生成的java类中:
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"startDate",
"endDate"
})
public class Period {
@JsonProperty("startDate")
private String startDate;
@JsonProperty("endDate")
private String endDate;
...
}
字段&#39; type被识别为String。是否可以直接从具有正确DateTime类型的json对象生成?或者我必须使用json架构来执行此操作吗?
答案 0 :(得分:0)
这对我有用,请参阅下面的maven插件设置。我能看到的唯一有意义的区别是你使用json作为源,我使用的是json模式文件。您可以尝试创建这样的模式文件:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "My Title",
"type": "object",
"description": "The departure time info",
"properties": {
"scheduled": {
"type": "string",
"format": "date-time",
"required": true,
"description": "Scheduled time of departure."
},
.
.
.
}
这是我的maven插件配置:
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.4.32</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema/model</sourceDirectory>
<targetPackage>myPackage</targetPackage>
<useJodaDates>false</useJodaDates>
<useJodaLocalTimes>false</useJodaLocalTimes>
<useJodaLocalDates>false</useJodaLocalDates>
<includeJsr303Annotations>false</includeJsr303Annotations>
<includeAdditionalProperties>false</includeAdditionalProperties>
<dateTimeType>java.time.ZonedDateTime</dateTimeType>
<dateType>java.time.LocalDate</dateType>
<generateBuilders>true</generateBuilders>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>