0

当我使用

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。

这里出了什么问题?

提前致谢...

4

1 回答 1

0

我想到了...

而不是使用

new PrettyPrintWriter(writer) ...

利用

new JsonHierarchicalStreamWriter(writer)

事情将按预期开始工作......:D

于 2010-04-20T14:49:36.227 回答