Go での JSON HTTP レスポンスの解析
この記事では、一般的なコーディングの課題、つまり、Go での HTTP リクエストからの JSON レスポンスの解析に取り組みます。 Go プログラミング言語。応答を解読し、「ip」フィールドなどの特定の値を抽出するのに役立つ例を順を追って説明します。
例として次の Curr 出力を考えてみましょう。
{ "type":"example", "data":{ "name":"abc", "labels":{ "key":"value" } }, "subsets":[ { "addresses":[ { "ip":"192.168.103.178" } ], "ports":[ { "port":80 } ] } ] }
私たちの目標は、この応答から「ip」フィールドの値を取得することです。
Struct-Based JSONデコード
JSON 応答をデコードするには、JSON 構造をミラーリングする構造体を作成します。 Go の構造体はデータのテンプレートとして機能し、その形状とフィールドを定義します。
構造体ベースの 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"` } func main() { jsonResponse := `{ "type": "example", "data": { "name": "abc", "labels": { "key": "value" } }, "subsets": [ { "addresses": [ { "ip": "192.168.103.178" } ], "ports": [ { "port": 80 } ] } ] }` r := bytes.NewReader([]byte(jsonResponse)) decoder := json.NewDecoder(r) val := &Example{} err := decoder.Decode(val) if err != nil { log.Fatal(err) } for _, s := range val.Subsets { for _, a := range s.Addresses { fmt.Println(a.IP) } } }
特定のキーのデコード
上記のコードでは、Example という構造体を使用して、 JSON 応答の構造。デコーダを使用すると、応答をサンプル構造体にデコードできます。
「ip」値を抽出するには、Address 構造体のスライスである Addresses スライスにアクセスします。各 Address 構造体には「ip」フィールドが含まれており、その値を出力できます。
これらの手順に従うことで、Go で JSON HTTP 応答を効果的に解析し、「ip」フィールドのような特定のデータ値を取得できます。この例。 JSON 構造に一致する構造体を作成し、デコーダーを使用して応答データを入力することを常に忘れないでください。
以上がGo で JSON HTTP レスポンスから「ip」フィールドを解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。