go-json 库的安装和使用

41 min read

安装

在终端下输入以下命令安装go-json库:

go get github.com/json-iterator/go

使用

以下示例演示了如何使用go-json库将一个JSON字符串解码为struct对象:

package main

import (
	"fmt"
	"github.com/json-iterator/go"
)

type Person struct {
	Name    string
	Age     int
	Address Address
}

type Address struct {
	City  string
	State string
}

func main() {
	jsonString := `{"name":"John Doe","age":30,"address":{"city":"New York","state":"NY"}}`
	var person Person
	err := jsoniter.Unmarshal([]byte(jsonString), &person)
	if err != nil {
		fmt.Println("Error:", err)
	}
	fmt.Printf("%+v\n", person)
}

将输出以下内容:

{Name:John Doe Age:30 Address:{City:New York State:NY}}

我们还可以将一个struct对象编码成JSON字符串:

package main

import (
	"fmt"
	"github.com/json-iterator/go"
)

type Person struct {
	Name    string
	Age     int
	Address Address
}

type Address struct {
	City  string
	State string
}

func main() {
	person := Person{
		Name: "John Doe",
		Age:  30,
		Address: Address{
			City:  "New York",
			State: "NY",
		},
	}
	jsonString, err := jsoniter.Marshal(person)
	if err != nil {
		fmt.Println("Error:", err)
	}
	fmt.Println(string(jsonString))
}

将输出以下内容:

{"Name":"John Doe","Age":30,"Address":{"City":"New York","State":"NY"}}