使用Go 指定JSON 解析中的預設值
將JSON 資料解析為Go 結構體時,通常需要指定以下值的預設值JSON 中不存在的欄位。內建的encoding/json套件提供了一個簡單的機制來實現這一點。
呼叫 json.Unmarshal 時,您可以提供一個帶有預設值的結構,而不是提供一個空結構。 JSON 中不存在的欄位在解組後將保留其預設值。
例如,考慮以下結構:
type Test struct { A string B string C string }
預設值為「a」、「b」和「c」分別代表 A、B 和 C,解析下面的 JSON將傳回具有指定預設值的結構值:
{"A": "1", "C": "3"}
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)
此程式碼將輸出:
{A:1 B:default b C:3}
如圖所示,json.Unmarshal 覆寫JSON 中指定的值,同時保留未指定的欄位為其預設值。該技術提供了一種在解析為結構時處理遺失或不完整的 JSON 資料的便捷方法。
以上是Go 解析 JSON 時如何指定預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!