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

2023-11-08

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

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

有个业务接口,接口返回的值是一个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":"张三"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何使用 JSTL forEach 循环迭代 HashMap? [复制]

    这个问题在这里已经有答案了 在我的 Spring MVC 应用程序中 我从controllerServlet 返回了HashMap 现在我需要使用 JSTL 在我的 jsp 中打印它 请帮忙解决这个问题 我对这一切都是新手 尝试这个 假设我
  • 动态创建对象的副本?

    我的应用程序将我的 Web 服务响应存储到 WeakHashMap 中 在我的应用程序中 我在 UI 中操作从 Web 服务返回的数据 并且由于对象被引用 因此它也会修改引用 在我的弱哈希图中 有没有一种方法可以将对象的副本而不是引用存储到
  • 为什么HashMap比HashSet快?

    我一直在阅读 研究原因HashMap比HashSet 我不太明白以下说法 HashMap比HashSet因为这些值与唯一的键相关联 In HashSet 成员对象用于计算两个对象的哈希码值可以相同 因此equals 方法用于检查相等性 如果
  • 如何使用 lambda 获取哈希映射中值的键数

    我有一个哈希图 Map
  • C# Java HashMap 等效项

    从 Java 世界进入 C 世界 是否有一个 HashMap 等价物 如果不是你会推荐什么 Dictionary https learn microsoft com en us dotnet api system collections g
  • Android - 从HashMap中获取值

    我尝试在 Android 中搜索 HashMap 但出现问题 考虑这个例子 HashMap
  • 如何使用 ngFor 迭代 Map 并在 Angular 2+ 中的 html 上按顺序显示它们?

    我正在使用 Angular 7 x 我已经实现了使用 ngFor 的代码 它迭代 Map 并将它们显示在 html 上
  • 根据键名从 HashMap 获取字符串值

    我有一个HashMap有各种键和值 我怎样才能得到一个值 我在地图上有一把钥匙叫my code 它应该包含一个字符串 我怎样才能得到它而不必遍历地图 到目前为止我已经 HashMap newMap new HashMap paramMap
  • Java HashMap.clear()和remove()内存有效吗?

    考虑以下HashMap clear code Removes all of the mappings from this map The map will be empty after this call returns public vo
  • 不断向Map添加数据

    我需要在 for 循环之前将数据添加到 Map 或 HashMap 在 for 循环期间将数据添加到 Map 然后在循环后创建包含所有数据的文档 在 Android 的 Java 中我使用了 Map
  • 迭代 Hashmap 时如何得到 ConcurrentModificationException?

    我正在尝试将键值对添加到迭代器方法内的哈希映射中 但这并没有给我ConcurrentModificationException Why 由于 Hashmap 是快速失败的 Map
  • c++ pthread - 如何使地图访问线程安全?

    我有一个映射作为成员变量和多个访问该映射的线程 读写访问 现在我必须确保只有一个线程可以访问该地图 但我该如何点呢 最好的解决方案是什么 Boost 包含一些用于共享访问的很好的锁实现 看看文档 http www boost org doc
  • java hashmaps 的 get() 函数

    我声明了以下哈希图 HashMap
  • ANSI C 哈希表实现,数据位于一个内存块中

    我正在寻找一种哈希表的开源 C 实现 它将所有数据保存在一个内存块中 因此可以轻松地通过网络发送数据 我只能找到为添加到其中的每个键值对分配小块内存的内存 预先非常感谢您的所有投入 编辑 它不一定需要是哈希表 无论键值对表可能会做什么 序列
  • Java - 线程“主”中的异常 java.util.ConcurrentModificationException

    有什么办法可以修改HashMap迭代特定键时的值 下面给出一个示例程序 public static void main String args HashMap
  • JSON 中的哈希到底是什么?

    我正在学习 JSON 但我发现你也可以将所谓的 哈希 放入 JSON 中 我在哪里可以找到什么是哈希 或者你能向我解释一下什么是哈希吗 另外 什么是哈希图 我有 C 和 C 经验 正在学习 JS Jquery 和 JSON 哈希是一个稀疏数
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 线程“main”中的异常 java.lang.StackOverflowError

    我有一段代码 但我无法弄清楚为什么它在线程 main java lang StackOverflowError 中给出异常 这是问题 Given a positive integer n prints out the sum of the
  • HashMap不写入数据库

    我尝试在我的数据库中写入 但只写入发件人和消息 我不明白为什么会发生这种情况 我认为问题出在我使用 sendMessage 的地方 我认为问题是我没有什么可以做的读 写其他用户的主键 我在数据库中写入消息的活动 public class M
  • JQuery $.ajax() 在 java servlet 中发布数据

    我想将数据发送到 java servlet 进行处理 数据将具有可变长度并采用键 值对 A1984 1 A9873 5 A1674 2 A8724 1 A3574 3 A1165 5 数据不需要这样格式化 这就是我现在的方式 var sav

随机推荐

  • 程序员学数据库那些事儿

    最近有人问 是问 不是请教 我数据库怎么学 要学哪些 以下我谈一些个人想法 其实我的数据库知识不是很扎实 真心的 当年我学这个东西时某个大神告诉我 学会sql server 走遍天下都不怕 事实上 这几年如果只会sqlserver根本到哪都
  • C++ 构造函数和析构函数是否可以继承?

    先看一个例子 cpp view plain copy include
  • 架构师需要了解的Paxos原理、历程及实战

    架构师需要了解的Paxos原理 历程及实战 数据库高可用性难题 数据库的数据一致和持续可用对电子商务和互联网金融的意义不言而喻 而这些业务在使用数据库时 无论 MySQL 还是 Oracle 都会面临一个艰难的取舍 就是如何处理主备库之间的
  • linux下部署redis

    基础知识 1 Redis的数据类型 字符串 列表 lists 集合 sets 有序集合 sorts sets 哈希表 hashs 2 Redis和memcache相比的独特之处 1 redis可以用来做存储 storge 而memcache
  • Java必懂之命名规范

    定义规范的目的是为了使项目的代码样式统一 使程序有良好的可读性 在此我从网上查找了一篇写得比较好的文章 来让大家学习 顺便自己复习一下 有时候自己写的类名不符合规范 Eclipse会出现黄色叹号 就是表示你的命名不规范 然而 规范不是规定
  • 微信小程序image图片自适应宽度比例显示的方法

    我们都知道微信小程序的组件image是用来显示图片的 它有一下几个属性 1 src 图片资源地址2 mode 图片裁剪 缩放的模式3 binderror 当错误发生时 发布到 AppService 的事件名 事件对象event detail
  • SpringMVC的架构有什么优势?——控制器(一)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架
  • 合宙Air103

    基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 对官方社区库接口RC522模块库调用及示例进行复现及分析 了解RDIF及非接触式IC卡的原理及操作方法 实现功能 利用已知的A
  • 单片机拟真电路图软件_电路仿真软件有哪些?6款常用的电路仿真软件推荐

    一些网友需要下载电路仿真软件这一类软件 但是 网络上寻找电路仿真软件却比较麻烦 那么 电路仿真软件有哪些 小编今天就给大家整理了6款常用的电路仿真软件推荐给大家 需要下载电路仿真软件的网友可以挑选一下 Machining 6款常用的电路仿真
  • Vue 监听localStorage

    1 在utils目录下建tool js文件 文件代码如下 重写setItem事件 当使用setItem的时候 触发 window dispatchEvent派发事件 function dispatchEventStroage const s
  • python turtle画海绵宝宝,python还能这么玩?帅呆了

    漫威还是DC 超人或者蝙蝠侠 火影忍者亦或死神 当然 所有这些讲的都是漫画 当我们还是孩子的时候 总是迷恋漫画书 当翻到我们的英雄们开始行动时会激动不已 大家总是争论谁是最厉害的超级英雄 认真地讨论他们的家族历史 或者梦想自己拯救高谭市 我
  • 容器编排学习(二)镜像制作和私有仓库介绍

    一 Dockerfile 1 概述 commit的局限 很容易制作简单的镜像 但碰到复杂的情况就十分不方便例如碰到下面的情况 需要设置默认的启动命令 需要设置环境变量 需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方
  • 悲剧的山寨采用的新芯片资料汇总(更新Rk3066)

    芯片名称 基友公司 上市前宣传主频 量产机最高主频 最高主频 GPU 备注 Rk3066 原道 酷比魔方 1 4GHz 2 1 6GHz 2 1 6GHz 2 Mali 400MP4 266MHz 旧固件 Mali 400MP4 399MH
  • 【Web Crawler】Scrapy vs BeautifulSoup:哪个是您业务的最佳选择?

    Beautiful Soup 可以帮助从目标网页中提取特定元素 而 Scrapy 可以管理异步数据检索 从而提高效率 不确定哪个选项最适合您的业务需求 本指南可以提供帮助 什么是Beautiful Soup Beautiful Soup 是
  • 数据挖掘——决策树和K近邻

    决策树和K近邻 一 线性回归 房价预测 第1关 线性回归算法思想 一 相关知识 1 gt 简单线性回归 2 gt 多元线性回归 二 编程要求 三 参考答案 第2关 动手实现线性回归 一 相关知识 1 gt 数据集介绍 2 gt 线性回归算法
  • android蓝牙支持双向,【玩机攻略】了解蓝牙LDAC,玩转双向蓝牙LDAC

    原标题 玩机攻略 了解蓝牙LDAC 玩转双向蓝牙LDAC LDAC是由SONY开发的一项蓝牙音频编码技术 它的最高传输速率可达990kbps 相当于普通蓝牙的3倍 文件采样率最高可支持96 khz 而即使是aptX HD 其最高所能支持的文
  • Windows 在CMD 终端中使用SS代理

    打开CMD后先分别输入下面两条命令 set http proxy 127 0 0 1 1080 set https proxy 127 0 0 1 1080 其中的本地IP 地址和端口号如果你没有改过的话应该是没问题的 改过的话就填改过的
  • 新版-C语言学生信息管理系统

    拥有基本的学生信息系统的功能 功能点如下所示 1 添加学生信息 2 修改学生信息 3 删除学生信息 4 查看学生信息 5 搜索学生信息 6 查看系统学生总人数 7 学生信息排序 8 保存学生信息 保存在D students txt 9 导入
  • C++ string类型的字符串长度获取的三种方法

    1 用string的成员方法length 获取字符串长度 length 比较直观 表示的就是该字符串的长度 cpp
  • 【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

    本周的工作结束 详述一些在项目代码中实际遇到的一些坑 代码中遇到这样一个场景 有个业务接口 接口返回的值是一个JSON格式的字符串 通过JSON解析的方式 解析为格式为 Map