Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法
更新時(shí)間:2019年08月26日 09:34:55 作者:哆啦A夢~~
今天小編就為大家分享一篇Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
Go 語言中 encoding/json 包可以很方便的將結(jié)構(gòu)體、數(shù)組、字典轉(zhuǎn)換為 json 字符串。
引用
import "encoding/json"
解析語法
// v 傳入結(jié)構(gòu)體、數(shù)組等實(shí)例變量
// []byte 字節(jié)數(shù)組
// error 可能會(huì)有的錯(cuò)誤
func Marshal(v interface{}) ([]byte, error)
反解析
// []byte 字節(jié)數(shù)組
// v 傳入結(jié)構(gòu)體、數(shù)組等實(shí)例變量的指針地址
// error 可能會(huì)有的錯(cuò)誤
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)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- JavaScript實(shí)現(xiàn)字符串轉(zhuǎn)數(shù)組的6種方法總結(jié)
- 如何將JSON字符串?dāng)?shù)組轉(zhuǎn)對象集合
- JS數(shù)組轉(zhuǎn)字符串實(shí)現(xiàn)方法解析
- JS字符串和數(shù)組如何實(shí)現(xiàn)相互轉(zhuǎn)化
- javascript實(shí)現(xiàn)的字符串轉(zhuǎn)換成數(shù)組操作示例
- JS實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)為json格式字符串操作示例
- JSON PHP中,Json字符串反序列化成對象/數(shù)組的方法
- JS實(shí)現(xiàn)字符串去重及數(shù)組去重的方法示例
- JS字符串轉(zhuǎn)換為數(shù)組的4 個(gè)方法示例小結(jié)
相關(guān)文章
Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)
這篇文章主要介紹了Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
淺析Golang中調(diào)度器的關(guān)鍵機(jī)制與性能
Golang的調(diào)度器是其并發(fā)模型的核心組件,負(fù)責(zé)管理Goroutine的調(diào)度和執(zhí)行,本文將從理論和代碼層面分析Golang調(diào)度器的關(guān)鍵機(jī)制,感興趣的可以了解下2025-03-03
Go語言字典(map)用法實(shí)例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】
這篇文章主要介紹了Go語言字典(map)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Go語言字典的創(chuàng)建、填充、遍歷、查找、修改、刪除等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-02-02
GoLang協(xié)程庫libtask學(xué)習(xí)筆記
libtask一個(gè)C語言的協(xié)程庫,是go語言的前身很早期的原型. 測試機(jī)器是我的mac air 安裝的centos虛擬機(jī)(只有一個(gè)核), 代碼沒有采用任何優(yōu)化,只是使用默認(rèn)配置2022-12-12

