登录
首页 >  Golang >  Go问答

处理:无法解析字符串为 Go 值

来源:stackoverflow

时间:2024-03-07 23:18:25 476浏览 收藏

大家好,今天本人给大家带来文章《处理:无法解析字符串为 Go 值》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

在将某些内容解组到 go 中的结构对象中时遇到一些麻烦。基本上,我的结构定义为:

type theparam struct {
    id       string `json:"id,string"`
    provider string `json:"provider,string"`
}

现在,我有一个带有字节的变量,如果我制作 fmt.print(string(data)) 然后我得到:

"{\"id\":\"some-id\",\"provider\":\"any-provider\"}"

以字节为单位的数据示例是:

34 123 92 34 105 100 92 34 58 92 34 103 105 116 104 117 98 45 100 97 115 104 45 97 99 99 101 115 115 92 34 44 92 34 112 114 111 118 105 100 101 114 92 34 58 92 34 103 105 116 104 117 98 92 34 125 34

并且,正在使用以下方式进行解组:

if err = json.Unmarshal(data, &myParam); err != nil {
        redisLogger.WithError(err).Error("unmarshalling into interface")
    }

所以,现在得到:json:无法将字符串解组为 theparam 类型的 go 值。我错过了什么?


解决方案


字符串结构标记是多余的,因为您已经在结构中定义了类型。

这个演示应该有效:

https://play.golang.org/p/NixyNSHOK8w

字符串本身是编码的json值,所以首先需要将其解码为string,然后将此值解码为结构体:https://play.golang.org/p/qSOd1O9fOSQ

另外请注意结构体类型标签的变化。您不需要在标签中使用类型规范。它将自动为您定义。

今天关于《处理:无法解析字符串为 Go 值》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>