8

对于将具有未知字段的 json 反序列化为对象,可以使用 @JsonAnySetter。

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

我该如何处理这种情况?是否可以映射对象或者我必须将数据读入 JsonNode 或 Map?

4

3 回答 3

3

解组为自定义 java 类有其优点和缺点。它为您提供了不错的静态类型,但它很好,是静态的。的 javadoc@JsonAnySetter表明它类似于 JAXB 的@XmlAnyElement,但与 不同@XmlAnyElement的是,数据对象不包含命名信息,因此它是一条单行道。

如果您需要处理动态 JSON 流,那么您需要硬着头皮使用Mapor JsonNode

于 2010-05-04T08:39:50.300 回答
3

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

@JsonAnyGetter
public Map<String, String> getDynamicProperties() {
    return dynamicProperties; // a field like this exists
}
于 2018-07-12T08:49:44.867 回答
2

Jackson 有这个 RFE:http: //jira.codehaus.org/browse/JACKSON-292添加这样的功能。当你考虑它时,这是完全有道理的。

于 2010-05-15T16:24:59.600 回答