gpt4 book ai didi

java - 在 Jersey 消费 OffsetDateTime

转载 作者:行者123 更新时间:2023-11-30 02:39:24 30 4
gpt4 key购买 nike

我正在尝试让我的服务器解析以下 JSON:

{"hardwareId":1,"registerTime":"2017-02-14T03:42:11.482Z","sensorId":1,"temperature":23.6}

registerTime 属性必须解析为 OffsetDateTime 实例:

@XmlRootElement
public class TemperatureRegister {

private int m_hardwareId;
private int m_sensorId;
private OffsetDateTime m_registerTime;
private double m_temperature;

public TemperatureRegister() {

}

public TemperatureRegister(OffsetDateTime p_registerTime, double p_temperature,
int p_hardwareId, int p_sensorId) {

if (p_registerTime == null) {
this.m_registerTime = OffsetDateTime.now(ZoneOffset.UTC);
}
this.m_registerTime = p_registerTime;
this.m_temperature = p_temperature;
this.m_hardwareId = p_hardwareId;
this.m_sensorId = p_sensorId;
}

...
}

这就是我的资源方法的定义方式:

@POST
@Path("/insert")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public TemperatureRegister addOne(TemperatureRegister p_register) {
m_mongoConnector.InsertOne(p_register);
return p_register;
}

由于某种原因,在上面的方法中,p_register参数总是这样:

TemperatureRegister [m_hardwareId=1, m_sensorId=1, m_registerTime=null, m_temperature=23.6]

它正确映射了所有内容,但 registerTimeOffsetDateTime。它始终为null。为什么这是唯一有问题的值?

我做错了什么吗?是否需要一些特殊配置来处理 OffsetDateTime`?

最佳答案

如果您使用 Jackson 作为 JSON 提供程序,则需要 jackson-datatype-jsr310依赖支持OffsetDateTime :

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.6</version>
</dependency>

您还想用 @JsonProperty 注释 TemperatureRegister 字段当您的类字段名称与 JSON 属性名称不匹配时:

public class TemperatureRegister {

@JsonProperty("hardwareId")
private int m_hardwareId;

@JsonProperty("sensorId")
private int m_sensorId;

@JsonProperty("registerTime")
private OffsetDateTime m_registerTime;

@JsonProperty("temperature")
private double m_temperature;

// Constructor, getters and setters omitted
}

关于java - 在 Jersey 消费 OffsetDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42218269/

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