一、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语言中的基本数据类型。