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

Go把Map转成对象

最近使用了Redis的Hash,把一个对象给存储到了hash里面,具体如下:

 现在需要从RedisHash缓存里面把结果给取出来,同时赋值到一个对象上面

result, err := global.GVA_REDIS.HGetAll(context.Background(), key).Result()

问题是result是一个  map[string]string 类型,我们直接把map[string][string]给序列化成json字符串,是不符合我们预想的,因为map的值是string类型(为什么map的值不存int类型?因为redis只能存储字符串),但是对象上面有些属性是int类型的,导致我们反序列化失败

既然不能直接序列化map成为一个符合我们结果的json字符串,我们就自己构建一个json字符串

		j := "{"for k, v := range result {j += "\"" +k + "\"" + ":" + v + ","}j =j[:len(j)-1]j += "}"err = json.Unmarshal([]byte(j), &ExamDetail)

然后我们再使用反序列化即可成功了

补充:

当一个对象被存储在Redis的Hash里面的时候,如果原本是int类型,那存储到Hash的时候,是没有字符串的两个"",如果是string类型,是会有"" ,但是其实两个value本质都是string,我们正是通过这个关键点,把map给反序列化到结构体上了,并成功对应其各种类型

 

http://www.lryc.cn/news/122004.html

相关文章:

  • Java-网络编程
  • [数据集][目标检测]道路坑洼目标检测数据集VOC格式1510张2类别
  • 全网最详细,Pytest自动化测试框架-Fixture固件实战,你要的都有...
  • React 入门学习
  • VMware vCenter 6.5 断电后无法启动修复方案
  • c++ STL--算法,迭代器,容器适配器,仿函数
  • springcloud3 bus+springconfig 实现配置文件的动态刷新(了解)
  • SpringMVC的架构有什么优势?——视图与模型(二)
  • Vue中实现图片懒加载简单说明
  • zookeeper案例
  • 项目中使用git vscode GitHubDesktopSetup-x64
  • 【Linux操作系统】文件描述符fd
  • 【RocketMQ入门-安装部署与Java API测试】
  • SystemVerilog之覆盖率详解
  • Qt Designer设计的界面如何显示、即运行显示窗口界面
  • vue3的setup的使用和原理解析
  • Spring boot中的线程池-ThreadPoolTaskExecutor
  • pgsql checkpoint机制(1)
  • 微信小程序 map地图(轨迹)
  • 【钉钉接口】bpms_task_change、bpms_instance_change 的区别及举例
  • vue左右div结构手动拉伸并且echarts图表根据拉伸宽高自适应
  • 开发工具Eclipse的使用
  • DrawerLayout布局使用教程Android侧边栏导航完全指南:创建简单实用的导航抽屉
  • Dynamics 365 实体快速创建功能启用
  • Mybatis三剑客(一)在springboot中自动生成Mybatis【generator】
  • 【LeetCode 热题 100】图论 专题(bfs,拓扑排序,Trie树 字典树)
  • Jmeter压测实战:Jmeter二次开发之自定义函数
  • 在python中使用nvidia的VPF库对RTSP流进行硬解码并使用opencv进行显示
  • C++中using namespace std的作用记录
  • 【TX 企业微信私有化历史版本 API 信息泄露】