0

Jackson は、ライブラリ内の注釈付きオブジェクトをシリアル化します。シリアル化ごとに、どのフィールドとサブフィールドをシリアル化するかを Jackson に伝えたいと思います。

フィールド名のツリーがいくつかあり、それらのみを含めたい:

root
  |-sub_field_1
  |-sub_object_1
    |-sub_field_2
  |-sub_object_2

この機能がなければ、次のようになります。

{
  "sub_field_1":123,
  "sub_field_2":456,
  "sub_object_1":{
    "sub_field_1":123,
    "sub_field_2":456
  },
  "sub_object_2":{
    "sub_field_1":123,
    "sub_field_2":456
  }      
}

この機能を使用すると、次のようなものが得られます。

{
  "sub_field_1":123,
  "sub_object_1":{
    "sub_field_2":456
  },
  "sub_object_2":{
    "sub_field_1":123,
    "sub_field_2":456
  }      
}

異なるレベルの異なるフィールドが同じ名前を共有している可能性があるため、SimpleBeanPropertyFilter を使用できません。

ありがとう、

ジョン

4

1 に答える 1

0

達成したいことが特定のクラスから特定のフィールドを除外することである場合 (例: クラス Bar からのみ "foo" を除外する)、genson libraryを試すことができます。

Genson genson = new Genson.Builder().exclude("foo", Bar.class).create();
genson.serialize(yourObject);
于 2012-10-17T14:00:21.343 に答える