0

次の行を含む構成ファイルがあります:
exclude employee.dept.*
include student.dept.*

したがって、そのファイルの値に基づいて、シリアル化された JSON でこれらのプロパティを抑制するか含める必要があります。BeanPropertyFilter の実装を調べましたが、親ノードに関する詳細はわかりません。つまり、dept.deptCode をシリアル化していることしかわかりませんが、従業員または学生のいずれかである可能性がある dept ノードの親はわかりません。 . その機能を実現する方法はありますか?

4

1 に答える 1

1

おそらく最善の策は、ツリー モデルを使用することです。つまり、JSON をJsonNode次のように読み取ります。

JsonNode root = new ObjectMapper().readTree(jsonSource);

次に、フィルタリングを処理します。構成ファイルを使用してデータバインディングを使用しようとすることは、おそらくこれに取り組むのがより難しい方法です。

JsonNode必要に応じて、 と POJOの間で簡単に変換できることに注意してください。

MyObject ob = mapper.treeToValue(root, MyObject.class);
JsonNode tree = mapper.valueToTree(ob);

JSON ツリーを使用して変換と翻訳を実行できるようにしますが、POJO をソースまたはターゲットとして使用することもできます。

于 2013-09-06T05:41:16.693 に答える