我尝试使用FlexJSON来序列化java对象。该对象具有一些顶级字段和一个名为results的集合。从集合中我只想要一些属性,但所有属性都被序列化。这是我尝试的代码。
jsons = new JSONSerializer().include("results.ourID","results.name","results.fmtDistance","results.shows.showName","results.knownForNoHTML").exclude("results");
我也在排除中尝试了结果。*没有运气 - 所有结果字段都是序列化的。
答案 0 :(得分:2)
而不是.exclude("results");
,您应该使用.exclude("*");
。除了您指定的参数外,这将排除所有其他参数。
所以在这种情况下你的行应该是:
jsons = new JSONSerializer().include("results.ourID","results.name","results.fmtDistance","results.shows.showName","results.knownForNoHTML").exclude("*");
答案 1 :(得分:0)
来自http://flexjson.sourceforge.net/
将点符号与exlude一起使用会产生微妙的差异 与包括时相比。如果排除它隐含的嵌套字段 包含父对象的其余部分。所以,如果我说 排除(" head.rightEye.retinalScan&#34)。视网膜扫描成员 rightEye字段将被排除,但rightEye和head字段都将被排除 包括在内。原因是为了排除retinalScan字段 必须包括rightEye成员。如果你没有,那么它就没有了 改变任何东西,因为retinalScan不会被包括在内 第一名。换句话说,它只是最后一个字段 排除所有其他父字段。
这表明你应该只为收集品使用排除,表明你不想要的东西,然后它会自动包含你想要的东西。