一、JSON的生成

Go语言中使用encoding/json包来生成JSON数据。encoding/json包主要提供了Marshal和Unmarshal两个函数,分别用于json数据的编码和解码。Marshal函数可以将Go语言中的基本数据类型,比如string、int、float64、bool、slice、map等类型转换为JSON格式的字符串。

使用Marshal函数生成JSON数据,只需要将要转换的Go数据类型传入到Marshal函数中,就可以得到一个JSON格式的字符串。例如:

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// 定义一个map
	m := make(map[string]string)
	m["name"] = "Tom"
	m["age"] = "18"
	
	// 将map转换为json格式的字符串
	data, err := json.Marshal(m)
	if err != nil {
		fmt.Println("json marshal failed, err:", err)
		return
	}
	fmt.Printf("%s\n", data)
}

运行结果如下:

{"name":"Tom","age":"18"}

二、JSON的解析

Go语言中使用encoding/json包来解析JSON数据。encoding/json包主要提供了Marshal和Unmarshal两个函数,分别用于json数据的编码和解码。Unmarshal函数可以将JSON格式的字符串解析成Go语言中的基本数据类型,比如string、int、float64、bool、slice、map等类型。

使用Unmarshal函数解析JSON数据,只需要将JSON格式的字符串传入到Unmarshal函数中,就可以得到一个Go数据类型。例如:

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// 定义一个json格式的字符串
	data := `{"name":"Tom","age":"18"}`
	
	// 定义一个map
	m := make(map[string]string)
	
	// 将json格式的字符串解析到map中
	err := json.Unmarshal([]byte(data), &m)
	if err != nil {
		fmt.Println("json unmarshal failed, err:", err)
		return
	}
	fmt.Printf("%#v\n", m)
}

运行结果如下:

map[string]string{"name":"Tom", "age":"18"}

三、总结

Go语言中使用encoding/json包来处理JSON数据,encoding/json包提供了Marshal和Unmarshal两个函数,分别用于json数据的编码和解码。Marshal函数可以将Go语言中的基本数据类型转换为JSON格式的字符串,Unmarshal函数可以将JSON格式的字符串解析成Go语言中的基本数据类型。