在Go 中指定JSON 解析的預設值
在Go 中解析JSON 物件時,可能需要為下列欄位指定預設值:輸入JSON 中未提供。考慮具有以下欄位的結構類型:
type Test struct { A string B string C string }
假設 A、B 和 C 所需的預設值分別為「a」、「b」和「c」。解析以下JSON 時:
{"A": "1", "C": 3}
預期的結構將是:
Test{A: "1", B: "b", C: "3"}
使用encoding/json 套件
使用encoding/json 套件
var example []byte = []byte(`{"A": "1", "C": "3"}`) out := Test{ A: "default a", B: "default b", // default for C will be "", the empty value for a string } err := json.Unmarshal(example, &out) // <- if err != nil { panic(err) } fmt.Printf("%+v", out)
所建構的Go 中的-inencoding/json 套件允許在JSON 解析期間指定預設值。不要使用空結構,而是提供一個具有所需預設值的結構,如下所示:
{A:1 B:default b C:3}
透過呼叫json.Unmarshal(example, &out),JSON 被解組到out 結構中,覆蓋值在JSON 中指定。但是,JSON 中不存在的欄位的預設值保持不變。運行範例返回:
其他Go庫
以上是Go中解析JSON時如何設定預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!