当前位置: 首页 > news >正文

【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

本周的工作结束,详述一些在项目代码中实际遇到的一些坑。

代码中遇到这样一个场景:

有个业务接口,接口返回的值是一个JSON格式的字符串,通过JSON解析的方式,解析为格式为:
Map<Long, Map<String, Object>> 的数据格式。

然后,根据业务keyId,去上面接口返回的map取值,发现一直为null。

场景复现代码如下所示:

		Long key = 89765487L;String returnStr = "{89765487:{\"uid\":\"2\",\"uname\":\"张三\"}}";Map<Long, Map<String, Object>> strMap = JSON.parseObject(returnStr, Map.class);System.out.println("strMap = " + strMap);Map<String, Object> valueMap = strMap.get(key);System.out.println("valueMap = " + valueMap);
strMap = {10003={"uid":"2","uname":"张三"}}
valueMap = null

解决方案:

在这里插入图片描述
发现转化成的Map的key变为String类型的了,此时get Long类型返回为null。
为了由于类型不一致导致的取值问题,现在统一把Map中的key使用string类型。

        String key = "89765487";String returnStr = "{89765487:{\"uid\":\"2\",\"uname\":\"张三\"}}";Map<String, Map<String, Object>> strMap = JSON.parseObject(returnStr, Map.class);System.out.println("strMap = " + strMap);Map<String, Object> valueMap = strMap.get(key);System.out.println("valueMap = " + valueMap);
strMap = {89765487={"uid":"2","uname":"张三"}}
valueMap = {"uid":"2","uname":"张三"}
http://www.lryc.cn/news/170045.html

相关文章:

  • 微服务保护-授权规则/规则持久化
  • 练习敲代码速度
  • uni-app:实现条件判断展示图片(函数判定+三目运算)
  • http概念
  • Postman应用——Variable变量使用(Global、Environment和Collection)
  • php高级 TP+Redis实现发布订阅和消息推送案例实战
  • Python 基础入门
  • 【跟小嘉学 Rust 编程】二十九、Rust 中的零拷贝序列化解决方案(rkyv)
  • 路由器端口转发
  • Redis模块一:缓存简介
  • 【去除若依首页】有些小项目不需要首页,去除方法
  • Ardupilot — EKF3使用光流室内定位代码梳理
  • 【Linux】自动化构建工具 —— make/makefileLinux第一个小程序 - 进度条
  • tensorflow的unet模型
  • (2023 最新版)IntelliJ IDEA 下载安装及配置教程
  • react 实现拖动元素
  • 【EI会议】第二届声学,流体力学与工程国际学术会议(AFME 2023)
  • Android StringFog 字符串自动加密
  • 上四休三,未来的期许
  • 怎么防止360安全卫士修改默认浏览器?
  • 调整参数提高mysql读写速度
  • 第一届电子纸产业创新应用论坛-邀请函
  • Go expvar包
  • Yolo v8代码逐行解读
  • 9.18号作业
  • Spring源码阅读(spring-framework-5.2.24)
  • 【SpringMVC】文件上传与下载、JREBEL使用
  • 数据结构 第二章作业 线性表 西安石油大学
  • vue.mixin全局混合选项
  • VMware Fusion 13+Ubuntu ARM Server 22.04.3在M2芯片的Mac上共享文件夹