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

Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法

 更新時間:2019年08月26日 09:34:55   作者:哆啦A夢~~  
今天小編就為大家分享一篇Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Go 語言中 encoding/json 包可以很方便的將結(jié)構(gòu)體、數(shù)組、字典轉(zhuǎn)換為 json 字符串。

引用

import "encoding/json"

解析語法

// v 傳入結(jié)構(gòu)體、數(shù)組等實例變量
// []byte 字節(jié)數(shù)組
// error 可能會有的錯誤
func Marshal(v interface{}) ([]byte, error)

反解析

// []byte 字節(jié)數(shù)組
// v 傳入結(jié)構(gòu)體、數(shù)組等實例變量的指針地址
// error 可能會有的錯誤
func Unmarshal(data []byte, v interface{}) error

代碼

package main
 
// https://golang.org/pkg/encoding/json/
// https://cloud.tencent.com/developer/section/1141542#stage-100023262
 
import (
 "fmt"
 "encoding/json"
)
 
type User struct {
 Id int `json:"id"`
 Name string `json:"name"`
}
 
func main() {
 // 字符串解析為結(jié)構(gòu)體
 s := `{"id": 1, "name": "wxnacy"}`
 
 var user User
 // 將字符串反解析為結(jié)構(gòu)體
 json.Unmarshal([]byte(s), &user)
 fmt.Println(user) // {1 wxnacy}
 
 var d map[string]interface{}
 // 將字符串反解析為字典
 json.Unmarshal([]byte(s), &d)
 fmt.Println(d)  // map[id:1 name:wxnacy]
 
 
 s = `[1, 2, 3, 4]`
 var a []int
 // 將字符串反解析為數(shù)組
 json.Unmarshal([]byte(s), &a)
 fmt.Println(a)  // [1 2 3 4]
 
 // 將結(jié)構(gòu)體解析為字符串
 b, e := json.Marshal(user)
 fmt.Println(e)
 fmt.Println(string(b)) // {"id":1,"name":"wxnacy"}
 
 b, e = json.Marshal(a)
 fmt.Println(string(b), e) // [1,2,3,4] <nil>
 
 b, e = json.Marshal(d)
 fmt.Println(string(b), e) // {"id":1,"name":"wxnacy"} <nil>
}

以上這篇Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Go語言中new和make關(guān)鍵字的區(qū)別

    詳解Go語言中new和make關(guān)鍵字的區(qū)別

    本篇文章來介紹一道非常常見的面試題,到底有多常見呢?可能很多面試的開場白就是由此開始的。那就是 new 和 make 這兩個內(nèi)置函數(shù)的區(qū)別,希望對大家有所幫助
    2023-03-03
  • Go語言中的Slice學(xué)習(xí)總結(jié)

    Go語言中的Slice學(xué)習(xí)總結(jié)

    這篇文章主要介紹了Go語言中的Slice學(xué)習(xí)總結(jié),本文講解了Slice的定義、Slice的長度和容量、Slice是引用類型、Slice引用傳遞發(fā)生“意外”等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Go語言的文件操作代碼匯總

    Go語言的文件操作代碼匯總

    本文給大家匯總介紹了go語言中的文件操作的代碼,包括文件的讀寫,文件的新建打開和刪除等,希望對大家學(xué)習(xí)go語言能夠有所幫助
    2018-10-10
  • Go可變參數(shù)函數(shù)的實現(xiàn)

    Go可變參數(shù)函數(shù)的實現(xiàn)

    可變參數(shù)函數(shù)是指函數(shù)參數(shù)的某個參數(shù)可有可無,即這個參數(shù)的個數(shù)可以為0會多個,可變參數(shù)函數(shù)參數(shù)在日常編程中大量使用,本文主要介紹了Go可變參數(shù)函數(shù)的實現(xiàn),感興趣的可以了解一下
    2023-12-12
  • golang調(diào)用藍(lán)兔支付實現(xiàn)網(wǎng)上支付功能

    golang調(diào)用藍(lán)兔支付實現(xiàn)網(wǎng)上支付功能

    支付寶、微信的網(wǎng)上支付需要營業(yè)執(zhí)照個人無法直接使用,如果個人需要實現(xiàn)網(wǎng)上支付功能,目前大部分應(yīng)該是都是依賴第三方聚合支付來實現(xiàn),本文就來介紹一下如何調(diào)用藍(lán)兔支付實現(xiàn)網(wǎng)上支付功能,有需要的可以參考下
    2023-09-09
  • Go并發(fā):使用sync.WaitGroup實現(xiàn)協(xié)程同步方式

    Go并發(fā):使用sync.WaitGroup實現(xiàn)協(xié)程同步方式

    這篇文章主要介紹了Go并發(fā):使用sync.WaitGroup實現(xiàn)協(xié)程同步方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言構(gòu)建流數(shù)據(jù)pipeline的示例詳解

    Go語言構(gòu)建流數(shù)據(jù)pipeline的示例詳解

    Go的并發(fā)原語可以輕松構(gòu)建流數(shù)據(jù)管道,從而高效利用?I/O?和多個?CPU,?本文展示了此類pipelines的示例,強調(diào)了操作失敗時出現(xiàn)的細(xì)微之處,并介紹了干凈地處理失敗的技術(shù),希望對大家有所幫助
    2024-02-02
  • 深入了解Go語言編譯鏈接的過程

    深入了解Go語言編譯鏈接的過程

    Go在編譯時會將interface和channel關(guān)鍵字轉(zhuǎn)換成runtime中的結(jié)構(gòu)和函數(shù)調(diào)用,所以小編覺得很有必要就Go的編譯過程理一理做個進(jìn)行總結(jié),下面就來和小編一起了解一下Go語言編譯鏈接的過程吧
    2023-08-08
  • Golang實現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解

    Golang實現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解

    這篇文章主要介紹了如何利用Go語言實現(xiàn)對文件夾的常用操作:創(chuàng)建于刪除。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Go?gRPC進(jìn)階教程服務(wù)超時設(shè)置

    Go?gRPC進(jìn)階教程服務(wù)超時設(shè)置

    這篇文章主要為大家介紹了Go?gRPC進(jìn)階,gRPC請求的超時時間設(shè)置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評論