一部の JSON の場合:
{
"id":123,
"name":"Test",
"sub_object":{
"sub_field_1":1,
"sub_field_2":2,
"sub_field_array":[
{
"array_field_1":true,
"array_field_2":false
},
{
"array_field_1":false,
"array_field_2":true
}
],
"sub_sub_object":{
"field_1":"me",
"field_2":"myself",
"field_3":"i",
}
}
}
フィールド名のツリーのようなリストを適用したい。これは、おそらく JSONPath で表現できます。
root
|-id
|-sub_object
|-sub_field_2
|-sub_field_array
|-array_field_1
|-sub_sub_object
次に、次のようなものが返されます。
{
"id":123,
"sub_object":{
"sub_field_2":2,
"sub_field_array":[
{
"array_field_1":true
},
{
"array_field_1":false
}
],
"sub_sub_object":{
"field_1":"me",
"field_2":"myself",
"field_3":"i",
}
}
}
アイデアは、一部のフィールド階層について、出力されるフィールドを制限したいということです。
オブジェクトのフィールドに注釈を付けたライブラリを介してこれを行っていますが、ライブラリを変更できません。階層はシリアル化ごとに行われるため、できたとしてもそれほど重要ではありません。現在、オブジェクトを JsonGenerator の writeObject メソッドに渡していますが、それはすべてを返します。
一部のサブオブジェクトはフィールド名を共有する場合があるため、SimpleBeanPropertyFilter を作成して一連の名前のみをシリアル化するほど単純ではありません。
前もって感謝します、
ジョン