Go 結構體、數組、字典和 json 字符串的相互轉換方法

今天小編就爲大家分享一篇Go 結構體、數組、字典和 json 字符串的相互轉換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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,2,3,4] <nil>
 
 b, e = json.Marshal(d)
 fmt.Println(string(b), e) // {"id":1,"name":"wxnacy"} <nil>
}

以上這篇Go 結構體、數組、字典和 json 字符串的相互轉換方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章