首頁 > 後端開發 > Golang > 如何在運行時動態更改 Go 結構中的 JSON 標籤?

如何在運行時動態更改 Go 結構中的 JSON 標籤?

Barbara Streisand
發布: 2024-12-21 15:46:10
原創
774 人瀏覽過

How Can I Dynamically Change JSON Tags in Go Structs at Runtime?

動態改變結構體中的JSON 標籤

問題

給定一個嵌套結構體的結構體,目標是動態修改結構體中的JSON 標籤在JSON 對其進行編碼之前,結構中的特定欄位。所需的 JSON 輸出是覆蓋特定的欄位名稱。

解決方案

在MarshalJSON 中使用匿名結構

Go 版本1.8 及更高版本,可以採用一種技術在運行時動態更改字段的JSON 標籤。這涉及到在原始結構的 MarshalJSON 方法中建立具有所需欄位標記的匿名結構。

這裡,別名結構具有與 User 結構相同的字段,但 Name 字段具有所需的字段JSON 標籤(“名稱”而不是“第一個”)。透過傳回別名結構體的 JSON 編碼,可以動態覆寫 JSON 欄位名稱。

迭代所有欄位

要迭代結構體的所有欄位(包括嵌入的結構體),請使用反射包如下:

此程式碼將迭代所有字段,包括嵌入的Another 結構中的字段,並列印JSON每個字段的標籤和字段值。

以上是如何在運行時動態更改 Go 結構中的 JSON 標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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