gpt4 book ai didi

java - JAX-RS 的双向字段值转换

转载 作者:行者123 更新时间:2023-12-02 13:36:59 25 4
gpt4 key购买 nike

Foo 类:

@Entity
@Table(name = "FOO")
@XmlRootElement(name = "doo")
@XmlAccessorType(XmlAccessType.FIELD)
public class Fooimplements Serializable {

@Column(name = "SOME_FIELD")
private String someField;

如果 someField 为“abc”,则编码的 XML 如下所示

<foo>
<someField>abc</someField>

是否有任何方法可以注释前后转换,以便仅出于 XML 编码目的,将 Java 值“abc”转换为“xyz.abc”(通过将“xyz.”连接到开头)字符串)并且当 XML 被解码时,值“xyz.abc”通过删除前 4 个字符转换为“abc”?如果重要的话,我正在使用 CXF。

最佳答案

可以通过 XmlAdapter 来实现:

public class CustomAdapter extends XmlAdapter<String, String>{

@Override
public String marshal(String v) throws Exception {
return "xyz." + v;
}

@Override
public String unmarshal(String v) throws Exception {
return v.replaceFirst("^xyz.", "");
}
}

并按如下方式使用它:

@XmlAccessorType(XmlAccessType.FIELD)
public class Foo implements Serializable {

@XmlJavaTypeAdapter(CustomAdapter.class)
private String someField;

...

}

或者,您可以使用 getter 和 setter 来实现此目的。

关于java - JAX-RS 的双向字段值转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938279/

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