У меня есть простой java класс, и я хочу сериализовать его для различных JSON выходов. Например:
Class User {
public int id;
public String name;
}
// 2 expected outputs
Version 1 (V1): {"id": "1", "first_name": "A"}
Version 2 (V2): {"id": "1", "name": "A"}
Я создал 2 пользовательских модуля для записи в JSON String, и они зарегистрированы в одном ObjectMapper, как показано ниже:
public class ItemSerializerModuleV1 extends SimpleModule {
public ItemSerializerModuleV1() {
super(NAME, VERSION_UTIL.version());
addSerializer(Item.class, new ItemSerializerV1());
}
}
public class ItemSerializerModuleV2 extends SimpleModule {
public ItemSerializerModuleV2() {
super(NAME, VERSION_UTIL.version());
addSerializer(Item.class, new ItemSerializerV2());
}
}
ObjectMapper mapper = new ObjectMapper();
mapper.registerModules(new ItemSerializerModuleV1(), new ItemSerializerModuleV2());
Однако, Я не Не знаю, как выбрать, какой модуль следует использовать для ObjectMapper, когда он записывает в JSON строку . Он выбирает только модуль V2 (последний зарегистрированный модуль) с кодом ниже, в то время как я также хочу написать как V1.
String serialized = mapper.writeValueAsString(myItem);