Я переношу проект из Jackson в Json -B (Yasson v. 1.0.7), и приведенный ниже код предназначен для иллюстрации сценария, который происходит со мной.
У меня есть json файл следующим образом:
{
"response": {
"accessories": {
"accessory": [
{
"finance": "mandatory",
"type": "INDIVIDUAL"
},
{
"finance": "optional",
"type": "ORIGINAL"
},
{
"finance": "not",
"type": "TRADE"
}
]
}
}
}
Я переписываю один тест, как показано ниже:
@Test
public void testDeserialize() {
final JsonbConfig config = new JsonbConfig()
.withSerializers(new MySerializer())
.withDeserializers(new MyDeserializer());
final Jsonb jsonb = JsonbBuilder.create(config);
final InputStream data = this.getClass().getClassLoader().getResourceAsStream("response.json");
final Response obj = jsonb.fromJson(data, Response.class);
final Accessories accessories = obj.getAccessories();
assertThat(accessories.getAccessory().isEmpty(), is(false));
}
Код класса MyDeserializer:
public class MyDeserializer implements JsonbDeserializer<FType> {
@Override
public FType deserialize(JsonParser parser, DeserializationContext context, Type type) {
return FType.MANDATORY;
}
}
проблема в том, что когда я запускаю тест, десерализатор не вызывается, и свойство аксессуар объекта obj имеет значение null.
Как решить?