我想得到这样的输出:
<MyObj>field value</MyObj>
以下是格式化对象MyObj的java代码,我想在xml中隐藏字段但显示字段值。
public class MyObj {
private String filed;
public String getField() {
return filed;
}
public void setField(String value) {
this.filed = value;
}
public static void main(String[] args)
{
XStream xstream = new XStream(new DomDriver("UTF-8"));
MyObj obj = new MyObj();
obj.setField("field value");
xstream.toXML(obj, System.out);
}
}
但是输出是:
<MyObj>
<filed>field value</filed>
</MyObj>
最佳答案
这并非不可能。但是,请记住:这与 xstream 库的理念不一致,它对通常包含多个字段的 bean 进行操作。
你可以使用 ToAttributedValueConverter.class
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"filed"})
在类声明之前使用这个注解。
在我看来,更好的方法是使用其他东西,例如:
<MyObj filed="field value" />
这种形式的xml可以使用注解@XStreamAsAttribute来完成
示例代码:
public class MyObj {
@XStreamAsAttribute
private String filed;
public String getField() {
return filed;
}
public void setField(String value) {
this.filed = value;
}
public static void main(String[] args)
{
XStream xstream = new XStream(new DomDriver("UTF-8"));
MyObj obj = new MyObj();
obj.setField("field value");
xstream.toXML(obj, System.out);
}
}
此解决方案的优势在于,当您将来需要添加多个字段时,您将不需要对 xml 格式进行太多更改。
它也更快,因为这个解决方案不需要转换器。
关于java - xstream,如何隐藏隐藏类的文件名称但显示字段的值(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817115/