2

FlexJSON を使用して Java オブジェクトをシリアル化しようとしています。オブジェクトには、いくつかの最上位フィールドと結果と呼ばれるコレクションがあります。コレクション内からいくつかのプロパティのみが必要ですが、それらはすべてシリアル化されています。これが私が試しているコードです。

jsons = new JSONSerializer().include("results.ourID","results.name","results.fmtDistance","results.shows.showName","results.knownForNoHTML").exclude("results");

また、exclude で results.* も試しました。運が悪い-すべての結果フィールドがシリアル化されています。

4

2 に答える 2

0

http://flexjson.sourceforge.net/から

除外でのドット表記の使用は、インクルードと比較した場合、その使用に微妙な違いがあります。ネストされたフィールドを除外すると、残りの親オブジェクトが含まれることになります。したがって、exclude("head.rightEye.retinalScan") と言ったら、rightEye フィールドの retinalScan メンバーは除外されますが、rightEye フィールドと head フィールドの両方が含まれます。その理由は、retinalScan フィールドを除外するには、rightEye メンバーを含める必要があるためです。そうしなければ、そもそも retinalScan が含まれる予定がなかったため、何も変わりません。別の言い方をすれば、除外されるのは最後のフィールドだけであり、他のすべての親フィールドが含まれます。

これは、コレクションに Exclude のみを使用して、不要なものを示し、必要なものを自動的に含めることを示唆しています。

于 2015-03-15T23:19:05.153 に答える