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

2022-08-31 05:31:07

这个豆子“状态”:

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 上阅读有关此注释的信息,我不知道何时需要使用?


答案 1

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

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

这可以正确地解析到JSON/从JSON解析:

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

答案 2

我认为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;
 }

推荐