为了账号安全,请及时绑定邮箱和手机立即绑定

Golang json解组“JSON输入意外结束”

Golang json解组“JSON输入意外结束”

Go
鸿蒙传说 2021-09-10 21:30:12
我正在编写一些代码来解析来自 HTTP 响应的 JSON 数据。我的代码看起来像这样:type ResultStruct struct {    result []map[string]string}var jsonData ResultStructerr = json.Unmarshal(respBytes, &jsonData)respBytes变量中的 json如下所示:{ "result": [  {   "id": "ID 1"  },  {   "id": "ID 2"  } ]}然而,err也不是零。当我打印出来时,它说unexpected end of JSON input。这是什么原因造成的?JSON 似乎有效。这个错误是否与我的自定义结构有关?
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

所述unexpected end of JSON input的结果是一个语法错误在JSON输入(可能丢失",}或])。该错误与您要解码为的值的类型无关。


我在操场上使用示例 JSON 输入运行代码。它运行没有错误。


该代码不会解码任何内容,因为该result字段未导出。如果导出结果字段:


type ResultStruct struct {

   Result []map[string]string

}

然后输入被解码,如这个游乐场示例所示。


我怀疑您没有阅读应用程序中的整个响应正文。我建议使用以下方法解码 JSON 输入:


err := json.NewDecoder(resp.Body).Decode(&jsonData)

解码器直接从响应正文中读取。


查看完整回答
反对 回复 2021-09-10
  • 3 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信