Код: Выделить всё
public class Gadget {
@JacksonXmlProperty
private Color color;
:
:
}
Код: Выделить всё
Код: Выделить всё
public class ColorSerializer extends StdSerializer {
public ColorSerializer() {
super(Color.class);
}
@Override
public void serialize(Color color, JsonGenerator gen, SerializerProvider provider) throws IOException {
if (!(gen instanceof ToXmlGenerator)) {
throw new UnsupportedOperationException("ColorSerializer can only be used with XML serialization");
}
ToXmlGenerator xmlGen = (ToXmlGenerator) gen;
xmlGen.setNextName(new QName(null, "r"));
xmlGen.setNextIsAttribute(true);
xmlGen.writeNumber(color.getRed());
xmlGen.setNextIsAttribute(true);
xmlGen.writeNumberField("g", color.getGreen());
xmlGen.setNextIsAttribute(true);
xmlGen.writeNumberField("b", color.getBlue());
xmlGen.setNextIsAttribute(true);
xmlGen.writeNumberField("a", color.getAlpha());
}
}
Но Я НЕ могу понять, как десериализовать это обратно в экземпляр java.awt.Color. Я получаю исключение, говорящее, что этот атрибут "
Код: Выделить всё
r
Есть идеи, как это сделать?
Подробнее здесь: https://stackoverflow.com/questions/793 ... attributes