码迷,mamicode.com
首页 > 其他好文 > 详细

jackson注解使用心得

时间:2016-08-26 18:25:45      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

   maven依赖:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>

直接上代码:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tqmall.grace.entity.rabbitmq.SaleLogBo;
import org.junit.Test;

import java.io.IOException;
import java.util.Date;

/**
 * Created by tom_plus on 16/8/26.
 */
public class JsonTest {
    @Test
    public void BoToJson() {
        SaleLogBo logBo = new SaleLogBo();
        logBo.setId(1);
        logBo.setBillNo("xj383833");
        logBo.setShippingName("国际快递");
        logBo.setGmtCreates("2016-08-09");
        logBo.setUpdateDate(new Date());
        ObjectMapper objectMapper = new ObjectMapper();
        try {
         String st = objectMapper.writeValueAsString(logBo);
            try {
              SaleLogBo bo = objectMapper.readValue(st, SaleLogBo.class);
                System.out.println(bo.getBillNo()+">>>>>");
                System.out.println("id:"+bo.getId());
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println(st);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

  

@Data
public class SaleLogBo implements Serializable{
    private Integer warehouseId;
    @JsonProperty("sale_id")
    private Integer id;
    private Integer payType;
    private Integer shippingId;
    private String shippingName;
    private String comment;
    private BigDecimal shippingFee;
    @JsonIgnore
    private String gmtCreates;
    private Integer creator;
    private Integer shopId;
    private Integer orderFlag;
    private String billNo;
    private String logisticsName;
    private Integer billStatus;
    @JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒",timezone="GMT+8")
    private Date updateDate;
}

 跑main函数运行结果:

billNo:xj383833
id:1
{"warehouseId":null,"payType":null,"shippingId":null,"shippingName":"国际快递","comment":null,"shippingFee":null,"creator":null,"shopId":null,"orderFlag":null,"billNo":"xj383833","logisticsName":null,"billStatus":null,"updateDate":"2016年08月26日 17时50分45秒","sale_id":1}

注解解析:

@JsonProperty,在把bo转成json的时候,如果要修改某些属性的名字,可以使用。

@JsonIgnore bo转成json的时候,进行序列化的时候忽略标记该注解的属性。

@JsonFormat 格式转化,例如@JsonFormat(pattern = "yyyy年MM月dd日 HH时mm分ss秒",timezone="GMT+8")

,其中要加上timezone="GMT+8",代表北京时间,否则将合北京时间差一天。

jackson注解使用心得

标签:

原文地址:http://www.cnblogs.com/tom-plus/p/5811353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!