首页 > 编程笔记 > Go语言笔记 阅读:6

Go语言encoding/json库:JSO解析和编码(附带实例)

Go 语言的 encoding/json 库用于 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"}

相关文章