Golang JSON 利用结构体编码 JSON 数据 使用方法

方法步骤:

1. 先声明结构体。

2. 再定义实例化结构体:为结构体赋值。

3. 使用 json.Marshal(结构体实例化对象名) 将结构体数据编码成 JSON 数据格式。

4. 即可:编码 JSON 数据成功!

打印输出结构体 :fmt.Printf("%+v\n", 构体实例化对象名)

5. 编码后的结构体的数据类型是 []byte : unit8 。



示例代码:

package main

import (
	"encoding/json"
	"fmt"
	"log"
	"reflect"
)

type person struct {
	Name    string
	Age     int
	Address []string
}

func main() {
	address := []string{"China", "Guangdong", "Shenzhen"}
	p := person{
		Name:    "www.ydook.com",
		Age:     26,
		Address: address,
	}

	fmt.Printf("%+v\n", p)

	fmt.Println(p.Address)
	fmt.Println(p.Age)
	fmt.Println(p.Name)

	jsonByteData, err := json.Marshal(p)

	fmt.Println("reflect.TypeOf(p) = ", reflect.TypeOf(p))
	fmt.Println("reflect.TypeOf(jsonByteData) = ", reflect.TypeOf(jsonByteData))

	if err != nil {
		log.Fatal(err)
	} else {
		jsonByteData := string(jsonByteData)
		fmt.Println(jsonByteData)
	}

	fmt.Println("reflect.TypeOf(jsonByteData) = ", reflect.TypeOf(jsonByteData))

}

运行结果:

{Name:www.ydook.com  Age:26 Address:[China Guangdong Shenzhen]}
[China Guangdong Shenzhen]
26
Ydook
reflect.TypeOf(p) =  main.person
reflect.TypeOf(jsonByteData) =  []uint8
{"Name":"Ydook","Age":26,"Address":["China","Guangdong","Shenzhen"]}
reflect.TypeOf(jsonByteData) =  []uint8


你可能感兴趣的:(Golang,YDOOK,I,Golang,极速入门,+,重要知识点)