Golang json Unmarshal“ JSON输入意外结束”
我正在研究一些代码来解析来自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似乎有效。此错误与我的自定义结构有关吗?
提前致谢!
回答:
所述unexpected end of JSON
input的结果是一个语法错误在JSON输入(可能丢失"
,}
或]
)。该错误不取决于您解码到的值的类型。
我在操场上使用示例JSON输入运行了代码。它运行没有错误。
该代码不解码任何内容,因为result
未导出该字段。如果导出结果字段:
type ResultStruct struct { Result []map[string]string
}
然后如本示例中所示对输入进行解码。
我怀疑您没有阅读应用程序中的整个响应正文。我建议使用以下方法解码JSON输入:
err := json.NewDecoder(resp.Body).Decode(&jsonData)
解码器直接从响应主体读取。
以上是 Golang json Unmarshal“ JSON输入意外结束” 的全部内容, 来源链接: utcz.com/qa/419381.html