映射结构未解码以 @ 开头的 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

使用mapstructure标记而不是json:

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

最新更新