Go语言encoding/json库:JSO解析和编码(附带实例)
Go 语言的 encoding/json 库用于 JSON 解析(解码)和编码:
【实例】使用 encoding/json 库中的 Unmarshal() 函数,把 JSON 字符串转换为与其对应的结构体。代码如下:
【实例】使用 encoding/json 库中的 Marshal() 函数,把结构体转换为与其对应的 JSON 字符串。代码如下:
- 解码 JSON 是指把 JSON 字符串转换为结构体(struct);
- 编码 JSON 与解码 JSON 相反是指把结构体(struct)转换为 JSON 字符串。
Go语言解码JSON
encoding/json 库的 Unmarshal() 函数可以把 JSON 字符串转换为结构体。语法格式如下:
func Unmarshal(data []byte, v interface{}) error
【实例】使用 encoding/json 库中的 Unmarshal() 函数,把 JSON 字符串转换为与其对应的结构体。代码如下:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string
Age int
Sex string
}
func Unmarshal() {
b1 := []byte(`{"Name":"David","Age":26,"Sex":"Male"}`)
var m Person
json.Unmarshal(b1, &m)
fmt.Printf("m: %v\n", m)
}
func main() {
Unmarshal()
}
运行结果如下:
m: {David 26 Male}
Go语言编码JSON
encoding/json 库的 Marshal() 函数可以把结构体转换为 JSON 字符串。语法格式如下:
func Marshal(v interface{}) ([]byte, error)
【实例】使用 encoding/json 库中的 Marshal() 函数,把结构体转换为与其对应的 JSON 字符串。代码如下:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string
Age int
Sex string
}
func Marshal() {
p := Person{
Name: "David",
Age: 26,
Sex: "Male",
}
b, _ := json.Marshal(p)
fmt.Printf("b: %v\n", string(b))
}
func main() {
Marshal()
}
运行结果如下:
b: {"Name":"David","Age":26,"Sex":"Male"}
ICP备案:
公安联网备案: