Gson toJson 忽略 long 为 0的数据
起因于数据id过大,所以将对应int , Integer都修改为long,
测试过程中发现 Gson toJson时,字段将int为0的数据忽略,但long 没有,
所以
1. 新增适配器
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter; import java.io.IOException; public class LongIgnoreZeroAdapter extends TypeAdapter<Long> { @Override
public void write(JsonWriter jsonWriter, Long aLong) throws IOException {
if (aLong == null || aLong.equals(0l)) {
jsonWriter.nullValue();
return;
} jsonWriter.value(aLong.longValue());
} @Override
public Long read(JsonReader jsonReader) throws IOException {
if (jsonReader.peek() == JsonToken.NULL) {
jsonReader.nextNull();
return 0l;
}
return jsonReader.nextLong();
}
}
2. 在对应类中字段上方新增注解 @JsonAdapter(LongIgnoreZeroAdapter.class)
import com.xxx.xxxx.adapter.LongIgnoreZeroAdapter;
import com.google.gson.annotations.JsonAdapter; public class XXXBean { @JsonAdapter(LongIgnoreZeroAdapter.class)
private long xx1;
private String xx2; public XXXBean(long xx1, String xx2) {
this.xx1 = xx1;
this.xx2 = xx2;
} }
3. 正常toJson
new Gson().toJson(new XXXBean(xxx,xxx,xxx))
03/09
更新一下,应该为longValue,之前写错为intValue了
longValue
Gson toJson 忽略 long 为 0的数据的更多相关文章
- 使用Gson轻松解决复杂结构的Json数据解析
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803 JSON简介 JSON(JavaScript Object Notati ...
- 问题-MyBatis不识别Integer值为0的数据
问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test=&qu ...
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法
使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法 添加一行 manager. ...
- powerbulider9.0在数据窗口中实现滚动到新添加行
powerbuilder9.0对数据窗口进行增加行操作,然后实现滚动到指定行时,应先滚动到指定行dw_1.scrolltorow( row),然后设置新添加的行为当前行dw_1.setrow( row ...
- 把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中
mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger.但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式. 但是mongodb更新实在 ...
- TP5.0 PHPExcel 数据表格导出导入(引)
TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...
- echarts饼图不显示数据为0的数据
首先阐述下为什么会有这个需求,这个和echarts自身的显示效果有关. 如果你选择的展示图形为饼图,然后你的数据里有一条数据为0,那么展示的数据就为一条直线,看上去效果并不好, 会很突兀. 当然如果你 ...
- spring 4.0 注解数据验证2
在spring 4.0 注解数据验证1中有基本的数据验证方法.还是那个POJO: package com.suyin.pojo; import java.lang.reflect.Field; imp ...
- Android 运行 gson.toJson(object) 报java.lang.StackOverflowError异常
如以下的代码,运行后报java.lang.StackOverflowError错误: MusicSavedInfo musicSavedInfo=new MusicSavedInfo(currentS ...
- 基于Canal实现MySQL 8.0 数据库数据同步
前言 服务器说明 主机名称 操作系统 说明 192.168.11.82 Ubuntu 22.04 主库所在服务器 192.168.11.28 Oracle Linux Server 8.7 从库所在服 ...
随机推荐
- ubuntu 编译安装ffmpeg
[前言] 使用apt-get install直接安装的ffmpeg无法提供相应的头文件, 在编译一些使用ffmpeg接口的程序时会提示找不到某某头文件, 于是准备自己编译安装一下ffmpeg. 安装分 ...
- 使用vxe-table组件,控制台报错:缺少必要的“{0}”参数,这可能会导致出现错误
这是由于使用vxe表格,给列属性设置 type="html" 只需要开启存,需要启用column-config.useKey与row-config.useKey就可以了
- 靶机练习: y0usef
靶机: y0usef 准备工作 靶机地址: https://download.vulnhub.com/y0usef/y0usef.ova MD5 校验:28c5d869b003be94b2d8ab4b ...
- JavaScript小面试~节流
节流,当用户发出多次请求时,需要对事件进行限制,不要让事件过多触发.场景:在用户浏览页面的时候,用户拼命滚动屏幕时,控制页面滚动的事件会多次触发,会导致网络阻塞或者出现渲染差.此时需要对其进行约束.无 ...
- 题解:P10732 [NOISG2019 Prelim] Palindromic FizzBuzz
题解:P10732 [NOISG2019 Prelim] Palindromic FizzBuzz 题意 题意十分明了,给予你一个区间,判断区间中每一个数是否是回文数. 思路 思路比较简单,首先将每一 ...
- python global将结果存储起来给另外一个文件对象使用
python global将结果存储起来给另外一个文件对象使用 使用场景: 在aaa.py文件里面操作数据生成结果C 然后再在bbb.py文件里面使用C 下面是aaa.py代码: #!/usr/bin ...
- Jmeter强制结束线程
例子:正常的线程是执行2次请求 1.需要实现结果 执行请求1后,判断test1=100,强制结束线程 执行请求1后,判断test1 != 100,继续执行请求2 2. 线程组改造 在请求1后面增加[i ...
- Jmeter的安装(Windows)
1.选择和本机JDK兼容的jmeter版本下载 Jmeter历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/ 此处我的jmeter5. ...
- 【H5】06 网页架构
摘自: https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/%E6%96%87%E4%BB%B6%E5%9 ...
- 【转载】 nvidia-smi - Persistence-M (Persistence Mode)
原文链接: https://blog.csdn.net/chengyq116/article/details/103224622 版权声明:本文为CSDN博主「Yongqiang Cheng」的原创文 ...