簡體   English   中英

獲取:無法將字符串解組為 Go 值

[英]getting: Cannot unmarshal string into Go value

我在將某些內容解組到 go 中的結構對象時遇到了一些麻煩。 基本上,我的結構定義為:

 type TheParam struct {
    Id       string `json:"id,string"`
    Provider string `json:"provider,string"`
}

現在,我有一個帶有字節的變量,如果我制作fmt.Print(string(data))然后我得到:

"{\"id\":\"some-id\",\"provider\":\"any-provider\"}"

以字節為單位的數據示例是:

34 123 92 34 105 100 92 34 58 92 34 103 105 116 104 117 98 45 100 97 115 104 45 97 99 99 101 115 115 92 34 44 92 34 112 114 111 118 105 100 101 114 92 34 58 92 34 103 105 116 104 117 98 92 34 125 34

並且,正在使用以下方法進行解組:

if err = json.Unmarshal(data, &myParam); err != nil {
        redisLogger.WithError(err).Error("unmarshalling into interface")
    }

所以,現在得到: json: cannot unmarshal string into Go value of type TheParam 我錯過了什么?

字符串本身是編碼的 json 值,因此首先需要將其解碼為string ,然后將此值解碼為結構體: https : //play.golang.org/p/qSOd1O9fOSQ

另外請注意結構類型的更改標簽。 您不需要在標簽中使用類型規范。 它將自動為您定義。

字符串結構標記是多余的,因為您已經在結構中定義了類型。

這個 Playground 應該可以工作:

https://play.golang.org/p/NixyNSHOK8w

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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