首頁  >  文章  >  後端開發  >  如何解組 Go 中的嵌入式結構?

如何解組 Go 中的嵌入式結構?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 12:13:30790瀏覽

How to Unmarshal Embedded Structs in Go?

在 Go 中解組嵌入式結構

本文解決了將 JSON 資料解組到包含嵌入式結構的結構的問題。在提供的範例中,Inner 結構嵌入到 Outer 結構中,演示了呼叫 Inner 的預設 UnmarshalJSON 方法,並且僅填充 Data 字段,而將 Outer 的 Num 字段留空。

原因因為這種行為在於 Go 的嵌入式結構機制。當嵌入式結構體被解組時,解組過程直接針對嵌入式結構體並忽略外部結構體的字段。

為了解決這個問題,提出了一個更簡單、更有效率的解決方案:使內部結構體成為明確欄位在 Outer 結構中。

透過明確聲明 Inner 作為字段,可以使用整個 JSON 資料呼叫 Outer 結構的 UnmarshalJSON 方法。在此方法中,可以使用嵌入的 Inner 結構體的 UnmarshalJSON 方法填入 Inner 的 Data 字段,而可以單獨填入 Num 字段。這種方法確保在解組期間正確填充外部結構的兩個欄位。

這是一個說明解決方案的工作範例:

以上是如何解組 Go 中的嵌入式結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn