在 Go 中解組嵌入式結構
本文解決了將 JSON 資料解組到包含嵌入式結構的結構的問題。在提供的範例中,Inner 結構嵌入到 Outer 結構中,演示了呼叫 Inner 的預設 UnmarshalJSON 方法,並且僅填充 Data 字段,而將 Outer 的 Num 字段留空。
原因因為這種行為在於 Go 的嵌入式結構機制。當嵌入式結構體被解組時,解組過程直接針對嵌入式結構體並忽略外部結構體的字段。
為了解決這個問題,提出了一個更簡單、更有效率的解決方案:使內部結構體成為明確欄位在 Outer 結構中。
透過明確聲明 Inner 作為字段,可以使用整個 JSON 資料呼叫 Outer 結構的 UnmarshalJSON 方法。在此方法中,可以使用嵌入的 Inner 結構體的 UnmarshalJSON 方法填入 Inner 的 Data 字段,而可以單獨填入 Num 字段。這種方法確保在解組期間正確填充外部結構的兩個欄位。
這是一個說明解決方案的工作範例:
以上是如何解組 Go 中的嵌入式結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!