首頁 > 後端開發 > Golang > 如何為 Go 中缺少的 JSON 欄位設定預設值?

如何為 Go 中缺少的 JSON 欄位設定預設值?

Barbara Streisand
發布: 2024-12-18 17:40:15
原創
243 人瀏覽過

How Can I Set Default Values for Missing JSON Fields in Go?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板