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注解使用心得的更多相关文章

  1. [Java] jackson注解

    Jackson(http://jackson.codehaus.org)库是基于java语言的开源json格式解析工具.相对于javajson解析的其他库,诸如json-lib.gson包,Jacks ...

  2. Jackson注解学习参考(转)

    转:http://wong-john.iteye.com/blog/1753402 以下内容摘录.翻译自https://github.com/FasterXML/jackson-annotations ...

  3. jackSon注解– @JsonInclude 注解不返回null值字段

    @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO { private String orderId; @Js ...

  4. jackson 注解的使用

    在实体对象上添加 @JsonAutoDetect , 表明对该实体对象序列化成json串. @JsonAutoDetect public class User{ private int id; pri ...

  5. Jackson注解简介

    1.注解: @JsonInclude(JsonInclude.Include.NON_NULL) 1.如果放在属性上,如果该属性为NULL则不参与序列化 ;2.如果放在类上,那对这个类的全部属性起作用 ...

  6. @Transactional注解使用心得

    配置基于注解的声明式事务: ...配置tx,aop的命名空间 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:a ...

  7. @GeneratorValue与@GenericGenerator注解使用心得

    参考博主们的 http://blog.csdn.net/tianxiezuomaikong/article/details/64930151

  8. 【JSON 注解】JSON循环引用1-----Jackson常用注解介绍 eq:@JsonIgnore

    循环引用:实体A与实体B有关系,A中有B作为字段,B中有A作为一个字段.查询A对象后,将A对象转化为JSON格式数据时,会因为序列化过程中导致A中有B字段,B字段中又有A,这样就引起了循环引用的问题! ...

  9. json解析jackson ,Gson,等知识总结

    相关资料链接: Java构造和解析json数据的两种方法详解 java解析json Android网络之数据分析---使用Google Gson 解析Json数据 使用jackson在java中处理j ...

随机推荐

  1. 倾力总结40条常见的移动端Web页面问题解决方案

    1.安卓浏览器看背景图片,有些设备会模糊.   用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率 ...

  2. 数据库模型设计PowerDesigner

    Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程.利用Power Designer可以制作数据流程图.概 ...

  3. python tornado 入门

    #!/usr/bin/env python # coding:utf-8 import textwrap import tornado.httpserver import tornado.ioloop ...

  4. Delete,Update与LEFT Join

    UPDATE:UPDATE A SET ApproverID=NULL FROM [SH_MaterialApplyBuyBill] A LEFT JOIN [SH_MaterialApplyBuyB ...

  5. linux 文件权限、类型、命名规则

    文件权限 -rwxr-x--t        文件类型 用户权限 组权限 其他用户权限 umask是一个掩码,设置文件的默认权限,会屏蔽掉不想授予该安全级别的权限,从对象的全权权限中减掉:对文件全权权 ...

  6. js 获取元素宽高

    可以用源生js的.offsetHeight .offsetWidth属性 document.getElementById("temp_form").offsetHeight // ...

  7. oracle中lead和lag函数 (转载)

    解决上一户和下一户问题这两个函数,是偏移量函数,其用途是:可以查出同一字段下一个值或上一个值. lead(col_name,num,flag) col_name是列名:num是取向下第几个值:flag ...

  8. jQuery treetable【表格多重折叠树功能及拖放表格子元素重新排列】

    今天有个表格需求做到多重折叠子元素功能,仔细想了下实现原理, 1.在html中,把父子节点的关系写在自定义属性,但对于节点是否有孩子(hasChild),是否是最后一个节点(isLastOne),是否 ...

  9. xamarin真的是一个鸡肋吗?

    team leader 极力推荐 Xamarin,于是下载下来体验了一把,并没有觉得用它来开发 App 会爽到哪里去,可能对于从事 C#开发的开发人员来说是个福音吧.于是看看别人对其评价如何,现粘贴如 ...

  10. VR技术的高速发展阶段

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 在虚拟现实技术的高速发展阶段,与虚拟现实密切相关的计算机图形学.数字图像处理.传感技术等学科迅速发展,从 ...