fastxml Jackson annotation使用小记
dependencies:
compile("com.fasterxml.jackson.core:jackson-annotations")
compile("com.fasterxml.jackson.core:jackson-core")
compile("com.fasterxml.jackson.core:jackson-databind")
examples:
public class JacksonSerializerTest {
@Test
public void testJsonIgnoreProperties() throws IOException {
ObjectMapper mapper = new ObjectMapper();
PersonDTO dto = new PersonDTO();
dto.setAge(18);
dto.setName("Jack");
dto.setId(1);
String jsonStr = mapper.writeValueAsString(dto);
PersonDTO dto1 = mapper.readValue(jsonStr, PersonDTO.class);
assertTrue(dto1.getName() == null);
String jsonStr1 = "{\"id\":1, \"name\":\"Jack\"}";
PersonDTO dto2 = mapper.readValue(jsonStr1, PersonDTO.class);
assertTrue(dto2.getName() == null);
}
@Test
public void testJsonIgnore() throws IOException {
ObjectMapper mapper = new ObjectMapper();
PersonDTO dto = new PersonDTO();
dto.setId(2);
dto.setMale(true);
String jsonStr = mapper.writeValueAsString(dto);
PersonDTO dto1 = mapper.readValue(jsonStr, PersonDTO.class);
assertTrue(dto1.getMale() == false);
}
@Test
public void testCustomSerializer() throws IOException {
ObjectMapper mapper = new ObjectMapper();
PersonDTO dto = new PersonDTO();
dto.setId(3);
dto.setWeight(Double.valueOf(65.371));
String jsonStr = mapper.writeValueAsString(dto);
PersonDTO dto1 = mapper.readValue(jsonStr, PersonDTO.class);
assertTrue(dto1.getWeight().equals(Double.valueOf(65.4)));
}
@Test
public void testJsonNaming() throws IOException {
String nickName = "JK.";
ObjectMapper mapper = new ObjectMapper();
PersonDTO dto = new PersonDTO();
dto.setId(4);
dto.setNickName(nickName);
String jsonStr = mapper.writeValueAsString(dto);
PersonDTO dto1 = mapper.readValue(jsonStr, PersonDTO.class);
assertTrue(dto1.getNickName().equals(nickName));
}
@JsonIgnoreProperties(value = {"name", "age"})
@Data
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public static class PersonDTO {
private int id;
private String name;
private int age;
@JsonIgnore
private boolean male;
@JsonSerialize(using = CustomDoubleSerialize.class)
private Double weight;
private String nickName;
public boolean getMale() {
return this.male;
}
}
public static class CustomDoubleSerialize extends JsonSerializer<Double> {
private DecimalFormat df = new DecimalFormat("##.0");
@Override
public void serialize(Double value, JsonGenerator jgen,SerializerProvider provider) throws IOException,JsonProcessingException {
jgen.writeString(df.format(value));
}
}
}
fastxml Jackson annotation使用小记的更多相关文章
- fastxml Jackson JsonNode (ObjectNode) 转 List
做环聊开发, Java 后台示例 用的 fastxml Jackson 解析json(擦, 狗屎, 不能支持下国产吗?) 有的json字段是数组, 发现不会解析了, 谷歌了下, 用以下方法可行,(不知 ...
- Jackson Annotation Examples
1. Overview In this article, we’ll do a deep dive into Jackson Annotations. We’ll see how to use the ...
- 练习:将值是null的数据删除掉(剔除):com.fasterxml.jackson.annotation.JsonInclude;包
练习:将值是null的数据删除掉(剔除):com.fasterxml.jackson.annotation.JsonInclude;包 例如,有数据是null,不想展示 { "statusC ...
- NoClassDefFound Error: com/fasterxml/jackson/annotation/JsonAutoDetect
少了 jackson-annotation https://blog.csdn.net/qq_36497454/article/details/80461676
- JackSon学习笔记(一)
概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotation ...
- jackson java对象和json对象的互相转换
概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotation ...
- Java解析json(二):jackson
Java解析json(二):jackson 官方参考 Jackson Home Page:https://github.com/FasterXML/jackson Jackson Wiki:htt ...
- JackSon fasterxml学习
概述 Jackson框架是基于Java平台的一套数据处理工具,被称为"最好的JavaJson解析器". Jackson框架包含了3个核心库:streaming,databind, ...
- 【jackson 异常】com.fasterxml.jackson.databind.JsonMappingException异常处理
项目中,父层是Gene.java[基因实体] 子层是Corlib.java[文集库实体],一种基因对用多个文集库文章 但是在查询文集库这个实体的时候报错:[com.fasterxml.jackson ...
随机推荐
- Problem Collection I 位运算
XOR ARC 092B CF 959E xor-MST CF 959F
- linux管理(二)---网络使用情况的监控
我们经常在监控服务器或者排查程序性能瓶颈时需要知道 网络带宽的使用情况,看看带宽是不是瓶颈. linux系统中监控网络的工具和命令很多. 但其实主要分2种,一种是实时监控带宽情况(速度如何),一种是 ...
- 自定义CheckBox
自定义android的CheckBox按钮图形有两个步骤三种方式: 第一步: 新建Android XML文件,类型选Drawable,根结点选selector,放置在drawable文件夹内,指定各种 ...
- 深入浅出JavaScript变量作用域
在学习JavaScript的变量作用域之前,我们应当明确几点: JavaScript的变量作用域是基于其特有的作用域链的. JavaScript没有块级作用域. 函数中声明的变量在整个函数中都有定义. ...
- java基础学习(一)hashcode
hashcode的作用 hashCode()方法是从Object类继承过来的,Object类中的hashCode()方法返回的是对象在内存中地址转换成的int值,如果对象没有重写hashCode()方 ...
- 【FJWC2017】交错和查询 [线段树]
交错和查询 Time Limit: 10 Sec Memory Limit: 256 MB Description 无限循环数字串S由长度为n的循环节s构成.设s为12345(n=5),则数字串S为 ...
- bzoj 1297 矩阵乘法变形
首先对于矩阵乘法的功能有很多,记得有篇论文叫矩阵乘法在信息学竞赛中的应用,里面详细介绍了矩阵的 作用 其中一个就是求图的固定时间方案数,也就是给定一张图,每两个点之间由一条边长为1的边相连, 求任意两 ...
- hdu 2544 最短路 (dijkstra,floyd)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目大意:找到两点间最短的距离值. 代码一:(dijkstra算法) #include < ...
- python基础之函数(自定义函数)
函数: 函数的定义: 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数. ...
- webdriver函数
import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) PyDev console: starting. ...