」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中存取深度嵌套的 JSON 鍵和值?

如何在 Go 中存取深度嵌套的 JSON 鍵和值?

發佈於2024-11-08
瀏覽:671

How to Access Deeply Nested JSON Keys and Values in Go?

在Go 中存取深度嵌套的JSON 鍵和值

使用複雜的JSON 資料結構時,擷取深度嵌套的值可能具有挑戰性單獨使用標準Go 介面。為了克服這個問題,請考慮使用 go-simplejson 套件 (github.com/bitly/go-simplejson)。

該套件提供了一個易於使用的 API,用於透過簡單的語法導航 JSON 資料。以下是如何使用 go-simplejson 存取給定 JSON 中的「時間」值:

package main

import (
    "encoding/json"
    "fmt"
    "github.com/bitly/go-simplejson"
)

func main() {
    msg := `{"args":[{"time":"2013-05-21 16:57:17"}],"name":"send:time"}`
    jsonBytes := []byte(msg)
    js, err := simplejson.NewJson(jsonBytes)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Retrieve "time" values
    timeValue, err := js.Get("args").GetIndex(0).Get("time").String()
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("Retrieved time:", timeValue)
}

透過使用 go-simplejson,您可以輕鬆遍歷嵌套的 JSON 結構並使用 Get、GetIndex 和 String 等方法檢索值。

對於複雜的資料結構,您也可以定義自己的自己的型別結構來表示 JSON 資料。例如,您可以建立下列結構:

type TimeInfo struct {
    Time string
}

type DataStruct struct {
    Name string
    Args []TimeInfo
}

要將 JSON 解組到此結構中,可以使用以下程式碼:

var dataStruct DataStruct
err = json.Unmarshal(jsonBytes, &dataStruct)
if err != nil {
    fmt.Println(err)
    return
}

此方法提供了一種更結構化的方式來表示 JSON 數據,使其更易於使用和維護。

最新教學 更多>

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

Copyright© 2022 湘ICP备2022001581号-3