1

私は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 ルート要素には適用されません。その名前は、シリアル化中に短い名前に変換されません。

ルート要素にも同様のシリアライズおよびデシリアライズ戦略を適用するにはどうすればよいですか??

4

0 に答える 0