SpringBoot配置Jackson处理字段


常用框架 阿里fastjson,谷歌gson等

JavaBean序列化为json

  • 性能:Jackson>FastJson>Gson>lib 同个结构
  • Jackson、Fastjson、Gson等库各有优缺点,各有自己的专长
  • 空间换时间,时间换空间

Jackson处理相关自动

  • 指定字段不返回:@JsonIgnore
  • 指定日期格式:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
  • 空字段不返回:@JsonInclude(JsonInclude.Include.NON_NULL)
  • 指定别名:@JsonProperty("TITLE")
package net.cyb.demo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class Video implements Serializable {
    private int id;
    //设置别名
    @JsonProperty("TITLE")
    private String title;
    private String summary;
    //指定字段不返回
    @JsonIgnore
    private int pricce;
    //空字段不返回
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String converImg;
    //指定日期格式
    @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
    private Date createTime;
    private List<Chapter> chapterList;

    public List<Chapter> getChapterList() {
        return chapterList;
    }

    public void setChapterList(List<Chapter> chapterList) {
        this.chapterList = chapterList;
    }

    public Video() {
    }

    public Video(int id, String title) {
        this.id = id;
        this.title = title;
        this.createTime = new Date();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public int getPricce() {
        return pricce;
    }

    public void setPricce(int pricce) {
        this.pricce = pricce;
    }

    public String getConverImg() {
        return converImg;
    }

    public void setConverImg(String converImg) {
        this.converImg = converImg;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "Video{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", summary='" + summary + '\'' +
                ", pricce=" + pricce +
                ", converImg='" + converImg + '\'' +
                ", createTime=" + createTime +
                ", chapterList=" + chapterList +
                '}';
    }
}

序列化操作

    public JsonData list() throws JsonProcessingException {
        List<Video> list=videoService.listVideo();
        ObjectMapper objectMapper=new ObjectMapper();
        String jsonStr=objectMapper.writeValueAsString(list);
        System.out.println(jsonStr);
        return JsonData.buildSuccess(list);
    }

反序列化

    public JsonData list() throws JsonProcessingException {
        List<Video> list=videoService.listVideo();
        ObjectMapper objectMapper=new ObjectMapper();
        String jsonStr=objectMapper.writeValueAsString(list);
        System.out.println(jsonStr);
        List<Video> list1 = objectMapper.readValue(jsonStr, List.class);
        System.out.println(list1);
        return JsonData.buildSuccess(list);
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM