gpt4 book ai didi

json - 将JSON REST Web服务中的日期序列化为ISO-8601字符串

转载 作者:行者123 更新时间:2023-12-03 12:56:30 29 4
gpt4 key购买 nike

我有一个使用JBoss AS 7.1的JAX-RS应用程序,并且POST / GET JSON和XML对象,其中包括日期(java.util.Date):

@XmlRootElement
@XmlAccessorType(XmlAccessField.FIELD)
public class MyObject implements Serializable
{
@XmlSchemaType(name = "dateTime")
private Date date;
...
}

当我在get方法上使用@Produce(“application / xml”)时,objets被序列化为XML,并且日期被转换为ISO-8601字符串(例如“2012-12-10T14:50:12.123 + 02:00” )。

但是,如果我在get方法上使用@Produce(“application / json”),则JSON对象中的日期是时间戳(例如“1355147452530”),而不是ISO-8601字符串。

如何配置JAX-RS实现(RESTEasy)以将JSON格式的日期序列化为ISO-8601字符串而不是时间戳?

谢谢您的回答。

注意:我还尝试使用自定义的JAX-RS提供程序对日期进行JSON序列化
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class CustomJsonDateProvider implements MessageBodyWriter<Date>
{
...
}

该提供程序似乎是由RESTeasy在JBoss启动时注册的:
[org.jboss.jaxrs] Adding JAX-RS provider classes: package.CustomJsonDateProvider
...
[org.jboss.resteasy.cdi.CdiInjectorFactory] No CDI beans found for class package.CustomJsonDateProvider. Using default ConstructorInjector.

但是它从来没有使用过!

最佳答案

我假设您的json解析器是Jackson,请尝试:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd,HH:00", timezone="CET")
public Date date;

(自Jackson 2.0起)

关于json - 将JSON REST Web服务中的日期序列化为ISO-8601字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803391/

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