在Go 中自訂JSON 解析預設值
在Go 中解析JSON 時,為不存在的欄位分配預設值可以增強數據操作。以下是如何使用encoding/json套件或利用外部Go函式庫來實現這一點。
使用encoding/json
encoding/json套件提供了一個簡單的解決方案。您可以使用預設值對其進行初始化,而不是將空結構傳遞給 json.Unmarshal。例如:
type Test struct { A string "a" B string "b" C string } example := []byte(`{"A": "1", "C": "3"}`) out := Test{} err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
利用外部庫
如果encoding/json套件無法完全滿足你的需求,還有提供增強JSON的外部Go庫解析功能。一種流行的選項是 go-json 庫,它允許您使用結構標籤指定缺失欄位的預設值。
import ( "encoding/json" "github.com/go-json" ) type Test struct { A string `json:"a,omitempty"` B string `json:"b,omitempty"` C string `json:"c,omitempty"` } example := []byte(`{"A": "1", "C": "3"}`) out := Test{ DefaultA: "a", DefaultB: "b", DefaultC: "c", } err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
以上是如何為 Go 中缺少的 JSON 欄位設定預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!