Go 結構體、數(shù)組、字典和 json 字符串的相互轉換方法
更新時間:2019年08月26日 09:34:55 作者:哆啦A夢~~
今天小編就為大家分享一篇Go 結構體、數(shù)組、字典和 json 字符串的相互轉換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
Go 語言中 encoding/json 包可以很方便的將結構體、數(shù)組、字典轉換為 json 字符串。
引用
import "encoding/json"
解析語法
// v 傳入結構體、數(shù)組等實例變量
// []byte 字節(jié)數(shù)組
// error 可能會有的錯誤
func Marshal(v interface{}) ([]byte, error)
反解析
// []byte 字節(jié)數(shù)組
// v 傳入結構體、數(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() {
// 字符串解析為結構體
s := `{"id": 1, "name": "wxnacy"}`
var user User
// 將字符串反解析為結構體
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]
// 將結構體解析為字符串
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 結構體、數(shù)組、字典和 json 字符串的相互轉換方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
golang調(diào)用藍兔支付實現(xiàn)網(wǎng)上支付功能
支付寶、微信的網(wǎng)上支付需要營業(yè)執(zhí)照個人無法直接使用,如果個人需要實現(xiàn)網(wǎng)上支付功能,目前大部分應該是都是依賴第三方聚合支付來實現(xiàn),本文就來介紹一下如何調(diào)用藍兔支付實現(xiàn)網(wǎng)上支付功能,有需要的可以參考下2023-09-09
Go并發(fā):使用sync.WaitGroup實現(xiàn)協(xié)程同步方式
這篇文章主要介紹了Go并發(fā):使用sync.WaitGroup實現(xiàn)協(xié)程同步方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Go語言構建流數(shù)據(jù)pipeline的示例詳解
Go的并發(fā)原語可以輕松構建流數(shù)據(jù)管道,從而高效利用?I/O?和多個?CPU,?本文展示了此類pipelines的示例,強調(diào)了操作失敗時出現(xiàn)的細微之處,并介紹了干凈地處理失敗的技術,希望對大家有所幫助2024-02-02
Golang實現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解
這篇文章主要介紹了如何利用Go語言實現(xiàn)對文件夾的常用操作:創(chuàng)建于刪除。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2022-05-05

