Heim > Backend-Entwicklung > Golang > Wie analysiere ich ein „ip'-Feld aus einer JSON-HTTP-Antwort in Go?

Wie analysiere ich ein „ip'-Feld aus einer JSON-HTTP-Antwort in Go?

Linda Hamilton
Freigeben: 2024-11-27 12:59:13
Original
363 Leute haben es durchsucht

How to Parse an

JSON-HTTP-Antworten in Go analysieren

In diesem Artikel befassen wir uns mit einer häufigen Codierungsherausforderung: dem Parsen von JSON-Antworten von HTTP-Anfragen in die Programmiersprache Go. Wir gehen ein Beispiel durch, um Ihnen zu helfen, die Antwort zu entschlüsseln und bestimmte Werte zu extrahieren, wie zum Beispiel das „ip“-Feld.

Betrachten Sie die folgende Curl-Ausgabe als Beispiel:

{
  "type":"example",
  "data":{
    "name":"abc",
    "labels":{
      "key":"value"
    }
  },
  "subsets":[
    {
      "addresses":[
        {
          "ip":"192.168.103.178"
        }
      ],
      "ports":[
        {
          "port":80
        }
      ]
    }
  ]
}
Nach dem Login kopieren

Unser Ziel ist es, den Wert des Felds „ip“ aus dieser Antwort abzurufen.

Strukturbasiertes JSON Dekodierung

Um die JSON-Antwort zu dekodieren, erstellen wir Strukturen, die die JSON-Struktur widerspiegeln. Strukturen in Go dienen als Vorlagen für unsere Daten und definieren deren Form und Felder.

Hier ist ein Beispielcode, der die strukturbasierte JSON-Dekodierung demonstriert:

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)
        }
    }
}
Nach dem Login kopieren

Dekodierung eines bestimmten Schlüssels

Im obigen Code verwenden wir eine Struktur namens „Example“, um der Struktur der JSON-Antwort zu entsprechen. Mithilfe des Decoders können wir dann die Antwort in unsere Beispielstruktur dekodieren.

Um den „ip“-Wert zu extrahieren, greifen wir auf den Addresses-Slice zu, der ein Slice von Adressstrukturen ist. Jede Adressstruktur enthält das „ip“-Feld, sodass wir seinen Wert ausdrucken können.

Durch Befolgen dieser Schritte können Sie JSON-HTTP-Antworten in Go effektiv analysieren und bestimmte Datenwerte abrufen, wie das „ip“-Feld in dieses Beispiel. Denken Sie immer daran, Strukturen zu erstellen, die der JSON-Struktur entsprechen, und einen Decoder zu verwenden, um sie mit den Antwortdaten zu füllen.

Das obige ist der detaillierte Inhalt vonWie analysiere ich ein „ip'-Feld aus einer JSON-HTTP-Antwort in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage