欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang中對json的優(yōu)雅處理方式

 更新時間:2023年06月30日 16:26:44   作者:一顆小小的石頭.  
這篇文章主要給大家介紹了關于Golang中對json的優(yōu)雅處理方式,解析JSON在golang中很麻煩,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

背景

作為一種強數(shù)據(jù)類型的語言, Golang 對 json 的處理很麻煩。已知 json 的數(shù)據(jù)類型有:

  • 字符串
  • 數(shù)字
  • 數(shù)組
  • 字典
  • 上述類型的嵌套

如果是弱數(shù)據(jù)類型的語言,例如 js , Python等,不需要考慮類型就直接可以使用。

原有方式

對 json 的處理分為編碼和解碼。 編碼是把已有的數(shù)據(jù)對象轉(zhuǎn)為 json 對象, 解碼反之。

Golang 對編碼比較好處理,直接把數(shù)據(jù)對象放到原生的 json.Marshal() 函數(shù)中即可返回字節(jié)數(shù)組。但對于解碼來說,就比較復雜了。

轉(zhuǎn)化為 map[string]interface

golang 中的 interface 相當于 Java 中的 Object, 什么都可以往里面放,但放進去方便就意味著取出來很麻煩。

例如想要從這個 json 字符串中取出 float64 類型的 數(shù)學成績,需要不斷的做類型轉(zhuǎn)換和map取值判斷,非常復雜。

預定義結(jié)構(gòu)體 struct

預先定義一個結(jié)構(gòu)體,讓內(nèi)置的解碼函數(shù)來做屬性映射, 比上面一種方法方便和常見很多,但是需要預先知道數(shù)據(jù)的詳細結(jié)構(gòu),不然沒法定義出來這個結(jié)構(gòu)體。

推薦: GJSON 處理

  1. 軟性返回,也就是數(shù)據(jù)類型如果對不上會返回對應的零值,而非 err 或者 panic , 所以不需要一定要預先知道原始類型。
  2. 提供多種數(shù)據(jù)類型和對應的 IsXXX() 判斷函數(shù),來輔助解決上面的零值問題
  3. 路徑解析方便, 通過像弱數(shù)據(jù)類型語言一樣 . 語法來做解析,極大的簡化了 json 的解碼問題。

總結(jié) 

到此這篇關于Golang中對json的優(yōu)雅處理方式的文章就介紹到這了,更多相關Golang對json優(yōu)雅處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • golang常見接口限流算法的實現(xiàn)

    golang常見接口限流算法的實現(xiàn)

    本文主要介紹了golang常見接口限流算法的實現(xiàn),包含固定窗口、滑動窗口、漏桶和令牌桶,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • go:垃圾回收GC觸發(fā)條件詳解

    go:垃圾回收GC觸發(fā)條件詳解

    這篇文章主要介紹了go:垃圾回收GC觸發(fā)條件詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • go mock模擬接口的實現(xiàn)

    go mock模擬接口的實現(xiàn)

    本文主要介紹了go mock模擬接口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Go語言如何生成PDF文件實例探究

    Go語言如何生成PDF文件實例探究

    這篇文章主要為大家介紹了Go語言生成PDF文件的實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • GoFrame錯誤處理常用方法及錯誤碼使用示例

    GoFrame錯誤處理常用方法及錯誤碼使用示例

    這篇文章主要為大家介紹了GoFrame錯誤處理常用方法及錯誤碼使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • golang優(yōu)化目錄遍歷的實現(xiàn)方法

    golang優(yōu)化目錄遍歷的實現(xiàn)方法

    對于go1.16的新變化,大家印象最深的可能是io包的大規(guī)模重構(gòu),但這個重構(gòu)實際上還引進了一個優(yōu)化,這篇文章要說的就是這個優(yōu)化,所以本將給大家介紹golang是如何優(yōu)化目錄遍歷的,需要的朋友可以參考下
    2024-08-08
  • Golang環(huán)境變量設置和查看工具go env詳解

    Golang環(huán)境變量設置和查看工具go env詳解

    go env 是 Go 工具鏈中的一個命令,用于設置和查看當前 Golang 環(huán)境的相關信息,對于理解、編譯和運行 Golang 程序非常有用,本文就給大家簡單的介紹一下Golang環(huán)境變量設置和查看工具go env,需要的朋友可以參考下
    2023-07-07
  • 詳解如何使用beego orm在postgres中存儲圖片

    詳解如何使用beego orm在postgres中存儲圖片

    這篇文章主要為大家介紹了如何使用beego orm在postgres中存儲圖片詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • golang中實現(xiàn)graphql請求的方法

    golang中實現(xiàn)graphql請求的方法

    這篇文章主要介紹了如何在golang中實現(xiàn)graphql請求,在本文中,我們介紹了如何使用gqlgen來構(gòu)建GraphQL服務,需要的朋友可以參考下
    2023-04-04
  • 詳解Go 語言中的比較操作符

    詳解Go 語言中的比較操作符

    這篇文章專注于 6 個操作符,==,!=,<,<=,> 和 >=。我們將深入探討它們的語法和用法的細微差別,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08

最新評論