Go语言基础JSON的创建与解析


package main

import (
    "encoding/json"
    "fmt"
)

// 结构体成员首字母大写才能被序列化,`json:字段` 表示在json中显示的字段
type person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    p1 := person{
        Name: "John",
        Age:  10,
    }
    // 序列化成json
    b, err := json.Marshal(p1)
    if err != nil {
        fmt.Println("数据不能为空!")
    }
    fmt.Printf("%#v\n", string(b))

    str := `
    {
        "username":"root",
        "password":"password",
    }
    `
    var p2 person
    // 反序列化成go struct
    json.Unmarshal([]byte(str), &p2)
    fmt.Printf("%#v\n", p2)

}