Go で深くネストされた JSON キーと値にアクセスするにはどうすればよいですか?

DDD
リリース: 2024-10-26 10:48:03
オリジナル
178 人が閲覧しました

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

Go で深くネストされた JSON キーと値にアクセスする

複雑な JSON データ構造を扱う場合、深くネストされた値を取得するのが困難になる場合があります標準の Go インターフェイスのみを使用します。これを解決するには、go-simplejson パッケージ (github.com/bitly/go-simplejson) の利用を検討してください。

このパッケージは、単純な構文を通じて JSON データをナビゲートするための使いやすい API を提供します。 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!