0
点赞
收藏
分享

微信扫一扫

自定义Jackson序列化 @JsonSerialize


自定义json序列化需要实现StdSerializer<T>或者JsonSerializer<T>。

我要序列化House这个类,加上注解,指定用于序列化的类

package com.xhx.json.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.xhx.json.serializers.HourseSerializer;

import java.util.Date;

@JsonSerialize(using = HourseSerializer.class)
public class Hourse {
private String location;
private Date buildDate;

public String getLocation() {
return location;
}

public void setLocation(String location) {
this.location = location;
}

public Date getBuildDate() {
return buildDate;
}

public void setBuildDate(Date buildDate) {
this.buildDate = buildDate;
}
}

 

package com.xhx.json.serializers;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import com.xhx.json.entity.Hourse;

import java.io.IOException;

public class HourseSerializer extends StdSerializer<Hourse> {

public HourseSerializer(){
super(Hourse.class);
}

protected HourseSerializer(Class<Hourse> t) {
super(t);
}

@Override
public void serialize(Hourse hourse, JsonGenerator generator, SerializerProvider provider) throws IOException {
generator.writeStartObject();
generator.writeFieldName("id");
generator.writeString("自定义");
generator.writeFieldName("location");
generator.writeString(hourse.getLocation());
generator.writeObjectField("buildDate",hourse.getBuildDate());
generator.writeEndObject();
}
}

 

测试:

自定义Jackson序列化 @JsonSerialize_@JsonSerialize

**实时内容请关注微信公众号,公众号与博客同时更新:程序员星星**

自定义Jackson序列化 @JsonSerialize_ide_02

 

举报

相关推荐

0 条评论