Jak usunąć atrybuty class class = "Something" w Xstream.Xstream: usuwanie atrybutu klasy
Używam Xstream z adnotacjami
Jak usunąć atrybuty class class = "Something" w Xstream.Xstream: usuwanie atrybutu klasy
Używam Xstream z adnotacjami
Rzeczywiście problem nie jest tak jasno sformułowany, jak powinien. Domyślam się, że używasz niestandardowej kolekcji lub używasz pola typu interfejsu, dla którego XStream musi przechowywać aktualną klasę.
W drugim przypadku można po prostu użyć aliasu:
xstream.alias("field name", Interface.class, ActualClassToUse.class);
Zobacz http://markmail.org/message/gds63p3dnhpy3ef2 więcej szczegółów.
Czy jest dostępna alternatywa wiosennego oxm? – coffeMug
Czy możesz podać przykładowy wynik? Myślę, że zwykle dzieje się tak podczas korzystania z kolekcji. Nie widząc wyjścia, mój najlepszy przypuszczenie to, że trzeba zarejestrować aliasy:
xstream.alias("blog", Blog.class);
Zobacz http://x-stream.github.io/alias-tutorial.html więcej pokrycia dogłębne. Ponownie wklej niektóre próbki wyjściowe.
użyć coś tego rodzaju, aby usunąć klasy atrybutu całkowicie zamiast aliasing ją na coś innego:
private String generateResponse(final XStream 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();
}
czytam swój kod i znaleźć, jeśli klasa nie jest mapper.defaultImplementationOf(fieldType)
, doda atrybut domyślny klasy dla ciebie, chyba że nazwa atrybutu klasy ma wartość NULL;
Więc ustaw może usunąć class =”coś” atrybuty
xstream.aliasSystemAttribute(null, "class");
Czy jest dostępna alternatywa wiosennego oxm? – coffeMug
Ten atrybut jest widoczny, przynajmniej, gdy nie jest to oczywiste, które stosuje się w klasie. Użytkowanie interfejsu jest przykładem. W takich sytuacjach możesz wypróbować:
xStream.addDefaultImplementation(YourDefaultImplementation.class, YourInterface.class);
.
Gdzie otrzymujesz dokładnie class = "..."? Czy możesz opublikować wygenerowany kod XML? –
http://markmail.org/message/t33x7hswlwsk766i – Cherian