私が使うとき
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 を返します。
ここで何が間違っているのですか?
前もって感謝します...