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 サイトの他の関連記事を参照してください。