这个bean 'State‘:
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上读到这个注释时,我不知道什么时候需要使用它?
发布于 2012-09-25 21:15:08
这里有一个很好的例子。我使用它来重命名变量,因为JSON来自.Net
环境,在该环境中,属性以大写字母开头。
public class Parameter {
@JsonProperty("Name")
public String name;
@JsonProperty("Value")
public String value;
}
这将正确解析到JSON或从JSON解析:
"Parameter":{
"Name":"Parameter-Name",
"Value":"Parameter-Value"
}
发布于 2013-10-18 01:20:08
我认为OldCurmudgeon和StaxMan都是正确的,但这里有一句话的答案和简单的例子。
@JsonProperty(名称),告诉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;
}
发布于 2014-11-06 04:43:46
好吧,现在值得了.除了通常的序列化和反序列化之外,JsonProperty还用于为变量指定getter和setter方法。例如,假设您有一个如下的有效负载:
{
"check": true
}
和一个反序列化程序类:
public class Check {
@JsonProperty("check") // It is needed else Jackson will look got getCheck method and will fail
private Boolean check;
public Boolean isCheck() {
return check;
}
}
然后,在这种情况下,需要JsonProperty注释。但是,如果类中也有一个方法
public class Check {
//@JsonProperty("check") Not needed anymore
private Boolean check;
public Boolean getCheck() {
return check;
}
}
https://stackoverflow.com/questions/12583638
复制相似问题