【发布时间】:2015-03-15 16:04:36
【问题描述】:
我正在编写一些代码来解析来自 HTTP 响应的 JSON 数据。我的代码如下所示:
type ResultStruct struct {
result []map[string]string
}
var jsonData ResultStruct
err = json.Unmarshal(respBytes, &jsonData)
respBytes 变量中的 json 如下所示:
{
"result": [
{
"id": "ID 1"
},
{
"id": "ID 2"
}
]
}
但是,err 不是零。当我打印出来时,上面写着unexpected end of JSON input。这是什么原因造成的? JSON似乎有效。这个错误是否与我的自定义结构有关?
提前致谢!
【问题讨论】:
-
respBytes的阅读方式如何? -
另外,请注意小写字母表示私有可见性。您希望
ResultStruct中的字段名称大写:否则json解码器不允许接触该字段。请参阅:play.golang.org/p/bATT5uMPRT 以获取似乎有效的示例。因此,我们需要更多信息来了解您的错误是什么:所述问题不足以说明问题。 -
@dyoo
respBytes只是一个字节数组(我接受响应,进行一些处理并提取正文)。我还将ResultStruct中的结果字段大写。您的 Go Playground 示例采用了我收到的 JSON 并正确处理它,所以我的代码肯定有其他问题...感谢您的帮助!
标签: json go unmarshalling