gpt4 book ai didi

java - 无法使用 jsonschema2pojo 从 json 对象生成 DateTime 字段到 java pojo?

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:51 27 4
gpt4 key购买 nike

我有以下 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;
...
}

字段的类型被识别为字符串。是否可以直接从 json 对象生成正确的 DateTime 类型?或者我必须使用 json 架构来执行此操作?

最佳答案

这对我有用,请参阅下面的 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>

关于java - 无法使用 jsonschema2pojo 从 json 对象生成 DateTime 字段到 java pojo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37856256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com