go json.Unmarshal报错invalid character ' ï' looking for beginning of value

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go json.Unmarshal报错invalid character ' ï' looking for beginning of value相关的知识,希望对你有一定的参考价值。

参考技术A 从网站上获取的一个json字符串数据,使用json.Unmarshal序列化失败,报错 invalid character 'ï' looking for beginning of value 。查看json字符串没问题,但是查看byte格式的数据时发现前缀有问题。

在json数据中,可见的第一个字符串是 [ , 应该是91才对,但这里是239,组全一下后面的187,191。这不正是 \xef\xbb\xbf , .BOM 标识文本是 UTF-8 编码的头字段啊。这应该是编码问题了,最简单的办法就是在接收到的byte组时,直接将前面的这三个字符删了就可以了

go语言json转map

package util

import (
    "encoding/json"
    // "fmt"
)

func JSONToMap(str string) map[string]interface{} {

    var tempMap map[string]interface{}

    err := json.Unmarshal([]byte(str), &tempMap)

    if err != nil {
        panic(err)
    }

    return tempMap
}

以上是关于go json.Unmarshal报错invalid character ' ï' looking for beginning of value的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Go Json.Unmarshal精度丢失之谜

Go语言的JSON输入(解码)(反序列化)之struct存储

go语言json转map

如何在 Go 中解析 JSON 数组

在Go中封装结构

Go语言处理JSon字段