Jackson使用

属性只读无法修改

如果你使用Jackson和requestbody,在参数类需要忽略的字段上加上注解 jsonproperty access readonly就可以。

1
2
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String number;

追加属性

单独配置
1
2
3
4
5
6
7
8
public class User {
private String number;

@JsonProperty("customNumber")
private String getCustomNumber(){
return "no"+number;
}
}

格式化的时候,会多出一个customNumber的属性

序列化器

根据当前字段名称,写入另外一个字段,一般用于字典的文本描述写入

1
2
3
4
5
6
7
8
9
public class DictSerializer extends JsonSerializer<String> {
@Override
public void serialize(String o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
// 当前字段名称
String currentName = serializerProvider.getGenerator().getOutputContext().getCurrentName();

jsonGenerator.writeStringField(currentName+"Ext", o+"扩展");
}
}