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 ...
随机推荐
- BZOJ4544 椭圆上的整点(数论)
https://www.cnblogs.com/Gloid/p/9538413.html 基本思路没有太大差别.得到2n=d(a2+3b2),其中d=gcd(n-x,n+x),n-x==a2& ...
- 深入理解Netscaler INat
深入理解Netscaler INat http://blog.51cto.com/caojin/1898173 Netscaler的INat主要是用作基于目的地址的转换,将client访问的公网IP通 ...
- bootstrap table表格属性、列属性、事件、方法
留存一份,原文地址http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/ 表格参数 表格的参数定义在 jQuery.fn.bootst ...
- [bzoj2893] 集合计数
Description 一个有N个元素的集合有2^N 个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模100000000 ...
- string 类型转换
string转int "; int n = atoi(str.c_str()); cout << n << endl; int转string #include < ...
- 解决导出为Excel时文件名乱码的问题。
以前代码:public static void htmlToExcel(HttpContext context, string title, string html, string fileCss = ...
- HDU 5671 矩阵
Matrix Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
- Ecplise添加XML自动提示
这里以struts.xml为例 第一步: 首先找到 struts2的核心jar包,我这里是struts2-core-2.3.20.jar用压缩工具打开或者解压下来
- 如何让 linux unzip 命令 不输出结果
unzip xx.zip > /dev/null 2>&1 unzip xx.zip > /dev/null前半部分是将标准输出重定向到空设备, 后面的2>&1 ...
- apache工作模式
查看当前apache的工作模式 apachectl -l prefork模式 <IfModule prefork.c>StartServers 5MinSpareServers 5MaxS ...