Полученный вами ответ является объектом, который имеет внутренний метод String() string
и, таким образом, выводится следующим образом.
Он состоит из фрагментов и карт и выглядит следующим образом:
[
map[
_id:ObjectIdHex("4de39d42ke9fc601db635618")
host:test.server.lan
installed:
[
map[
arch:all
homepage:
name:adduser
status:ii
vendor:
version:3.118
]
map[
arch:all
homepage:
name:adwaita-icon-theme
status:ii
vendor:
version:3.30.1-1
]
map[
arch:all
homepage:
name:ampua-watchdog
status:ii
vendor:
version:2.2.2~ui10
]
...
Возможно, более знакомый внешний вид будет:
[
{
"_id":ObjectIdHex("4de39d42ke9fc601db635618"),
"host":"test.server.lan",
"installed":
[
{
"arch":"all",
"homepage":"",
"name":"adduser",
"status":"ii",
"vendor":"",
"version":"3.118"
},
{
"arch":"all",
"homepage":"",
"name":"adwaita-icon-theme",
"status":"ii",
"vendor":"",
"version":"3.30.1-1"
},
{
"arch":"all",
"homepage":"",
"name":"ampua-watchdog",
"status":"ii",
"vendor":"",
"version":"2.2.2~ui10"
},
...
Но в основном то же самое. Чтобы перебрать респ, вы можете сделать:
for server := range resp {
fmt.Printf("Host: %s\n", server.host)
for installedPackage := range server.installed {
fmt.Printf("\tPackage: %s\tVersion: %s\n", installedPackage.name, installedPackage.version)
}
}