henryspace

记录精彩的程序人生 开始使用

Part 28 - Go 语言学习 - Json 数据格式处理

json数据格式处理

  1. 代码示例
package main

import (
	"encoding/json"
	"fmt"
)

type OrderItem struct {
	ID 		string	`json:"id"` // 打tag,作为json输出的标识
	Name 	string	`json:"name"`
	Price 	float64	`json:"price"`
}

type Order struct {
	ID 			string			`json:"id"`
	Name 		string			`json:"name,omitempty"`
	Items 		[]OrderItem	    `json:"items"`
	TotalPrice 	float64			`json:"totalPrice"`
}

func marshal() {
	o := Order{
		ID: "1234",
		TotalPrice: 33,
		Items: []OrderItem{
			{
				ID:			"item_1",
				Name:		"hello",
				Price:		34,
			},
			{
				ID:			"item_2",
				Name:		"hello",
				Price:		34,
			},
		},
	}

	b, err := json.Marshal(o)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%s\n", b)
}

func unmarshal() {
	s := `{"id":"1234","items":[{"id":"item_1","name":"hello","price":34},{"id":"item_2","name":"hello","price":34}],"totalPrice":33}`

	var o Order
	err := json.Unmarshal([]byte(s), &o)
	if err != nil {
		panic(err)
	}
	fmt.Printf("%+v\n", o)
}


func main() {

	// 将struct 转为json
	//marshal()

	// 将json 解析为struct
	unmarshal()
}

评论
留下你的脚步