Quand j'utiliseproblème avec XStream Marshalling pour revenir xml et JSON
new XStream().toXml(someObject);
il retourne suivant xml ...
<response>
<status>SUCCESS</status>
<isOwnershipVerified class="boolean">false</isOwnershipVerified>
</response>
et, quand je l'utilise
new XStream(new JsonHierarchicalStreamDriver()).toXml(someObject);
retourne suivant json ...
{"response": {
"status": "SUCCESS",
"isOwnershipVerified": {
"@class": "boolean""false"}
}}
Maintenant, puisque je veux complètement se débarrasser de l'attribut de classe (lisez-le pour ne pas l'alias avec quoi que ce soit d'autre, mais pour le supprimer) j'utilise le code suivant.
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();
qui donne follwing xml ...
<response>
<status>SUCCESS</status>
<isOwnershipVerified>false</isOwnershipVerified>
</response>
mais, quand je passe nouveau JsonHierarchicalStreamDriver() alors que la création d'objets xStream ci-dessus, il ne revient pas JSON. il renvoie le même xml montré ci-dessus.
Qu'est-ce qui ne va pas ici?
Merci à l'avance ...