Java 在json序列化期间排除字段

Java 在json序列化期间排除字段,java,json,flexjson,Java,Json,Flexjson,我正在尝试使用FlexJSON序列化java对象。该对象有一些顶级字段和一个名为results的集合。在集合中,我只需要几个属性,但所有属性都正在序列化。这是我正在尝试的代码 jsons = new JSONSerializer().include("results.ourID","results.name","results.fmtDistance","results.shows.showName","results.knownForNoHTML").exclude("results");

我正在尝试使用FlexJSON序列化java对象。该对象有一些顶级字段和一个名为results的集合。在集合中,我只需要几个属性,但所有属性都正在序列化。这是我正在尝试的代码

jsons = new JSONSerializer().include("results.ourID","results.name","results.fmtDistance","results.shows.showName","results.knownForNoHTML").exclude("results");
我还尝试了排除中的results.*。运气不佳-所有结果字段都已序列化。

来自

使用带有exludes的点表示法在使用上有细微的区别 与includes相比。如果排除嵌套字段,则意味着 包括父对象的其余部分。所以如果我说 排除(“头部、右眼、视网膜扫描”)。视网膜扫描成员 右眼视野将被排除,但右眼视野和头部视野都将被排除 包括在内。原因是为了排除您的视网膜扫描字段 必须包括右眼成员。如果你没有,那就没有了 更改任何内容,因为retinalScan不包含在 第一名。换句话说,这只是最后一个领域 排除所有其他父字段

这意味着您应该只对集合使用排除,指明您不想要的内容,然后它将自动包括您想要的内容。

而不是
.Exclude(“结果”)
您应该使用
.exclude(“*”)。这将排除除您指定的参数之外的所有其他参数

因此,在这种情况下,您的线路应该是:


jsons=new JSONSerializer()。包括(“results.ourID”、“results.name”、“results.fmtDistance”、“results.shows.showName”、“results.knownForNoHTML”)。排除(“*”

我的问题是我有一个非常旧的flexjson版本,当我升级代码(有结果。*)时,它没有实现文档中的所有内容。