在 json 序列化期间排除字段



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

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

我也尝试过结果。 没有运气 - 所有结果字段都被序列化。

而不是.exclude("results");你应该使用.exclude("*");。 这将排除除您指定的参数之外的所有其他参数。

所以在这种情况下,你的行应该是:

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

来自 http://flexjson.sourceforge.net/

使用带有 exludes 的点表示法在使用上有一个微妙的差异 与包含相比。如果排除嵌套字段,则意味着 包括父对象的其余部分。所以如果我说 exclude("head.rightEye.retinalScan").视网膜扫描成员 右眼场将被排除,但右眼和头部场都将 被包括在内。原因是为了排除视网膜扫描字段你 必须包括右眼成员。如果你没有,那么它就不会 更改任何内容,因为视网膜扫描不会包含在 第一名。换句话说,它只是最后一个字段 排除 包括所有其他父字段。

这表明您应该只对集合使用 Exclusion,指示您不想要的内容,然后它将自动包含您想要的内容。

相关内容

  • 没有找到相关文章