簡體   English   中英

如何在帶有標簽的Go中取消編組/ Marshall JSON?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM