Go で JSON 配列を構造化データに解析するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-17 19:31:02
オリジナル
494 人が閲覧しました

How to Parse JSON Arrays into Structured Data in Go?

Go での JSON 配列の解析

定義された構造体での Unmarshal の使用

問題:

オブジェクトを含む複雑な JSON 配列を Go で構造化形式に解析する方法?

サンプル JSON:

[{"id":694476444991229955,"id_str":"694476444991229955"}]
ログイン後にコピー

解決策:

  1. JSON データをモデル化する Go 構造体を定義します。

    type Tweet struct {
     ID       int64  `json:"id"`
     IDStr    string `json:"id_str"`
    }
    ログイン後にコピー
  2. 解析されたデータを保持するツイート構造体のスライスを作成します。

    tweets := make([]Tweet, 0)
    ログイン後にコピー
  3. JSON 配列をツイート スライスにアンマーシャリングします。

    err := json.Unmarshal([]byte(jsonString), &tweets)
    if err != nil {
     fmt.Println(err)
    }
    ログイン後にコピー
    ログイン後にコピー
  4. ツイート スライスを反復処理して、解析されたファイルにアクセスしますdata.

    for _, tweet := range tweets {
     fmt.Println(tweet.ID, tweet.IDStr)
    }
    ログイン後にコピー

Map[string] インターフェースへのアンマーシャリング{} スライス

注: このメソッドには次のものが必要ですインデックスを作成し、値にアクセスするためのアサーションを入力します。

  1. 解析結果を保持するマップのスライスを作成します。

    tweets := make([]map[string]interface{}, 0)
    ログイン後にコピー
  2. JSON をアンマーシャリングします。配列をマップ スライスに読み込みます。

    err := json.Unmarshal([]byte(jsonString), &tweets)
    if err != nil {
     fmt.Println(err)
    }
    ログイン後にコピー
    ログイン後にコピー
  3. マップ スライスを反復処理して、解析されたデータにアクセスします。

    for _, tweet := range tweets {
     id, ok := tweet["id"].(int64)
     if ok {
         fmt.Println("ID:", id)
     }
    }
    ログイン後にコピー

以上がGo で JSON 配列を構造化データに解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート