在Go 中進行JSON 解組期間識別Void 和未指定欄位
在JSON 中,區分void 值和未指定欄位可能具有挑戰性將資料解組到Go 結構中。
例如,考慮以下內容JSON:
[ {"Name": "A", "Description": "Monotremata"}, {"Name": "B"}, {"Name": "C", "Description": ""} ]
如果我們定義這樣的Go 結構:
type Category struct { Name string Description string }
並將JSON 解組為類別實例切片,我們會得到以下輸出:
[{Name:A Description:Monotremata} {Name:B Description:} {Name:C Description:}]
請注意,B 的Description欄位是一個空字串,而 C 的 Description 欄位在 JSON 中被完全省略。在這兩種情況下,Description 欄位在 Go 表示中都設定為空字串。
為了區分這些情況,一種方法是使用可選欄位的指標。透過將Description 的類型更改為指針,我們可以區分空字串值和nil 值(表示未指定的字段):
type Category struct { Name string Description *string }
當我們將JSON 解組到這個修改後的結構中時,我們得到輸出如下:
[{Name:A Description:0x1050c150} {Name:B Description:<nil>} {Name:C Description:0x1050c158}]
如您所見,B 的Description 欄位現在為nil,而C 的Description欄位是指向空字串的指標(以十六進位記憶體位址表示)。這使我們能夠識別未指定的欄位並在我們的程式中相應地處理它們。
以上是在 Go 中解組 JSON 時如何區分 Void 和未指定欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!