ホームページ > バックエンド開発 > Golang > Golang で JSON HTTP 応答から「ip」値を抽出する方法

Golang で JSON HTTP 応答から「ip」値を抽出する方法

Linda Hamilton
リリース: 2024-12-02 10:28:11
オリジナル
920 人が閲覧しました

How to Extract the

Golang を使用した JSON HTTP レスポンスの解析: "ip" の値の取得

この記事では、解析に関連する問題について説明します。 Golang の JSON HTTP 応答、具体的には、提供されているものと同様のサンプル JSON 出力から「ip」の値を取得する方法

目標は、JSON 応答から IP アドレスを抽出してコンソールに出力できるプログラムを作成することです。これを実現するには、Golang の組み込み JSON 解析機能を利用します。

まず、JSON 応答の構造を反映する Example という名前のカスタム構造体を定義します。この構造体には、「タイプ」、「データ」、および「サブセット」のフィールドがあります。同様に、サブセットとアドレスのネストされた構造体を定義して、JSON 応答のそれぞれの部分を包含します。

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"`
}
ログイン後にコピー

main() 関数で、HTTP リクエストから JSON 応答を読み取り、デコードします。例の構造体に追加します。これには、json.Decoder タイプを使用して応答本文のバイト ストリームを解析することが含まれます。

m := []byte(`{...}`) // Sample JSON response from HTTP request body

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

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

if err != nil {
    log.Fatal(err)
}
ログイン後にコピー

JSON 応答が Example struct にデコードされたら、以下を反復処理することで「ip」値にアクセスできます。サブセットとアドレスのスライス。

for _, s := range val.Subsets {
    for _, a := range s.Addresses {
        fmt.Println(a.IP)
    }
}
ログイン後にコピー

このプログラムの出力は、目的の「ip」値になります。たとえば、「192.168.103.178」です。

このアプローチを使用すると、JSON HTTP 応答を解析し、Golang の JSON 解析機能を使用してクリーンかつ効率的な方法で「ip」などの特定の値を取得できます。

以上がGolang で JSON HTTP 応答から「ip」値を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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