在 Go 中编码 JSON 数据可用以下步骤:使用 json.Marshal 将 Go 类型编码为 JSON 字节切片。使用 json.Unmarshal 从 JSON 编码解码 Go 类型,将 JSON 字节切片存储在 Go 类型中。
在 Go 语言中对 JSON 数据进行编码是可以通过使用 encoding/json
标准库来完成的简单明了的过程。该库提供了丰富的函数用于将 Go 类型编码为 JSON,以及从 JSON 编码中解码 Go 类型。
要将Go类型编码为JSON,可以使用 json.Marshal
函数。该函数接受一个 Go 值并返回其相应的 JSON 编码的字节切片。
package main import ( "encoding/json" "fmt" ) type User struct { Name string Age int Admin bool } func main() { user := User{Name: "John Doe", Age: 30, Admin: false} jsonBytes, err := json.Marshal(user) if err != nil { fmt.Println("Error encoding user:", err) return } fmt.Println(string(jsonBytes)) }
上面的代码片段会输出如下 JSON:
{"Name":"John Doe","Age":30,"Admin":false}
要从 JSON 编码中解码一个 Go 类型,可以使用 json.Unmarshal
函数。该函数接受一个 JSON 编码的字节切片,并将相应的值存储在提供的 Go 类型中。
package main import ( "encoding/json" "fmt" ) type User struct { Name string Age int Admin bool } func main() { jsonBytes := []byte(`{"Name":"John Doe","Age":30,"Admin":false}`) var user User if err := json.Unmarshal(jsonBytes, &user); err != nil { fmt.Println("Error decoding user:", err) return } fmt.Println(user) }
上面的代码片段会输出以下结果:
{John Doe 30 false}
在很多实际场景中需要将 Go 类型编码为 JSON,比如:
相反,从 JSON 编码解码 Go 类型也有很多实际应用,比如:
以上是如何在 Golang 中编码 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!