Java 在json序列化期间排除字段
我正在尝试使用FlexJSON序列化java对象。该对象有一些顶级字段和一个名为results的集合。在集合中,我只需要几个属性,但所有属性都正在序列化。这是我正在尝试的代码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");
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版本,当我升级代码(有结果。*)时,它没有实现文档中的所有内容。