Go 結構體、陣列、字典和 json 字串的相互轉換方法
阿新 • • 發佈:2020-01-09
Go 語言中 encoding/json 包可以很方便的將結構體、陣列、字典轉換為 json 字串。
引用
import "encoding/json"
解析語法
// v 傳入結構體、陣列等例項變數 // []byte 位元組陣列 // error 可能會有的錯誤 func Marshal(v interface{}) ([]byte,error)
反解析
// []byte 位元組陣列 // v 傳入結構體、陣列等例項變數的指標地址 // 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 // 將字串反解析為陣列 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,4] <nil> b,e = json.Marshal(d) fmt.Println(string(b),e) // {"id":1,"name":"wxnacy"} <nil> }
以上這篇Go 結構體、陣列、字典和 json 字串的相互轉換方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。