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 ...
随机推荐
- Powershell使用真实的对象工作
Powershell使用真实的对象工作 来源 https://www.pstips.net/powershell-work-with-reallife-objects.html 每一个Powershe ...
- hdu3068最长回文(Manacher算法)
简单来说这是个很水的东西.有点dp的思想吧.推荐两个博客,很详细. http://blog.csdn.net/xingyeyongheng/article/details/9310555 http:/ ...
- 整理一些JavaScript时间处理扩展函数
在JavaScript中,时间处理是经常需要用到的.最近想要慢慢建立自己的代码库,整理了几个之前用到的js处理时间的函数,发出来跟大家分享一下,以后的使用中会不断增加和修改代码库. 把字符串转换为日期 ...
- 妮可妮可妮 [Hash]
妮可妮可妮 题目描述 小P特别喜欢动画Love Live中的角色妮可,每当他听到妮可说"niconiconi"时,他总会感到特别兴奋,还会露出绅士般的微笑. 作为一名理论计算机科学 ...
- 取消eslint对指定代码进行代码检测
eslint配置了不允许使用alert,但是有个需求需要用到. //eslint-disable-next-line alert('测试'); 如上,即可跳过当前行代码检查了
- express添加拦截器
var express = require('express') , routes = require('./routes') , http = require('http') , pat ...
- bzoj1036: [ZJOI2008]树的统计Count link-cut-tree版
题目传送门 这 算是link-cut-tree裸题啊 不过以前好像没有写过单点修改.............. #include<cstdio> #include<cstring&g ...
- 【洛谷 P4886】 快递员 (点分治)
这题因为一些小细节还是\(debug\)了很久...不过我第一次用脚本对拍,不亏. 先随便找一个点作为根,算出答案,即所有点对到这个点的距离和的最大值,并记录所有距离最大的点对.如果这个点在任意一个距 ...
- [bzoj1770][Usaco2009 Nov]lights 燈——Gauss消元法
题意 给定一个无向图,初始状态所有点均为黑,如果更改一个点,那么它和与它相邻的点全部会被更改.一个点被更改当它的颜色与之前相反. 题解 第一道Gauss消元题.所谓gauss消元,就是使用初等行列式变 ...
- Jackson对多态和多子类序列化的处理配置
目录 Jackson 多态类型的处理 Jackson Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 多态类型的处理 jacks ...