Когда я использую
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>
но, когда я передаю новый JsonHierarchicalStreamDriver () во время создания объекта xStream выше, он НЕ возвращает json. он возвращает тот же XML, показанный выше.
Что здесь происходит не так?
Заранее спасибо ...