如何正确将Go结构体转换为JSON并处理错误?
大家好!我刚开始学习Go,在处理JSON时遇到了问题。我尝试将结构体转换为JSON,但没有任何效果。
这是我的代码:
```go
package main
import (
"fmt"
"encoding/json"
)
type Person struct {
Name string
Age int
City string
}
func main() {
p := Person{Name: "伊万", Age: 30, City: "莫斯科"}
// 尝试转换为JSON
result := json.Marshal(p)
fmt.Println(result)
}
```
我没有得到正常的JSON,而是得到了像`[123 34 78 97...]`这样的奇怪输出。我期望看到类似`{"Name":"伊万","Age":30,"City":"莫斯科"}`的内容。
为什么会这样?我读过文档,但那里写得太复杂了。是不是需要添加一些标签?还是我调用函数的方式不对?请解释一下如何在Go中正确地将结构体序列化为JSON。
还有一个问题:如果结构体中有嵌套结构体或切片该怎么办?私有字段如何处理?以及如何错误处理?