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

Go處理JSON數(shù)據(jù)的實(shí)現(xiàn)

 更新時(shí)間:2023年02月17日 11:13:42   作者:Hejjon  
本文主要介紹了Go處理JSON數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Go 處理 json數(shù)據(jù)主要就是使用 json 包下的 Marshal 和 UnMarshal 兩個(gè)函數(shù)。

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

type User struct {
    Name    string   `json:"name"`
    Age     int      `json:"age"`
    Height  float64  `json:"height"`
    Hobbies []string `json:"hobbies"`
}

json 標(biāo)簽定義的名稱就是轉(zhuǎn)json時(shí)的key

1. 結(jié)構(gòu)體對(duì)象轉(zhuǎn) JSON 字符串

u := User{"張三", 19, 180.0, []string{"籃球", "跑步"}}
bytes, _ := json.Marshal(u)        // Marshal函數(shù)轉(zhuǎn)成的是 byte 數(shù)組
jsonStr := string(bytes)        // 通過(guò)類型轉(zhuǎn)換將字節(jié)數(shù)組轉(zhuǎn)成json字符串
fmt.Println(jsonStr)

打印結(jié)果如下:

{"name":"張三","age":19,"height":180,"hobbies":["籃球","跑步"]}

2.  JSON 字符串轉(zhuǎn)結(jié)構(gòu)體對(duì)象

var u2 User        // 定義結(jié)構(gòu)體變量接收
jsonStr := `{"name":"張三","age":19,"height":180,"hobbies":["籃球","跑步"]}`
_ = json.Unmarshal([]byte(jsonStr), &u2)    // 相反地類型轉(zhuǎn)換將json字符串轉(zhuǎn)成字節(jié)數(shù)組后 再調(diào)用 json.Unmarshal 函數(shù)
fmt.Println(u2)

打印結(jié)果如下:

{張三 19 180 [籃球 跑步]}

3. 結(jié)構(gòu)體切片轉(zhuǎn)JSON字符串

和對(duì)象類型一樣,都是調(diào)用json包的 Marshal 方法

u1 := User{"張三", 19, 180.0, []string{"籃球", "跑步"}}
u2 := User{"李四", 18, 172.0, []string{"散步", "看書(shū)"}}
u3 := User{"王五", 20, 169.0, []string{"籃球", "爬山"}}
u4 := User{"趙六", 21, 158.0, []string{"乒乓球", "涉水"}}
 
// 定義切片
users := []User{u1, u2, u3, u4}
bytes, _ := json.Marshal(users)
jsonStr := string(bytes)
fmt.Println(jsonStr)

4. JSON字符串(JSON數(shù)組)轉(zhuǎn)切片

var users2 []User        // 定義結(jié)構(gòu)體切片
_ = json.Unmarshal([]byte(jsonStr), &users2)    // 將json數(shù)組(字符串)轉(zhuǎn)成結(jié)構(gòu)體切片
fmt.Println(users2)

參數(shù) jsonStr 就是3中轉(zhuǎn)成的json字符串

5. JSON 字符串轉(zhuǎn)Map,不需要定義結(jié)構(gòu)體

    jsonStr := `{"name": "zhangsan", "age": 19}`
    mp := make(map[string]interface{})
    _ = json.Unmarshal([]byte(jsonStr), &mp)
    fmt.Println(mp)
    fmt.Println(mp["name"]) // zhangsan
    
    // 遍歷map
    for k, v := range mp {
        fmt.Println(k, v)
    }

到此這篇關(guān)于Go處理JSON數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Go處理JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go-zero數(shù)據(jù)的流處理利器fx使用詳解

    go-zero數(shù)據(jù)的流處理利器fx使用詳解

    這篇文章主要為大家介紹了go-zero數(shù)據(jù)的流處理利器fx使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 一文詳解Golang使用接口支持Apply方法的配置模式

    一文詳解Golang使用接口支持Apply方法的配置模式

    這篇文章主要為大家介紹了一文詳解Golang使用接口支持Apply方法的配置模式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Kotlin編程基礎(chǔ)語(yǔ)法編碼規(guī)范

    Kotlin編程基礎(chǔ)語(yǔ)法編碼規(guī)范

    這篇文章主要為大家介紹了Kotlin編程條件控制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go語(yǔ)言切片擴(kuò)容原理和過(guò)程

    Go語(yǔ)言切片擴(kuò)容原理和過(guò)程

    切片(Slice)在 Go 語(yǔ)言中,有一個(gè)很常用的數(shù)據(jù)結(jié)構(gòu),切片是一個(gè)擁有相同類型元素的可變長(zhǎng)度的序列,它是基于數(shù)組類型做的一層封裝,它非常靈活,支持自動(dòng)擴(kuò)容,并發(fā)不安全,本文給大家介紹了Go 語(yǔ)言切片如何擴(kuò)容,需要的朋友可以參考下
    2025-02-02
  • 入門(mén)學(xué)習(xí)Go的基本語(yǔ)法

    入門(mén)學(xué)習(xí)Go的基本語(yǔ)法

    這篇文章主要介紹了Go語(yǔ)法的基本概念,本文講解了Golang的基本知識(shí)、基礎(chǔ)語(yǔ)法、相關(guān)術(shù)語(yǔ)等,需要的朋友可以參考下,希望能幫助到你
    2021-07-07
  • go 如何修改postgresql的配置參數(shù)

    go 如何修改postgresql的配置參數(shù)

    這篇文章主要介紹了go 如何修改postgresql的配置參數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • 詳解Golang中select的使用與源碼分析

    詳解Golang中select的使用與源碼分析

    select?是?Go?提供的?IO?多路復(fù)用機(jī)制,可以用多個(gè)?case?同時(shí)監(jiān)聽(tīng)多個(gè)?channl?的讀寫(xiě)狀態(tài)。本文將從源碼角度帶大家了解一下select的使用,需要的可以參考一下
    2022-12-12
  • 深入Go goroutine理解

    深入Go goroutine理解

    這篇文章主要介紹了深入Go goroutine理解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Go系列教程之反射的用法

    Go系列教程之反射的用法

    這篇文章主要介紹了Go系列教程之反射的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Go語(yǔ)言通道之無(wú)緩沖通道

    Go語(yǔ)言通道之無(wú)緩沖通道

    這篇文章介紹了Go語(yǔ)言通道之無(wú)緩沖通道,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

湘潭市| 安溪县| 永泰县| 民勤县| 定州市| 宜良县| 栖霞市| 砚山县| 宜良县| 井陉县| 抚顺县| 沂水县| 渭源县| 深州市| 苍南县| 汉川市| 灌阳县| 攀枝花市| 宝山区| 封开县| 登封市| 法库县| 舟山市| 霞浦县| 杭锦旗| 陕西省| 青海省| 平邑县| 奉贤区| 墨脱县| 云安县| 海盐县| 石棉县| 漠河县| 开阳县| 浮山县| 五莲县| 朝阳区| 丹棱县| 横峰县| 沙河市|