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

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

Barbara Streisand
發布: 2024-12-10 17:12:17
原創
556 人瀏覽過

How Can I Set Default Values When Parsing JSON in Go?

在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庫

  • 如果encoding/json套件不符合特定要求,還有其他Go庫提供類似的功能。考慮以下內容:
  • [xjson](https://github.com/gobuffalo/x/blob/master/xjson/xjson.go) 提供了一個可自訂的JSON 解析器,允許規範預設值和其他選項。
[eson](https://github.com/sean-/eson) 是另一個 JSON 解析器,透過其 default() 支援預設值方法。

以上是Go中解析JSON時如何設定預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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