Go 语言中
encoding/json
包可以很方便的将结构体、数组、字典转换为 json 字符串。
1. 相关语法
1.1 引入
import "encoding/json"
1.2 解析语法
// v 传入结构体、数组等实例变量
// []byte 字节数组
// error 可能会有的错误
func Marshal(v interface{}) ([]byte, error)
1.3 反解析
// []byte 字节数组
// v 传入结构体、数组等实例变量的指针地址
// error 可能会有的错误
func Unmarshal(data []byte, v interface{}) error
2 代码
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Id int `json:"id"`
Name string `json:"name"`
}
func main() {
// 字符串解析为结构体
s := `{"id": 1, "name": "xiaoliu"}`
var user User
// 将字符串反解析为结构体
json.Unmarshal([]byte(s), &user)
fmt.Println(user) // {1 xiaoliu}
var d map[string]interface{}
// 将字符串反解析为字典
json.Unmarshal([]byte(s), &d)
fmt.Println(d) // map[id:1 xiaoliu]
s = `[1, 2, 3, 4]`
var a []int
// 将字符串反解析为数组
json.Unmarshal([]byte(s), &a)
fmt.Println(a) // [1 2 3 4]
// 将结构体解析为字符串
b, _ := json.Marshal(user)
fmt.Println(string(b)) // {"id":1,"name":"xiaoliu"}
b, _ = json.Marshal(a)
fmt.Println(string(b)) // [1,2,3,4]
b, _ = json.Marshal(d)
fmt.Println(string(b)) // {"id":1,"name":"xiaoliu"}
}
以上这篇Go 结构体、数组、字典和 json 字符串的相互转换方法就是全部内容了,希望能给大家一个参考。
更多内容请参参考: