ホームページ >バックエンド開発 >Golang >Go でネストされた JSON HTTP 応答を解析するにはどうすればよいですか?

Go でネストされた JSON HTTP 応答を解析するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 18:36:18705ブラウズ

How to Parse a Nested JSON HTTP Response in Go?

Go を使用した JSON HTTP レスポンスの解析

Golang で HTTP リクエストからの JSON レスポンスを解析するには、JSON デコードを使用して、応答本文を JSON 構造を反映する構造体に変換します。

コード例

次のコードは、ネストされた構造体を含む JSON 応答を解析して「ip」の値を取得する方法を示しています。

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
    "time"
)

type Example struct {
    Type    string   `json:"type,omitempty"`
    Subsets []Subset `json:"subsets,omitempty"`
}

type Subset struct {
    Addresses []Address `json:"addresses,omitempty"`
}

type Address struct {
    IP string `json:"IP,omitempty"`
}

func main() {

    m := []byte(`{
        "type": "example",
        "data": {
            "name": "abc",
            "labels": {
                "key": "value"
            }
        },
        "subsets": [
            {
                "addresses": [
                    {
                        "ip": "192.168.103.178"
                    }
                ],
                "ports": [
                    {
                        "port": 80
                    }
                ]
            }
        ]
    }`)

    r := bytes.NewReader(m)
    decoder := json.NewDecoder(r)

    val := &Example{}
    err := decoder.Decode(val)

    if err != nil {
        log.Fatal(err)
    }

    // Iterate over subsets and addresses to access each IP
    for _, s := range val.Subsets {
        for _, a := range s.Addresses {
            fmt.Println(a.IP)
        }
    }

}

JSON デコードを利用して、次の構造体を作成します。 JSON 構造をミラーリングするため、「ip」フィールドなどのネストされた要素を含む応答内のデータに動的にアクセスして解析できます。

以上がGo でネストされた JSON HTTP 応答を解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。