登录
首页 >  Golang >  Go问答

MapStructure 不解码以 @ 开头的 json 键

来源:stackoverflow

时间:2024-04-10 09:57:26 342浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《MapStructure 不解码以 @ 开头的 json 键》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在尝试解析数据,其中一些 json 键以 @ 开头。这是我正在处理的数据的简化版本。映射结构不会解码 id1 字段。

package main

import (
    "fmt"
    "github.com/mitchellh/mapstructure"
)

type test struct {
    Id1 string `json:"@id1"`
    Id2 string `json:"id2"`
}

func main() {
    input := map[string]interface{}{
        "@id1": "foo",
        "id2":  "bar"}

    var result test
    err := mapstructure.Decode(input, &result)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%#v", result)
}
Output: main.test{Id1:"", Id2:"bar"}

然而,这与标准 json 库配合得很好: https://play.golang.org/p/p-6odz4yryu


解决方案


使用mapstruct标签代替json:

type test struct {
    Id1 string `mapstructure:"@id1"`
    Id2 string `mapstructure:"id2"`
}

到这里,我们也就讲完了《MapStructure 不解码以 @ 开头的 json 键》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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