当前位置: 首页 > 面试题库 >

Golang json Unmarshal“ JSON输入意外结束”

萧波峻
2023-03-14
问题内容

我正在研究一些代码来解析来自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)

解码器直接从响应主体读取。



 类似资料:
  • 问题内容: 我正在使用fetch()从api服务器获取数据。我的错误如下所示: 你能告诉我我在做什么错。 问题答案: 一种用于响应请求到跨源资源具有“不透明”的响应类型。如果在尝试将响应转换为JSON之前记录响应,您将看到一种“不透明”的类型。 不透明类型被列为“严重受限”。 不透明的已过滤响应是已过滤的响应,其类型为“不透明”,URL列表为空列表,状态为0,状态消息为空字节序列,标头列表为空,主

  • 我使用fetch()从api服务器获取数据。我的错误是这样的: 你能告诉我我做错了什么吗。

  • 我正在尝试解析从Movie DB返回的JSON数据。我收到一个错误,告诉我我收到以下错误: MovieReq.Open('get','https://api.themoviedb.org/3/movie/299537?api_key=',false); 我还有其他XMLHttpRequests可以很好地返回JSON数据。这些请求使用API的discover函数。 这是产生问题的函数 {“成人”:f

  • 我试图使用下面的代码从一个api网站获取一个JSON文件,但是当我使用下面的代码获取时,我得到一个错误,说“JSON输入意外结束”

  • 我试图创建一个nuxt项目使用npx create-nuxt-app和我有这个错误haw我可以解决它。 npm错误!在分析“”附近时JSON输入意外结束。。。THtwvnO2F9FWD7HrMJoGZ' npm错误!此运行的完整日志可在以下位置找到:npm ERR /home/ferdinand/。npm/_日志/2019-09-06T11_50_45_307Z-debug。日志 /home/fe

  • 问题内容: 我正在开发Spring MVC Web应用程序。我还没有开发UI。因此,我正在使用Advance Rest Client工具测试我的服务。 我的控制器 TestParam.java类 我使用Advance Rest Client和标题发送请求,并且请求链接已正确设置。 请求链接 当TestParam具有一个veriable时,它可以正常工作。当它变为两个或更多时,将给出错误,并且不会命