【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.pswp.cn/news/166423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166423.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 的性能調優的思路

Linux操作系統是一個開源產品,也是一個開源軟件的實踐和應用平臺,在這個平臺下有無數的開源軟件支撐,我們常見的apache、tomcat、mysql等。 開源軟件的最大理念是自由、開放,那么Linux作為一個開源平臺,最終要實現的是…

Java反射調用kotlin中的類,Object類,Companion對

Java反射調用kotlin中的類,Object類,Companion對象 1. Java反射調用kotlin中的普通類 kotlin普通類: package com.common; class TestNormal {fun get():String{return "Nolmal abc"}fun showNum(v:Int){println("Nolmal s…

uniApp微信支付實現

后端:小程序下單 - 小程序支付 | 微信支付商戶文檔中心 服務端需要請求:https://api.mch.weixin.qq.com該地址獲取微信支付Api接口需要的參數。 服務端請求接口需要的Body參數: 客戶端(前端)需要調用:wx.…

12V降3.3V100mA穩壓芯片WT7133

12V降3.3V100mA穩壓芯片WT7133 WT71XX系列是一款采用CMOS工藝實現的三端高輸入電壓、低壓差、小輸出電流電壓穩壓器。 它的輸出電流可達到100mA,輸入電壓可達到18V。其固定輸出電壓的范圍是2.5V~8.0V,用戶 也可通過外圍應用電路來實現可變電壓…

加載minio中存儲的靜態文件html,不顯示樣式與js

問題描述:點擊鏈接獲取的就是純靜態文件,但是通過瀏覽器可以看到明明加載了css文件與js文件 原因:仔細看你會發現加載css文件顯示的contentType:text/html文件,原來是minio上傳文件時將所有文件的contentType設置成了text/html 要在上傳時指定文件,根據文章的類型指定的Conten…

css 固定按鈕到頁面頂部或者底部的實現方式

實現方式 要將按鈕固定到頂部或底部&#xff0c;可以使用CSS的定位屬性來實現。下面是一種常用的方法&#xff1a; 創建一個包含按鈕的HTML元素&#xff0c;例如一個<div>元素。確保給它添加一個唯一的id&#xff0c;以便在CSS中進行定位。 <div id"myButton&qu…

從二極管到linux服務器

軟件設計: os: 批處理系統: 輪詢系統:單片機裸機開發 實時系統:ucosii,rtos,rt-thread、風和系統、liteos(主要是海思系列soc在用)等 非實時系統:linux 對os任務切換時寄存器的功能有理解。 對ipc機制有理解。 bsp: 需要對寄存器、單片機內部總線、iic、spi、uart、c…

win10開機黑屏只有鼠標?這份指南幫你輕松解決!

win10是一個出色的操作系統&#xff0c;但有時用戶可能會遇到開機后只有鼠標顯示在屏幕上的問題&#xff0c;這種情況可能會讓人感到困惑和沮喪。在本文中&#xff0c;我們將介紹三種解決win10開機黑屏只有鼠標的方法&#xff0c;以幫助您快速恢復正常的桌面環境。 方法1&#…

Ubuntu18.4中安裝wkhtmltopdf + Odoo16配置【二】

deepin Linux 安裝wkhtmltopdf 1、先從官網的鏈接里下載linux對應的包 wkhtmltopdf/wkhtmltopdf 下載需要的版本&#xff0c;推薦版本&#xff0c;新測有效&#xff1a; wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 2、解壓下載的文件 解壓后會有一個wkhtmltox文件夾 3…

CTA-GAN:基于生成對抗性網絡的主動脈和頸動脈非集中CT血管造影 CT到增強CT的合成技術

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成對抗性網絡的主動脈和頸動脈非集中CT血管造影背景貢獻實驗方法損失函數Thinking 基于生成對抗性網絡的主動脈和頸動脈非集中CT血管造影 https://github.com/ying-f…

可自行DIY單TYPE-C接口設備實現DRP+OTG功能芯片

隨著USB-C接口的普及&#xff0c;歐盟的法律法規強制越來越多的設備開始采用這種接口。由于 USB-C接口的高效性和便攜性&#xff0c;使各種設備之間的連接和數據傳輸變得非常方便快捷&#xff0c;它們不僅提供了強大的功能&#xff0c;還為我們的日常生活和工作帶來了極大的便利…

Python與設計模式--代理模式

5-Python與設計模式–代理模式 一、網絡服務器配置白名單 代理模式是一種使用頻率非常高的模式&#xff0c;在多個著名的開源軟件和當前多個著名的互聯網產品后 臺程序中都有所應用。下面我們用一個抽象化的簡單例子&#xff0c;來說明代理模式。 首先&#xff0c;構造一個網絡…

ssm+vue的企業文檔管理系統(有報告)。Javaee項目,ssm vue前后端分離項目。

演示視頻&#xff1a; ssmvue的企業文檔管理系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;ssm vue前后端分離項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構&…

Talk | 牛津大學博士后研究員邊佳旺:SC-DepthV3-動態場景中的自監督單目深度估計

本期為TechBeat人工智能社區第550期線上Talk。 北京時間11月23日(周四)20:00&#xff0c;牛津大學博士后研究員—邊佳旺的Talk已準時在TechBeat人工智能社區開播&#xff01; 他與大家分享的主題是: “SC-DepthV3&#xff1a;動態場景中的自監督單目深度估計”&#xff0c;介紹…

Vocoder,聲碼器詳解——語音信號處理學習(十)

參考文獻&#xff1a; [1] Vocoder (由助教許博竣同學講授)嗶哩嗶哩bilibili [2] Oord A, Dieleman S, Zen H, et al. Wavenet: A generative model for raw audio[J]. arXiv preprint arXiv:1609.03499, 2016. [3] https://deepmind.com/blog/article/wavenet-generative-mode…

【華為OD機試題】 給出一個區間的集合,請合并所有重疊的區間。

給出一個區間的集合&#xff0c;請合并所有重疊的區間。 示例 1: 輸入: [[1,3],[2,6],[8,10],[15,18]] #輸出: [[1,6],[8,10],[15,18]] 解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6]. 示例 2: #輸入: [[1,4],[4,5]] #輸出: [[1,5]] #解釋: 區間 [1,4] 和 [4,5] 可被視…

window.requestAnimationFrame+localStorage+canvas實現跨窗口小球連線效果

文章目錄 前言效果代碼后言 前言 hello world歡迎來到前端的新世界 &#x1f61c;當前文章系列專欄&#xff1a;前端系列文章 &#x1f431;?&#x1f453;博主在前端領域還有很多知識和技術需要掌握&#xff0c;正在不斷努力填補技術短板。(如果出現錯誤&#xff0c;感謝大家…

FPGA----ZCU106使用petalinux 2019.1的第一個app開發

1、petalinux在zcu106上的構建參見前文 FPGA----ZCU106使用petalinux 2019.1&#xff08;全網最詳&#xff09;-CSDN博客文章瀏覽閱讀31次。本文完成了Vivado 2019.1版本下的基于ZCU106的全部linux系統移植https://blog.csdn.net/qq_37912811/article/details/1345197352、我們…

Vatee萬騰科技的未來探險:Vatee數字創新的獨特發現

在科技的浩瀚海洋中&#xff0c;Vatee萬騰科技如一艘探險船般&#xff0c;勇敢地駛向未知的數字化領域。這次未來的探險&#xff0c;不僅是一場科技創新的冒險&#xff0c;更是對數字化時代的獨特發現和深刻探討。 Vatee萬騰科技視科技創新為一座高峰&#xff0c;而他們的未來探…

java類中局部變量和成員變量有啥區別?

java類中局部變量和成員變量有啥區別&#xff1f; 舉個例子&#xff0c;我們可以定義一個Person類&#xff0c;其中有兩個成員變量name和age&#xff0c;以及一個構造方法和一個show方法。在構造方法中&#xff0c;我們可以使用this關鍵字來引用成員變量&#xff0c;以區分同名…