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

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

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

Go 處理 json數(shù)據(jù)主要就是使用 json 包下的 Marshal 和 UnMarshal 兩個函數(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時的key

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

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

打印結(jié)果如下:

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

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

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字符串

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

u1 := User{"張三", 19, 180.0, []string{"籃球", "跑步"}}
u2 := User{"李四", 18, 172.0, []string{"散步", "看書"}}
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ù)的實現(xiàn)的文章就介紹到這了,更多相關(guān)Go處理JSON內(nèi)容請搜索腳本之家以前的文章或繼續(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ǔ)語法編碼規(guī)范

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

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

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

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

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

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

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

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

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

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

    深入Go goroutine理解

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

    Go系列教程之反射的用法

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

    Go語言通道之無緩沖通道

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

最新評論

河西区| 定边县| 武乡县| 泗洪县| 姜堰市| 通榆县| 清徐县| 璧山县| 柞水县| 莱阳市| 仁寿县| 乌什县| 历史| 元氏县| 木里| 句容市| 星子县| 龙泉市| 腾冲县| 北流市| 加查县| 永平县| 衢州市| 灵石县| 晋中市| 宽甸| 通江县| 玉环县| 平邑县| 民乐县| 贵定县| 云龙县| 师宗县| 衡阳县| 天峨县| 新沂市| 灵武市| 商丘市| 水城县| 宁明县| 武强县|