在Go 中存取深度巢狀的JSON 鍵和值
使用複雜的JSON 資料結構時,擷取深度嵌套的值可能具有挑戰性單獨使用標準Go 介面。為了克服這個問題,請考慮使用 go-simplejson 套件 (github.com/bitly/go-simplejson)。
該套件提供了一個易於使用的 API,用於透過簡單的語法導航 JSON 資料。以下是如何使用 go-simplejson 存取給定 JSON 中的「時間」值:
<code class="go">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) }</code>
透過使用 go-simplejson,您可以輕鬆遍歷巢狀 JSON 結構並使用 Get、 GetIndex 和 String。
對於複雜的資料結構,您也可以定義自己的型別結構體來表示 JSON 資料。例如,您可以建立以下結構:
<code class="go">type TimeInfo struct { Time string } type DataStruct struct { Name string Args []TimeInfo }</code>
要將JSON 解組到此結構中,您可以使用以下程式碼:
<code class="go">var dataStruct DataStruct err = json.Unmarshal(jsonBytes, &dataStruct) if err != nil { fmt.Println(err) return }</code>
此方法提供了一種更結構化的方式表示您的JSON 數據,使其更易於使用和維護。
以上是如何在 Go 中存取深度嵌套的 JSON 鍵和值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!