最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go?JSON反序列化失敗情況及解決過程

 更新時間:2026年06月24日 08:42:52   作者:非曉為驍  
這段描述主要講解了Go語言中`encoding/json`包在反序列化JSON字符串時可能出現(xiàn)的問題及,包括缺少雙引號、逗號位置錯誤以及類型賦值錯誤等

Go JSON反序列化失敗情況

Go版本: 1.17.7

源碼包 encoding/json

  • 在平時的業(yè)務開發(fā)中,經(jīng)常會有拿到一串序列化后的字符串要來反序列化。
  • 反序列化的時候,有時候可能copy錯誤,或者自己粗心寫錯,導致反序列化失敗。
  • 短的json還行,肉眼看下就出來,但是長的json看就會很吃力。
  • 想要通過json.Unmarshal返回的err看錯誤信息,又比較難理解其意義,就這個問題做一個總結(jié)示例。

下面示例正確的要用來反序列化的如下:

type A struct {
	Vint    int
	Vstring string
	Vfloat  float64
}

`{
	"Vint":1,
	"Vstring": "test",
	"Vfloat":15.15
}`

某個key缺少雙引號

`{
	Vint:1
	Vstring: "test"
	Vfloat: 15.15
}`

json.Unmarshal報錯返回包含:

looking for beginning of object key string

問題:key都沒有雙引號

某個key:value后面缺少一個逗號

`{
	"Vint":1
	"Vstring": "test"
	"Vfloat": 15.15
}`

json.Unmarshal報錯返回包含:

invalid character '\"' after object key:value pair

問題:value后面得有逗號

"}"前不能有逗號

`{
	"Vint":1,
	"Vstring": "test",
	"Vfloat": 15.15,
}`

json.Unmarshal報錯返回包含:

invalid character '}' looking for beginning of object key string

問題:最后一個key:value不需要跟著逗號

類型賦值錯誤

`{
	"Vint":"1",
	"Vstring": "test",
	"Vfloat": 15.15
}`

json.Unmarshal報錯返回包含:

string into Go struct field

問題:數(shù)據(jù)類型是int的,但是給的是字符串。這個問題是特例,類型賦值錯誤的場景也比較多。

key沒有對應的value

`{
	"Vint:1",
	"Vstring": "test",
	"Vfloat": 15.15
}`

json.Unmarshal報錯返回包含:

invalid character ',' after object key

問題:Vint:1是key,沒有跟上value,一般就是雙引號寫漏了

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Go語言kube-scheduler深度剖析開發(fā)之scheduler初始化

    Go語言kube-scheduler深度剖析開發(fā)之scheduler初始化

    這篇文章主要介紹了Go語言kube-scheduler深度剖析開發(fā)之scheduler初始化實現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Go語言實現(xiàn)二分查找方法示例

    Go語言實現(xiàn)二分查找方法示例

    這篇文章主要為大家介紹了Go語言實現(xiàn)二分查找方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧

    GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧

    這篇文章主要為大家介紹了GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Golang try catch與錯誤處理的實現(xiàn)

    Golang try catch與錯誤處理的實現(xiàn)

    社區(qū)不少人在談論 golang 為毛不用try/catch模式,而采用苛刻的recovery、panic、defer組合,本文就來詳細的介紹一下,感興趣的可以了解一下
    2021-07-07
  • Go語言如何輕松編寫高效可靠的并發(fā)程序

    Go語言如何輕松編寫高效可靠的并發(fā)程序

    這篇文章主要為大家介紹了Go語言輕松編寫高效可靠的并發(fā)程序?qū)崿F(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Golang中的內(nèi)存泄漏你真的理解了嗎

    Golang中的內(nèi)存泄漏你真的理解了嗎

    內(nèi)存泄漏是編程中常見的問題,會對程序的性能和穩(wěn)定性產(chǎn)生嚴重影響,本文將深入詳解?Golang?中的內(nèi)存泄漏的原因、檢測方法以及避免方法,希望對大家有所幫助
    2023-12-12
  • 看看你的Go應用是否用了正確CPU核數(shù)

    看看你的Go應用是否用了正確CPU核數(shù)

    這篇文章主要為大家介紹了Go應用正確的CPU核數(shù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Golang中Mutex 自旋的實現(xiàn)

    Golang中Mutex 自旋的實現(xiàn)

    sync.Mutex是最常用的同步工具,但很少有人知道它在特定條件下會進行智能自旋,本文就來介紹一下Golang中Mutex 自旋的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-06-06
  • golang中進行條件編譯的示例詳解

    golang中進行條件編譯的示例詳解

    條件編譯顧名思義就是在編譯時讓代碼中的一部分生效或者失效,從而控制編譯時的代碼執(zhí)行路徑,進而影響編譯出來的程序的行為,下面我們就來看看如何在golang中進行條件編譯吧
    2025-03-03
  • Go?Java?算法之字符串解碼示例詳解

    Go?Java?算法之字符串解碼示例詳解

    這篇文章主要為大家介紹了Go?Java?算法之字符串解碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論

文安县| 南川市| 五常市| 内江市| 蒲城县| 井研县| 长垣县| 太仓市| 鸡东县| 山丹县| 梁山县| 英山县| 广宗县| 静乐县| 丹巴县| 都昌县| 榆树市| 咸阳市| 区。| 许昌市| 东城区| 桃源县| 绥化市| 视频| 衢州市| 慈溪市| 苍溪县| 集贤县| 廉江市| 高安市| 永川市| 平武县| 长丰县| 商水县| 揭东县| 龙山县| 诏安县| 丰顺县| 连城县| 临高县| 舞阳县|