首頁 >後端開發 >Golang >Go 解析 JSON 時如何指定預設值?

Go 解析 JSON 時如何指定預設值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-10 16:24:14332瀏覽

How to Specify Default Values When Parsing JSON in Go?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn