」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中解組具有混合資料類型的 JSON 數組?

如何在 Go 中解組具有混合資料類型的 JSON 數組?

發佈於2024-12-22
瀏覽:220

How to Unmarshal JSON Arrays with Mixed Data Types in Go?

解組具有混合資料類型的JSON 陣列

解組包含不同資料型別值的JSON 陣列的任務通常會帶來挑戰。例如,考慮以下JSON 陣列:

{["NewYork",123]}

問題:

首先,需要注意的是提供的JSON 在語法上不正確。 JSON 物件需要每個值的鍵,因此正確的表示形式是{"key":["NewYork",123]} 或簡單地["NewYork",123].

此外,在處理JSON時由於Go 數組由多種資料類型組成,因此當Go 數組需要指定類型時就會出現問題。這可能會讓您想知道如何處理這種情況。

解決方案:

解決這個問題的關鍵是使用型別介面{}。它允許您處理各種類型的值,而無需明確類型轉換。以下是一個示範其工作原理的程式碼範例:

import (
    "encoding/json"
    "fmt"
)

const j = `{"NYC": ["NewYork",123]}`

type UntypedJson map[string][]interface{}

func main() {
    ut := UntypedJson{}
    fmt.Println(json.Unmarshal([]byte(j), &ut))
    fmt.Printf("%#v", ut)
}

在此範例中,我們使用 UntypedJson 作為將字串對應到 interface{} 切片的自訂類型。透過利用interface{}類型,我們可以毫不費力地處理JSON數組中的混合資料類型。

程式的輸出將是:

<nil>
map[string][]interface{}{"NYC": \["NewYork" 123]}

結論:

透過利用interface{}型,這種方法使您能夠有效地解組具有各種資料類型的JSON 數組。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3