Meine Frage geht über die Analyse von JSON-Dateien in Golang.Parsen von JSON in go
Genauer gesagt, ich versuche, die Ausgabe eines Befehls "Docker Netzwerk inspect Brücke" zu analysieren, die im JSON-Format ist. Der Befehl wird hier beschrieben. Mein Ziel ist es, eine Liste von "IPv4Address" für die aufgelisteten Container zu bekommen.
Ich habe versucht, dies zu tun, aber nicht zu konvertieren map [string] Schnittstelle {} zu Karte [string] string. Mein Code ist hier: - https://play.golang.org/p/eO_j996gGb
$ sudo docker network inspect bridge
[
{
"Name": "bridge",
"Id": "b2b1a2cba717161d984383fd68218cf70bbbd17d328496885f7c921333228b0f",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Config": [
{
"Subnet": "172.17.42.1/16",
"Gateway": "172.17.42.1"
}
]
},
"Internal": false,
"Containers": {
"bda12f8922785d1f160be70736f26c1e331ab8aaf8ed8d56728508f2e2fd4727": {
"Name": "container2",
"EndpointID": "0aebb8fcd2b282abe1365979536f21ee4ceaf3ed56177c628eae9f706e00e019",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"f2870c98fd504370fb86e59f32cd0753b1ac9b69b7d80566ffc7192a82b3ed27": {
"Name": "container1",
"EndpointID": "a00676d9c91a96bbe5bcfb34f705387a33d7cc365bac1a29e4e9728df92d10ad",
"MacAddress": "02:42:ac:11:00:01",
"IPv4Address": "172.17.0.1/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
}
}
]
Was ist der richtige Weg solche JSON-Dateien in golang zu analysieren. Ich habe versucht, die Typkonvertierung zu verwenden, aber das hilft nicht. Ich habe viele Dinge ausprobiert, aber letztendlich konnte ich nur so weit kommen wie der Code, der im Snippet gezeigt wird. Wie kann ich das Feld IPv4Address aus dem Objekt "cont" extrahieren?
Link zum Spielplatz Snippet Ich habe ist https://play.golang.org/p/eO_j996gGb. Jede Hilfe wird sehr geschätzt (bereit, Dinge auszuprobieren, nicht nur den Code, sondern Ideen :) Danke.
Noch ein Hinweis: Die meisten Docker-Befehle akzeptieren eine '--format'-Option, die eine Golang-Vorlage (aus dem' text/template') -Paket sein muss. – TheHippo