用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. 项目中有个接口的数据是从缓存中读取再组成JSON 格式返出,原本缓存中数据是这样的:

用Gson 组成JSON 后,数值部分都成了Double类型,这不是我要的效果。

// 缓存中取String json = _jedisClient.get("RICHER_TRAN_RECORDS_GIVE"+user.getId());if (StringUtils.isNotBlank(json)){resultMap = new Gson().fromJson(json, new TypeToken<Map<String,Object>>(){}.getType());

数值部分成了Double类型,即:

 

2. 似乎Gson 默认会把数值转化为double。于是我只好再次对数据循环处理:

// 方式一 : gson转换默认是double类型  ,去掉70.0 这种数据的小数位Set<String> keySet = resultMap.keySet();for(Iterator<String> it = keySet.iterator();it.hasNext();){String key = it.next();if(resultMap.get(key) instanceof Double){resultMap.put(key, ((Double)resultMap.get(key)).intValue());}else{List<Map<String, Object>> list = (List<Map<String, Object>>)resultMap.get(key);for(Iterator<Map<String, Object>> mapIt = list.iterator();mapIt.hasNext();) {Map<String, Object> map = mapIt.next();Integer format = ((Double)map.get("format")).intValue();map.put("format", format);}}}// 方式二 : gson转换默认是double类型  ,去掉70.0 这种数据的小数位Iterator<Entry<String,Object>> iter = resultMap.entrySet().iterator(); while(iter.hasNext()){ Entry<String,Object> entry = iter.next(); Object val =  entry.getValue();if(val instanceof Double){val = ((Double) val).intValue();entry.setValue(val);}else{String key = entry.getKey();Object keyval = resultMap.get(key);List<Map<String, Object>>  list =  (List<Map<String, Object>>)keyval;Iterator<Map<String, Object>> it = list.iterator();while(it.hasNext()){Map<String,Object> map = it.next(); Integer format = ((Double)map.get("format")).intValue();map.put("format", format);}}}

这样去掉数值的小数部份。

3.仅以此作为记录。希望有更简单的办法处理这种情况,最好是组成JSON时也能不改变原数据类型,如果有网友知道,希望能留言告诉我,谢谢

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

38--合并两个排序的链表

1.问题描述 输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 实例&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 2.解决思路 /*** Definition for singly-linked lis…

39--打印从1到最大的n位数

1.题目描述 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1 输出: [1,2,3,4,5,6,7,8,9] 2.解题思路 class Solution {public int[] printNumbers(int n) {int end …

Python学习之路20-数据模型

《流畅的Python》笔记。本篇是Python进阶篇的开始。本篇主要是对Python特殊方法的概述。1. 前言 数据模型其实是对Python框架的描述&#xff0c;它规范了这门语言自身构件模块的接口&#xff0c;这些模块包括但不限于序列、迭代器、函数、类和上下文管理器。不管在哪种框架下写…

《netty实战》阅读笔记(2)——Netty 的数据容器ByteBuf

ByteBuffer 当我们进行数据传输的时候&#xff0c;往往需要使用到缓冲区&#xff0c;常用的缓冲区就是JDK NIO类库提供的java.nio.Buffer。 实际上&#xff0c;7种基础类型&#xff08;Boolean除外&#xff09;都有自己的缓冲区实现&#xff0c;对于NIO编程而言&#xff0c;我们…

32位Windows7上8G内存使用感受+xp 32位下使用8G内存

我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽...速度超快...基本没有等待的概念...深有体会... 为什么要使用8G内存&#xff1f;在国内外各大论坛上&#xff0c;这都是一个有争议的问题。问题的反方论据非常充分&#xff1a; 除了少数专业领域&#xff0c;大多数应用程…

面试常考的数据结构Java实现

1、线性表 2、线性链表 3、栈 4、队列 5、串 6、数组 7、广义表 8、树和二叉树 二叉树&#xff1a;每个结点至多只有两棵子树&#xff08;即二叉树中不存在度大于2的结点&#xff09;&#xff0c;并且&#xff0c;二叉树的子树有左右之分&#xff0c;其次序不能任意颠倒。 二叉…

Java5线程并发库之LOCK(锁)CONDITION(条件)实现线程同步通信

为什么80%的码农都做不了架构师&#xff1f;>>> Lock&#xff08;锁&#xff09;&Condition&#xff08;条件&#xff09;实现线程同步通信 接下来介绍&#xff0c;java5线程并发库里面的锁。跟锁有关的类和接口主要是位于java.util.concurrent.locks包。 Lock…

逻辑运算符与逻辑表达式

1 #include <stdio.h>2 3 int main()4 {5 int a0;int b0;6 if(a&&b)//a&&ba的逻辑值为0&#xff0c;则执行else7 {8 printf("a&&b is true\n");9 } 10 else 11 { 12 printf("a&&…

网站性能优化的三重境界

这篇文章是关于网站性能优化体验的&#xff0c;性能优化是一个复杂的话题&#xff0c;牵涉的东西非常多&#xff0c;我只是按照我的理解列出了性能优化整个过程中需要考虑的种种因素。点到为止&#xff0c;包含的内容以浅显的介绍为主&#xff0c;如果你有见解能告知我那再好不…

PYTHON 爬虫笔记十一:Scrapy框架的基本使用

Scrapy框架详解及其基本使用 scrapy框架原理 Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 其可以应用在数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的&#xff0c; 也可…

服务器返回值 解释 ajax提交方式 后台数据刷进前端

转载于:https://www.cnblogs.com/liuliang389897172/p/9120715.html

no typehandler found for property XXXX 解决

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. ssm框架下 启动服务报错如题。 2. 原因&#xff1a; 我的情况是&#xff0c;代码中实体属性映射书写和数据库字段名字不一致。 数据…

shell中sed -i特殊字符

可参考文献&#xff1a; Linux生产环境上&#xff0c;最常用的一套“sed“技巧 看懂shell中的各种语句

Nginx 启动报错 “/var/run/nginx/nginx.pid failed”

问题&#xff1a; 重启虚拟机后&#xff0c;再次重启nginx会报错&#xff1a; open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) 解决方法&#xff1a; &#xff08;1&#xff09;进入 cd /usr/local/nginx/conf/ 目录&#xff0c;编辑配置…

eclipse关闭讨厌的菜单

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 不知道动哪了&#xff0c;开启了这个菜单&#xff1a; 2. 很感谢群友帮我找到关闭方法&#xff0c;点击 如下 按钮&#xff1a; 然后就…

SSL加密工作原理RSA免密登录原理

SSL 是一个安全协议&#xff0c;它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的 超文本传输协议&#xff08;HTTP&#xff09;使用 SSL 来实现安全的通信。 在客户端与服务器间传输的数据是通过使用对称算法&#xff08;如 DES 或 RC4&#xff09;进行加密的。…

我不知道的事——深克隆和浅克隆

推荐一部好电影《致命魔术》。&#xff08;此处为植入广告&#xff09; 推荐理由&#xff1a;涉及人性。画面不错&#xff0c;剧情跌宕&#xff0c;亦魔亦幻&#xff08;此处的”魔“为魔术的”魔“&#xff09;。虽然女猪脚不尽如人意&#xff0c;但是男猪脚比较帅。而…