首頁 > 後端開發 > Golang > 在 Go 中解組時如何區分空 JSON 欄位和缺少 JSON 欄位?

在 Go 中解組時如何區分空 JSON 欄位和缺少 JSON 欄位?

Mary-Kate Olsen
發布: 2024-12-04 06:05:16
原創
248 人瀏覽過

How Can I Distinguish Between Empty and Missing JSON Fields When Unmarshalling in Go?

揭開Go 解組中Void 值和未指定字段的神秘面紗

在Go 中,將JSON 解組為結構體時,可能具有挑戰性區分空值和未指定的欄位值。這可能會導致不明確的程序行為。以下是解決此難題的方法:

區分Void 和未指定值

當JSON 欄位存在但具有空值(例如,空字串)時,會出現Void 值),而當JSON 中完全省略某個欄位時,就會出現未指定的值。為了區分這些,修改欄位類型以使用指標:

type Category struct {
    Name        string
    Description *string
}
登入後複製

現在,如果 JSON 欄位包含空字串,它將被設定為指向空字串的指標。但是,如果該欄位不存在,它將保持為零。

範例用法

考慮以下JSON:

[
    {"Name": "A", "Description": "Monotremata"},
    {"Name": "B"},
    {"Name": "C", "Description": ""}
]
登入後複製

使用修改後的欄位類型,輸出將為:

[{Name:A Description:0x1050c150}, {Name:B Description:<nil>}, {Name:C Description:0x1050c158}]
登入後複製

這允許您區分類別B 中未指定的描述欄位和類別C 中的空描述欄位。現在您可以在程式中單獨處理它們。

以上是在 Go 中解組時如何區分空 JSON 欄位和缺少 JSON 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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