JSON对象:
{
"foo_bar": "content"
}
代码:
type PrettyStruct struct {
Foo string `json: "foo_bar"`
}
func whatever(r *http.Request) {
var req PrettyStruct
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
// ...
}
log.Println(req)
}
这简单地输出:
{}
Go在解码JSON对象时没有考虑我的标签,因此没有任何内容被解组到结构中,并且每个字段都保持零值。
如果在JSON对象中,该字段被称为“foo”或“Foo”,则一切正常。
我尝试过简单标记"foo_bar"
以及以下变体`json: foo_bar`
和"json: foo_bar"
。
虽然我做错了什么?
答案 0 :(得分:1)
很愚蠢..但冒号和"foo_bar"
之间的空间是个问题。试试这个:
type PrettyStruct struct {
Foo string `json:"foo_bar"`
// ^^^ no space here
}
在操场上的工作示例:http://play.golang.org/p/dEc_c0UAOC