首頁 >後端開發 >Golang >如何在 Go 中成功將 JSON 資料解組為介面類型?

如何在 Go 中成功將 JSON 資料解組為介面類型?

Patricia Arquette
Patricia Arquette原創
2025-01-02 20:51:38730瀏覽

How Can I Successfully Unmarshal JSON Data to Interface Types in Go?

解組到介面類型

Go 的 RPC 和 JSON 套件中的挑戰之一是解組到介面類型。讓我們來剖析這個問題並探討它的解決方案。

問題

當嘗試解組到介面類型時,我們遇到類似「json:無法將物件解組到Go 中」的錯誤main.Foo 類型的值。 」發生這種情況是因為反射器無法確定要為傳入的編組資料實例化的適當具體類型。

解決方案

問題是由於缺乏可用的類型信息而產生的解組期間的反射器。 Java 的Json (jackson) 這樣的框架使用註解來提供額外的資訊類型資訊。實作Unmarshaler

這裡是實作Unmarshaler 介面的範例我們的自訂類型RawString:

現在,我們可以將JSON 資料解組到RawString 實例中:

透過為自訂類型提供Unmarshaler 實現,我們可以解組JSON 資料而不會遇到上述錯誤。

以上是如何在 Go 中成功將 JSON 資料解組為介面類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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