何时使用 @JsonProperty 属性以及它的用途是什么?

新手上路,请多包涵

这个 bean 的“状态”:

 public class State {

    private boolean isSet;

    @JsonProperty("isSet")
    public boolean isSet() {
        return isSet;
    }

    @JsonProperty("isSet")
    public void setSet(boolean isSet) {
        this.isSet = isSet;
    }

}

使用 ajax ‘success’ 回调通过网络发送:

         success : function(response) {
            if(response.State.isSet){
                alert('success called successfully)
            }

这里需要注解@JsonProperty 吗?使用它有什么好处?我想我可以删除这个注释而不会造成任何副作用。

https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations 上阅读此注释我不知道何时需要使用此注释?

原文由 blue-sky 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

这是一个很好的例子。我使用它来重命名变量,因为 JSON 来自 .Net 环境,其中属性以大写字母开头。

 public class Parameter {
  @JsonProperty("Name")
  public String name;
  @JsonProperty("Value")
  public String value;
}

这正确地解析到/从 JSON:

 "Parameter":{
  "Name":"Parameter-Name",
  "Value":"Parameter-Value"
}

原文由 OldCurmudgeon 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为 OldCurmudgeon 和 StaxMan 都是正确的,但这是一个带有简单示例的句子答案。

@JsonProperty(name),告诉 Jackson ObjectMapper 将 JSON 属性名称映射到带注释的 Java 字段名称。

 //example of json that is submitted
"Car":{
  "Type":"Ferrari",
}

//where it gets mapped
public static class Car {
  @JsonProperty("Type")
  public String type;
 }

原文由 grepit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题