0

我遇到了从 Web 服务返回的不稳定数据的问题。当一个对象不存在时,我可能会在响应中返回一个布尔值。

快乐之路:

{
    "foo": {"msg": bar}
}

不愉快的路径:

{
    "foo": false
}

当返回布尔值时,我想将其存储为空 Foo 对象,但到目前为止,我还没有在 Jackson 中找到解决此问题的好方法。

到目前为止,我所做的主要是使用 @JsonProperty 注释将我的对象映射到什么 json 响应。

 //... Omitted code
 @JsonProperty("foo")
 public void setBar( Bar bar ) {
     this.bar = bar
 }


class Bar {
    String msg;
    // ... Getter and setter below ...
}
4

1 回答 1

1

我找到了解决方案。它不是很优雅,但不需要任何主要的代码重写。我能够在我的 foo 属性设置器中使用 JsonNode 对象。不过,我会看看我是否能想出更好的东西。

@JsonProperty("foo")
public void setBar( JsonNode barJsonNode) {
    if( barJsonNode.isBoolean() ){
       bar = null;
    } else {
        // Magic goes here
    }

}
于 2013-04-11T23:45:34.490 回答