我正在尝试在Golang中进行数据反序列化,当Json对象的某些键中包含下划线(
举个例子:
这个运行得非常好。然而,如果我改变一些关键字以包含下划线:
_
)时,我发现了一种奇怪的行为。举个例子:
package main
import (
"encoding/json"
"fmt"
)
func main() {
var jsonBlob = []byte(`{"name": "Quoll", "order": "Dasyuromorphia"}`)
type Animal struct {
Name string `json: "name"`
Order string `json: "order"`
}
var animal Animal
err := json.Unmarshal(jsonBlob, &animal)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%+v", animal)
}
这个运行得非常好。然而,如果我改变一些关键字以包含下划线:
var jsonBlob = []byte(`{"name": "Quoll", "order_": "Dasyuromorphia"}`)
我希望将这个内容包含到Animal.Order
中,我正在尝试:
type Animal struct {
Name string `json: "name"`
Order string `json: "order_"`
}
我很不幸地无法读取数据。 我该如何将任意键映射到我结构体中想要的元素? 这里是带有示例的游乐场链接。