将无知字段的json进行 @jsonanysetter。

但是,如果我将这样的JSON阅读到我的对象中,修改一些已知字段并将其写回JSON怎么办?未知的属性将丢失。

如何处理此类案件?是否可以映射一个对象,或者我必须将数据读取到JSONNODE或地图中?

有帮助吗?

解决方案

将其分解为自定义Java类具有其优势和缺点。它为您提供了不错的静态打字,但是很好,静态。 Javadoc @JsonAnySetter 暗示它类似于Jaxb的 @XmlAnyElement, ,但与众不同 @XmlAnyElement, ,数据对象不包含命名信息,因此它是单向街道。

如果您需要处理动态的JSON流,则需要咬住子弹并使用 Map 或者 JsonNode.

其他提示

杰克逊有这个RFE: http://jira.codehaus.org/browse/jackson-292 添加这样的功能。当您考虑它时,完全有意义。

现在可以使用 @JsonAnyGetter 提供允许序列化动态属性的方法:

@JsonAnyGetter
public Map<String, String> getDynamicProperties() {
    return dynamicProperties; // a field like this exists
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top