什么时候使用@JsonProperty属性以及它用于什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

这个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上阅读关于这个注解我不知道什么时候需要使用它?

提问于
用户回答回答于

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

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

这正确解析/从JSON:

"Parameter":{
  "Name":"Parameter-Name",
  "Value":"Parameter-Value"
}
用户回答回答于

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

扫码关注云+社区