gpt4 book ai didi

java - 如何将 java.time.Duration 映射到 XML

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:30 25 4
gpt4 key购买 nike

我有一个数据类型为:

private java.time.Duration duration

类属性是这样设置的:

object.setDuration(Duration.ofSeconds(2));

我想将我的对象编码为 xml,以便持续时间看起来像那样

<duration>PT2S</duration>

定义ISO 8601

据我了解,Jaxb 使用 default binding data types喜欢:

xsd:duration    javax.xml.datatype.Duration

但在我的 bean 中我不想包含任何 xml 依赖项。

我看到了编写包装器的可能性,我可以在其中添加 XmlAdapter , 但我不知道如何将 java.time.Duration 转换为 javax.xml.datatype.Duration

最佳答案

我是通过四处搜索 API 发现的。这是我的代码:

import java.time.Duration
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.datatype.DatatypeFactory;

public class DurationAdapter extends XmlAdapter<javax.xml.datatype.Duration, Duration>
{
@Override
public Duration unmarshal(javax.xml.datatype.Duration v) throws Exception {
return Duration.parse(v.toString());
}

@Override
public javax.xml.datatype.Duration marshal(Duration v) throws Exception {
return DatatypeFactory.newInstance().newDuration(v.toString());
}
}

关于java - 如何将 java.time.Duration 映射到 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27314093/

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