【问题标题】:Problem with XStream Marshalling to return xml and jsonXStream Marshalling 返回 xml 和 json 的问题
【发布时间】: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


    【解决方案1】:

    我想通了……

    而不是使用

    new PrettyPrintWriter(writer) ...
    

    使用

    new JsonHierarchicalStreamWriter(writer)
    

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

    【讨论】:

      猜你喜欢
      • 2011-08-07
      • 1970-01-01
      • 2014-03-17
      • 2014-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      相关资源
      最近更新 更多