首页 > 解决方案 > Golang json.Unmarshal 因任何明显原因无法正常工作

问题描述

我有json.Unmarshal一个 Golang 文件,它解码从 Swift 程序发送的 JSON 数据。代码正确解码r.Body为字符串(newStr 与我重新声明的字符串完全相同)。但是,这json.Unmarshal条线似乎无缘无故地不起作用,甚至我的老师也想不通。有任何想法吗?

编码:

buf := new(bytes.Buffer)
buf.ReadFrom(r.Body)
newStr := buf.String()
fmt.Println(newStr)
var data Teacher

newStr = `{"body":"How are you all today?","id":283,"title":"Hello World","userID":238"}`

json.Unmarshal([]byte(newStr), &data)

fmt.Println(data.body)

我的结构:

// Teacher struct:
type Teacher struct {
    body   string `json:"body"`
    id     int    `json:"id"`
    title  string `json:"title"`
    userID int    `json:"userID"`
}

有任何想法吗?我完全迷路了。谢谢!

标签: jsonswiftgo

解决方案


大写Teacher结构字段的名称。

type Teacher struct {
    Body   string `json:"body"`
    Id     int    `json:"id"`
    Title  string `json:"title"`
    UserID int    `json:"userID"`
}

推荐阅读