go - 使用结构解析 JSON
问题描述
我正在尝试使用 Go 解析 JSON。谁能告诉我为什么我的代码没有按预期工作?
package main
import (
"encoding/json"
"fmt"
)
type Message struct {
Name string
Body string
Time int64
}
type Person struct {
M Message
}
func get_content() {
body := []byte(`{"person":{"Name":"Alice","Body":"Hello","Time":1294706395881547000}}`)
var data Person
err := json.Unmarshal(body, &data)
if err != nil {
panic(err.Error())
}
fmt.Printf("%v",data.M.Name)
}
func main() {
get_content()
}
我期待它打印名称。
解决方案
这是将 JSON 解组到结构的方法。你可以在 Go Playground 上查看:
package main
import (
"encoding/json"
"fmt"
)
type Message struct {
Name string
Body string
Time int64
}
type Person struct {
M Message
}
func get_content() {
body := []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
var data Person
err := json.Unmarshal(body, &data.M)
if err != nil {
panic(err.Error())
}
fmt.Printf(data.M.Name)
}
func main() {
get_content()
}
替换data
为data.M
下一行。
err := json.Unmarshal(body, &data)
推荐阅读
- nginx - NGINX 将 SMTP 身份验证凭据转发到下一个服务器?
- python - 如何使用三角形提示制作 Qlabel
- oracleforms - 按钮和选项卡式画布
- java - 如何不断更新文本视图
- reactjs - 通过 blob URL 使用不同的流更新视频元素 src
- node.js - 纱线挂在添加包装上
- xamarin - System.ArgumentException:无法绑定到方法“GetGetDefaultCipherSuitesHandler”
- python - 找到由两个 3 位数字的乘积构成的最大回文数,只需稍作修改
- applescript - 如何使用 AppleScript 检测和操作 USB 上的文件
- python - 将 Python 2.7 字节字符串移植到 Python 3 的最佳方式