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 ...
随机推荐
- 停课day1
一早上只做了一个calculator 还是参照题解,好惭愧 f[1]=0; flag[1]=true; for (int i=2,N=num[n];i<p;i++) { fo ...
- Working with large data sets in MySQL
What does working with large data sets in mySQL teach you ? Of course you have to learn a lot about ...
- 类名.class 类名.this 详解
我们知道在java中,一个类在被加载的时候虚拟机就会自动的生成一个这个类的一个Class类型的“类对象”,每个类都对应着一个这样的类对象,通过这个Class类型的类对象,我们就能够使用“内省与反射”机 ...
- CSS三大特性(继承、优先级、层叠)之个人见解
首先声明一下CSS三大特性——继承.优先级和层叠.继承即子类元素继承父类的样式,比如font-size,font-weight等f开头的css样式以及text-align,text-indent等t开 ...
- classList详解,让你的js方便地操作DOM类
在此之前,jQuery的hasClass.addClass.removeClass我们已经再熟悉不过了,然而我们并不会在每一个项目中都会去使用 jQuery或者Zepto,譬如在移动端的网页中,考虑到 ...
- [USACO1.3]虫洞
Luogu链接 题目描述 农夫约翰爱好在周末进行高能物理实验的结果却适得其反,导致N个虫洞在农场上(2<=N<=12,n是偶数),每个在农场二维地图的一个不同点. 根据他的计算,约翰知道他 ...
- bzoj4602 [Sdoi2016]齿轮
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4602 [题解] 对于每组齿轮(u, v)连边,权值为y/x(反向边x/y) 那么直接dfs计 ...
- html 表格获取单行
参考:http://www.jb51.net/article/63161.htm function cell(btn_id) { {#var x=document.getElementById('#' ...
- Python 数据库连接池DButils
常规的数据库链接存在的问题: 场景一: 缺点:每次请求反复创建数据库连接,连接数太多 import pymysql def index(): conn = pymysql.connect() curs ...
- c++文件流写入到execl中
#include <iostream> #include <fstream> #include <string> using namespace std; int ...