Golang 操作 JSON 时容易踩的 7 个坑
在 Golang 中操作 JSON 时,可能会遇到一些常见的问题和陷阱。以下是一些需要注意的点:
- 使用
encoding/json
包。 - 使用
map[string]interface{}
处理动态 JSON。 - 使用指针来修改结构体字段的值。
- 正确处理 JSON 数组,可以用
[]interface{}
或者自定义 slice 类型。 - 确保 JSON 字段的首字母为大写以便于导出(在其他包中使用)。
- 使用
json.Marshal
和json.Unmarshal
进行序列化和反序列化。 - 处理 JSON 解码错误。
示例代码:
package main
import (
"encoding/json"
"fmt"
)
func main() {
// JSON 解码示例
jsonData := `{"name":"John", "age":30}`
var result map[string]interface{}
err := json.Unmarshal([]byte(jsonData), &result)
if err != nil {
panic(err)
}
fmt.Println(result)
// JSON 编码示例
name := "Jane"
age := 25
data, err := json.Marshal(map[string]interface{}{
"name": name,
"age": age,
})
if err != nil {
panic(err)
}
fmt.Println(string(data))
}
在这个例子中,我们展示了如何进行 JSON 的解码和编码。注意错误处理是必要的,因为 JSON 操作可能会因格式错误、字段不存在等原因失败。
评论已关闭