0

ObjectMapper空のプロパティ ( ) を除外するように構成されているJackson 2.4.3 と を使用していますJsonInclude.Include.NON_EMPTYが、シリアル化中にカスタムも使用してPropertyFilterおり、一部のプロパティはこのフィルターによって除外されます (書き込まれません)。以前は空のプロパティの除外は正常に機能しますが、フィルタによってプロパティ値がスキップされた場合でも JSON に表示されます。最後に、非常に受け入れられない空のプロパティを持つ JSON ファイルがあります。

{"configurationPropertyList":{ 
"someProperty":{},
"someList":[{}, {}, {}]
}
}

これらの空のプロパティを取り除く方法はありますか?

また、最後に、JSON は非常に大きく複雑であり、パフォーマンス上の理由から、追加の作業を行わずに JSON を Jackson 自身で適切に生成する必要があることも付け加えておきます。できるだけ簡単な解決策を見つけようとしています。

4

1 に答える 1

2

ここでの問題は、フィルタリングが入力 Java オブジェクトに対して機能し、構築された JSON に対して機能しないことです。つまり、オブジェクトのコンテンツの多くはフィルター処理されますが (結果の JSON オブジェクトは空になります)、オブジェクト自体は空ではありません。

より良い処理を可能にする進行中の作業 (2.5 で完了する予定) があり、少なくともjava.util.Maps のフィルタリングのネストされた性質を処理する可能性があります。しかし現時点では、コンテンツをさらにトリミングするための自動化されたソリューションはありません。

于 2014-12-03T00:24:21.063 に答える