ホームページ >バックエンド開発 >Golang >Golang で JSON HTTP 応答から「ip」値を抽出するにはどうすればよいですか?

Golang で JSON HTTP 応答から「ip」値を抽出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-09 02:36:10911ブラウズ

How Can I Extract the

Golang を使用して JSON HTTP 応答を解析する

提供された JSON 応答から「ip」の値を取得するには、カスタムを利用することをお勧めしますJSON 構造をミラーリングし、それに応じて応答をデコードする構造体。次のコードを考えてみましょう:

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
)

// Define structs to match the JSON structure
type Example struct {
    Type    string   `json:"type"`
    Subsets []Subset `json:"subsets"`
}

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

type Address struct {
    IP string `json:"ip"`
}

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

    // Create a reader from the JSON input
    r := bytes.NewReader(m)
    decoder := json.NewDecoder(r)

    // Decode the JSON into the Example struct
    val := &Example{}
    if err := decoder.Decode(val); err != nil {
        log.Fatal(err)
    }

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

このアプローチでは、JSON 応答をカスタム構造体にデコードでき、スライスをループして構造体のメンバー (a.IP など) にアクセスして特定の値を取得する機能が提供されます。提供されたコードは、JSON 応答を読み取り、それを構造体にデコードし、特定の値を抽出するエンドツーエンドのワークフローを示しています。

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

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