逆シリアル化で使用される ObjectMapper にカスタム PropertyNamingStrategy を挿入できます。
実行時にフィールドを PropertyNamingStrategy に設定するだけで、それらをデフォルトの JsonPropertyName のようなもの (たとえば、propertyA、propertyB、propertyC) にマップできると仮定します。
public class MyNamingStrategy extends PropertyNamingStrategy {
String propertyAName, propertyBName, propertyCName;
public MyNamingStrategy(String propANm, String propBNm, String propCNm) {
this.propertyAName = propANm;
//finish
}
@Override
public String nameForField(MapperConfig<?> config, AnnotatedField field,
String defaultName) {
return convert(defaultName);
}
@Override
public String nameForGetterMethod(MapperConfig<?> config,
AnnotatedMethod method, String defaultName) {
return convert(defaultName);
}
@Override
public String nameForSetterMethod(MapperConfig<?> config,
AnnotatedMethod method, String defaultName) {
return convert(defaultName);
}
public String convert(String defaultName ){
return defaultName.replace("propertyA", propertyAName).replace( //finish
}
最後に、インスタンスを作成し、実行時に注入します。objectMapper.setNamingStrategy(myNamingStrategyInstance));
PropertyNamingStrategy の詳細については、この Cowtowncoder の投稿を参照してください。
Jackson 1.8: カスタム プロパティの命名戦略
またはこのドキュメント:
github.com/FasterXML/jackson-docs/wiki/PropertyNamingStrategy