尝试将字符串解组为json,但我的结构定义不起作用。怎么修好?
package main
import "fmt"
import "encoding/json"
func main() {
x := `{
"Header": {
"Encoding-Type": [
"gzip"
],
"Bytes": [
"29"
]
}
}`
type HeaderStruct struct {
A string
B []string
}
type Foo struct {
Header HeaderStruct
}
var f Foo
if e := json.Unmarshal([]byte(x), &f); e != nil {
fmt.Println("Failed:", e)
} else {
fmt.Println("unmarshalled=", f)
}
}
答案 0 :(得分:2)
您的变量名称与json键的名称不匹配,并且它们都是[]string
。你可以做到
type HeaderStruct struct {
A []string `json:"Encoding-Type"`
B []string `json:"Bytes"
}
答案 1 :(得分:1)
你需要json注释告诉unmarshaller哪些数据在哪里,你的模型中A
的类型也是错误的,它也应该是一个数组。我还要将你的字段名称改为有意义的......
type HeaderStruct struct {
Encoding []string `json:"Encoding-Type"`
Bytes []string `json:"Bytes"
}