【Golang】解决使用interface{}解析json数字会变成科学计数法的问题

在使用解析json结构体的时候,使用interface{}接数字会发现变成了科学计数法格式的数字,不符合实际场景的使用要求。
举例代码如下:


type JsonUnmStruct struct {Id   interface{} `json:"id"`Name string      `json:"name"`
}func Test_JsonUnmErr(t *testing.T) {var b = []byte(`{"id": 12423434, "Name": "Tom"}`)var f JsonUnmStructunmarshalErr := json.Unmarshal(b, &f)if unmarshalErr != nil {t.Fatal(unmarshalErr)}t.Logf("%+v", f)
}

实际上的输出结果是:

=== RUN Test_JsonUnmErr
json_unm_test.go:27: {Id:1.2423434e+07 Name:Tom}
— PASS: Test_JsonUnmErr (0.00s)

在这里插入图片描述

如果想要数字以不变的方式来进行序列化/反序列化,可以使用json.DecoderUseNumber方法,它会把所有的数字解析为json.Number类型的数(是数字的原始字符串的表示形式)
具体代码如下:

func Test_JsonUnmCorrect(t *testing.T) {var b = []byte(`{"id": 12423434, "Name": "Tom"}`)d := json.NewDecoder(strings.NewReader(string(b)))d.UseNumber()var f JsonUnmStructdecodeErr := d.Decode(&f)if decodeErr != nil {t.Fatal(decodeErr)}t.Logf("%+v", f)
}

输出结果

=== RUN Test_JsonUnmCorrect
json_unm_test.go:44: {Id:12423434 Name:Tom}
— PASS: Test_JsonUnmCorrect (0.00s)

在这里插入图片描述

参考链接

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

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

相关文章

提供电商数据|带你简单认识天猫API接口相关参数文档调用说明

什么是API接口 API接口(Application Programming Interface Interface)是应用程序与开发人员或其他程序互相通信的方式。它允许开发者访问应用程序的数据和功能。 API接口,软件的“握手”与“交流”之道,软件世界的“好基友”。想让软件聊得来?想开发App却无从下手?API来相救…

多actor实体组合并统一应用变换_vtkAssembly

开发环境: Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码 demo解决问题:创建了一个球体和立方体的三维可视化,将它们组合成一个装配体,应用变换,调整不透明度&#…

App Inventor 2 数字转文本

App Inventor 2 是弱语言类型,文本和数字之间不用刻意去转换,之间赋值就可以了。 案例:数字转文本 App Inventor 2 是弱语言类型,同理数字也能直接赋值给文本变量: 更多请参考:App Inventor 2 文本代码块…

什么是网络爬虫技术?它的重要用途有哪些?

网络爬虫(Web Crawler)是一种自动化的网页浏览程序,能够根据一定的规则和算法,从互联网上抓取和收集数据。网络爬虫技术是随着互联网的发展而逐渐成熟的一种技术,它在搜索引擎、数据挖掘、信息处理等领域发挥着越来越重…

可以ping通IP但是无法远程连接-‘telnet‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

起因 一开始远程连接IP,报错,怀疑是自己网络原因,但是同事依旧无法连接 怀疑是自己防火墙的原因,查看关闭依旧无法连接 问题 两个地址可以ping通排除防火墙缘故 怀疑端口,测试端口 然 解决方案 winR 输入control…

SPASS-信度分析

信度分析概述 效度 效度指的是量表是否真正反映了我们希望测量的东西。一般来说,有4种类型的效度:内容效度、标准效度、结构效度和区分效度。内容效度是一种基于概念的评价指标,其他三种效度是基于经验的评价指标。如果一个量表实际上是有效…

构建智能工厂设施的“智能电机保护和信息监控解决方案”

“智能电机保护和信息监控解决方案”是施耐德电气韩国公司直接为对设施数字化、工厂智能化和节能感兴趣的客户和国内外公司量身定制的集成解决方案。 最大的特点是包含以HMI为中心,轻松高效地处理IT和OT的复杂数据。通过添加工业物联网(IIoT&#xff09…

CBTC 2023氢能展倒计时6天,最新同期会议活动Plus版发布

随着时间的推移,CBTC2023深圳氢能技术展览会即将拉开序幕。这场盛会将于11月30日在深圳福田会展中心盛大开幕,以“以储赋能,智造未来”为主题,旨在搭建一个商务交流、供需合作、创新产品发布的平台,让氢能全产业链之间…

JoySSL OV证书

JoySSL OV证书全称为Organization Validation SSL证书,属于组织验证型SSL证书。它是一种增强型的SSL证书,不仅能够提供基本的数据加密功能,还能提供更高级别的安全保障。通过验证申请者身份的方式,确保了用户访问的网站是由合法的…

tomcat国密ssl测试

文章目录 程序包准备部署配置访问测试 程序包准备 下载 tomcat8.5 https://www.gmssl.cn/gmssl/index.jsp 下载 tomcat 国密组件及证书 本次测试所有的程序文件均已打包,可以直接 点击下载 部署配置 自行完成 完成centos 的jdk配置。 部署tomcat,将 gmssl4t.jar…

「德州仪器嵌入式技术创新发展研讨会」落幕,飞凌嵌入式携手TI推动技术创新

11月22日,德州仪器嵌入式技术创新发展研讨会(北京站)顺利举行,本次研讨会邀请了众多业界领先的企业和专家到场,飞凌嵌入式作为TI生态伙伴受邀参加,与众多业内伙伴共话嵌入式技术的未来发展趋势。 在本次研…

深度学习图像风格迁移 - opencv python 计算机竞赛

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…