[英]How to Unmarshall/Marshall JSON in Go with Tags?
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對象時沒有考慮我的標簽,因此不會將任何數據編組到struct中,並且每個字段都保持零值。
如果在JSON對象中將該字段稱為“ foo”或“ Foo”,則一切正常。
我嘗試了簡單的標簽"foo_bar"
以及以下變體`json: foo_bar`
和"json: foo_bar"
。
我在做什么錯了嗎?
這很愚蠢..但是冒號和"foo_bar"
之間的空間就是問題所在。 嘗試這個:
type PrettyStruct struct {
Foo string `json:"foo_bar"`
// ^^^ no space here
}
在操場上的工作示例: http : //play.golang.org/p/dEc_c0UAOC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.