私はjackson 1.9を使用しており、そのObjectMapper
クラスを使用してコンテンツをシリアライズおよびデシリアライズしています。そのため、シリアル化中にすべてのキーを特定の形式に変換し、逆シリアル化中に元に戻すPropertyNamingStrategyを使用しています。
public class LongNameShortNameNamingStrategy extends PropertyNamingStrategyBase {
@Override
public String translate(String propertyName) {
System.out.println("Translate: " + propertyName);
String shortName = null, longName = null;
longName = LongNameShortNames.getLongName(propertyName);
if (longName != null){
return longName;
}
shortName = LongNameShortNames.getShortName(propertyName);
if (shortName != null){
return shortName;
}
return propertyName;
}
}
ただし、これにより、次のようなjsonが得られます。
オブジェクト マッパー:---> JSON 文字列:
{
"ContentInstance" : {
"st" : 1,
"cs" : 10,
"con" : "Sid"
}
したがって、myNamingStrategy
は json ルート要素には適用されません。その名前は、シリアル化中に短い名前に変換されません。
ルート要素にも同様のシリアライズおよびデシリアライズ戦略を適用するにはどうすればよいですか??