Skip to content

go json

go
package main

import (
	"encoding/json"
)

api

  • func Marshal(v interface{}) ([]byte, error): 将数据编码成json
  • func Unmarshal(data []byte, v interface{}) error: 将json解码成数据

示例

go
// example
// 定义一个结构体
type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func main() {
	// 创建一个 Person 类型的实例
	p := Person{Name: "John", Age: 30}

	// 使用 json.Marshal() 将结构体编码为 JSON
	jsonData, err := json.Marshal(p)
	if err != nil {
		fmt.Println("Error encoding JSON:", err)
		return
	}

	// 输出 JSON 数据
	fmt.Println(string(jsonData))
}

func main() {
	// 定义 JSON 数据
	jsonData := `{"name":"Alice","age":25}`

	// 创建一个 Person 类型的变量
	var p Person

	// 使用 json.Unmarshal() 将 JSON 解码为结构体
	err := json.Unmarshal([]byte(jsonData), &p)
	if err != nil {
		fmt.Println("Error decoding JSON:", err)
		return
	}

	// 输出解码后的结构体
	fmt.Println("Name:", p.Name)
	fmt.Println("Age:", p.Age)
}