• jackson注解使用心得


       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",代表北京时间,否则将合北京时间差一天。

  • 相关阅读:
    ecshop 浏览历史样式的修改
    ECSHOP任意页面调用商品属性
    ECShop url路径 商品详情页goods 商品列表页category 修改成你想要的
    ecshop模板增加新lbi库文件注意事项
    最完美带qq昵称qq头像的qq帐号登录ecshop插件
    ECSHOP2.72 前台调用 定单号,及收货人,快递号
    ecshop后台帐号密码忘记了怎么办?
    ECSHOP首页成功实现订单上下滚动
    ECSHOP 注册就送红包
    ECSHOP隐藏帮助中心文章页的评论功能方法
  • 原文地址:https://www.cnblogs.com/tom-plus/p/5811353.html
Copyright © 2020-2023  润新知