go 转json和解析json
时间: 2023-12-17 10:04:27 浏览: 46
Go语言标准库中有一个内置的 `encoding/json` 包,用于将Go语言中的数据类型转换为JSON格式的数据或者将JSON格式的数据解析成Go语言中的数据类型。
以下是将Go语言中的数据类型转换为JSON格式的数据的示例代码:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{Name: "Alice", Age: 18}
jsonBytes, err := json.Marshal(p)
if err != nil {
fmt.Println("failed to marshal Person to JSON:", err)
return
}
fmt.Println(string(jsonBytes))
}
```
输出结果为:
```
{"name":"Alice","age":18}
```
以下是将JSON格式的数据解析成Go语言中的数据类型的示例代码:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `{"name": "Bob", "age": 20}`
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
fmt.Println("failed to unmarshal JSON to Person:", err)
return
}
fmt.Println(p.Name, p.Age)
}
```
输出结果为:
```
Bob 20
```
在上述示例代码中,`json.Marshal` 函数用于将 `Person` 结构体转换为JSON格式的数据,`json.Unmarshal` 函数用于将JSON格式的数据解析成 `Person` 结构体。需要注意的是, `Person` 结构体中的字段必须是导出的(即首字母大写),否则 `json.Marshal` 和 `json.Unmarshal` 函数将无法正常工作。此外,结构体字段的 `json` tag 可以指定JSON格式中对应的字段名。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)