jackson的使用

@JsonIgnore:排除json序列化,将它标注在属性上不会进行json序列化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",locale = "zh"):进行日期格式化
@JsonInclude(JsonInclude.Include.NON_NULL):当属性值为null时则不进行json序列化
@JsonProperty("uname"):属性设置别名

package boot.bean;
import com.fasterxml.jackson.annotation.*;
import java.util.Date;

public class User {
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty("uname")
    private String name;
    @JsonIgnore
    private int age;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;

    public User(String name, int age, Date birthday) {
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                '}';
    }
}

 

json定制序列号
package boot.config;

import boot.bean.User;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.jackson.JsonComponent;
import org.springframework.boot.jackson.JsonObjectDeserializer;
import org.springframework.boot.jackson.JsonObjectSerializer;

import java.io.IOException;

@JsonComponent//使用该注解,User类上的json注解将无效
public class UserJsonCustom {
    public static class Serializer extends JsonObjectSerializer<User> {

        @Override
        protected void serializeObject(User user, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeObjectField("name",user.getName());
            jgen.writeObjectField("age",50);

        }
    }

    public static class Deserializer extends JsonObjectDeserializer<User> {

        @Override
        protected User deserializeObject(JsonParser jsonParser, DeserializationContext context, ObjectCodec codec, JsonNode tree) throws IOException {
            User user = new User();
            user.setName(tree.findValue("name").asText());
            return user;
        }
    }
}

 



posted @ 2023-01-15 21:56  Mr_sven  阅读(17)  评论(0编辑  收藏  举报