【发布时间】:2010-04-20 14:19:34
【问题描述】:
当我使用时
new XStream().toXml(someObject);
它返回以下 xml...
<response>
<status>SUCCESS</status>
<isOwnershipVerified class="boolean">false</isOwnershipVerified>
</response>
而且,当我使用时
new XStream(new JsonHierarchicalStreamDriver()).toXml(someObject);
它返回以下 json...
{"response": {
"status": "SUCCESS",
"isOwnershipVerified": {
"@class": "boolean""false"}
}}
现在,因为我想完全摆脱类属性(阅读它不是为了将它与其他任何东西混为一谈,而是要删除它)我使用以下代码。
XStream xStream = new XStream();
StringWriter writer = new StringWriter();
xStream.marshal(this, new PrettyPrintWriter(writer) {
@Override
public void addAttribute(final String key, final String value)
{
if (!key.equals("class"))
{
super.addAttribute(key, value);
}
}
});
return writer.toString();
提供以下 xml...
<response>
<status>SUCCESS</status>
<isOwnershipVerified>false</isOwnershipVerified>
</response>
但是,当我在上面创建 xStream 对象时传递 new JsonHierarchicalStreamDriver() 时,它不会返回 json。它返回上面显示的相同 xml。
这是怎么回事?
提前谢谢...
【问题讨论】:
标签: xml json class marshalling xstream