gpt4 book ai didi

java - XML 的注解 @JsonDeserialize 的等价物

转载 作者:行者123 更新时间:2023-11-30 10:17:51 26 4
gpt4 key购买 nike

我正在寻找一个注释来对 XML 响应执行与 JSON 响应相同的操作,即将日期转换为毫秒。对于 JSON 响应,我会这样做:

@JsonDeserialize(using = DateToMillisecsDeserializer.class)
private Long millisecs;

然后在类DateToMillisecsDeseriliazer中@Override反序列化来转换日期。

如何为 XML 响应完成完全相同的事情?

谢谢!

最佳答案

@XmlJavaTypeAdapter XML 注释大致相当于@JsonDeserialize@JsonSerialize一起为 JSON。

它指的是一个XmlAdapter类(class)这相当于 JsonDeserializerJsonSerializer一起上课。

示例:

XML元素之间的转换如

<date>2018-03-29T20:00:00Z</date>

和自 1970.0 以来具有毫秒数的 Long Java 字段可以这样完成:

@XmlElement(name = "date")
@XmlJavaTypeAdapter(DateMillisecsAdapter.class)
private Long millisecs;

注解指的是一个适配器类做实际的转换。方法 unmarshal 用于反序列化,marshal 用于序列化。

public class DateMillisecsAdapter extends XmlAdapter<String, Long> {

private DateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd'T'HH:mm:ssX");

@Override
public Long unmarshal(String s) throws Exception {
if (s == null)
return null;
return dateFormat.parse(s).getTime();
}

@Override
public String marshal(Long millisecs) throws Exception {
if (millisecs == null)
return null;
return dateFormat.format(new Date(millisecs));
}
}

关于java - XML 的注解 @JsonDeserialize 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49558339/

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