我得到一个地图界面,如:
getUsersAppInfo := usersAppInfo.GetUsersAppInfo(getUserId)
Run Code Online (Sandbox Code Playgroud)
然后我打印:
fmt.Println(getUsersAppInfo)
Run Code Online (Sandbox Code Playgroud)
得到这个,比如:
[map[appId:2 fcmServerKey:keyTestTest name:com.app]]
Run Code Online (Sandbox Code Playgroud)
问:如何只打印值,比如
appId value is 2
name value is com.app
fcmServerKey:keyTestTest value is keyTestTest
Run Code Online (Sandbox Code Playgroud)
poW*_*War 13
我不建议在生产设置中执行此操作。但是,当我想在开发盒上打印出没有太多代码的地图时,我会打印 JSON 序列化版本。在生产中这样做是犯罪行为。
package main
import (
"encoding/json"
"fmt"
)
func main() {
a := map[string]interface{}{"appId": 2, "fcmServerKey": "keyTestTest", "name": "com.app", "version": []int{1, 2, 3}, "xyz": 3}
bs, _ := json.Marshal(a)
fmt.Println(string(bs))
}
Run Code Online (Sandbox Code Playgroud)
输出:
{"appId":2,"fcmServerKey":"keyTestTest","name":"com.app","version":[1,2,3],"xyz":3}
OP 对该问题的评论指出,类型getUsersAppInfo是[]map[string]interface{}.
在地图切片上循环。对于每个地图,遍历键和值并打印。
// loop over elements of slice
for _, m := range getUsersAppInfo {
// m is a map[string]interface.
// loop over keys and values in the map.
for k, v := range m {
fmt.Println(k, "value is", v)
}
}
Run Code Online (Sandbox Code Playgroud)