首页 > 后端开发 > Golang > 如何解决 Golang json.Unmarshal 中的'寻找值开头的无效字符”错误?

如何解决 Golang json.Unmarshal 中的'寻找值开头的无效字符”错误?

Mary-Kate Olsen
发布: 2024-11-30 18:10:15
原创
400 人浏览过

How to Resolve the

使用 json.Unmarshal 时出现“无效字符 'ï' 寻找值的开头”错误

尝试解析从使用Golang的json.Unmarshal函数进行HTTP请求,可能会出现以下错误发生:

"invalid character 'ï' looking for beginning of value"
登录后复制

当 JSON 响应包含字节顺序标记 (BOM) 字符时,通常会出现此错误。 BOM 标识文本文件的编码,应在解码之前将其删除。

要解决此问题,可以使用以下代码从 JSON 响应中删除 BOM 字符:

body := bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
登录后复制

一旦删除了 BOM 字符,JSON 响应就可以按预期解组为数据结构。

例如,可以修改以下代码来处理带有 BOM 的 JSON 响应:

body, err := ioutil.ReadAll(response.Body)
defer response.Body.Close()
if err != nil {
    return "", tracerr.Wrap(err)
}

// Remove BOM
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))

transTransform = TransformTextResponse{}
err = json.Unmarshal(body, &transTransform)
if err != nil {
   return "", tracerr.Wrap(err)
}
登录后复制

通过在解析 JSON 响应之前删除 BOM 字符,错误将得到解决,并且可以成功解组数据结构。

以上是如何解决 Golang json.Unmarshal 中的'寻找值开头的无效字符”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板