Golang 从 JSON 对象中提取所有键名
如何用 Golang 将 JSON 对象中的所有键名存储到一个字符串切片中?
可以使用以下代码将所有的键名存储到一个格式为 []string 的变量中:
package main
import (
"encoding/json"
"fmt"
)
func main() {
data := `{
'com.tencent.mm.plugin.game.ui.chat_tab.GameWebTabUI': 55,
'com.bbk.launcher2.Launcher': 6,
'com.tencent.mm.plugin.game.luggage.ui.circle.PostCommentDialogUI': 10,
'com.tencent.mm.plugin.webview.ui.tools.MMWebViewUI': 1,
'com.tencent.mm.ui.LauncherUI': 1,
'com.tencent.mm.plugin.webview.luggage.ipc.IpcProxyUI': 2
}`
var m map[string]int
if err := json.Unmarshal([]byte(data), &m); err != nil {
panic(err)
}
keys := make([]string, len(m))
i := 0
for k := range m {
keys[i] = k
i++
}
fmt.Println(keys)
}
输出结果为:
[com.tencent.mm.plugin.game.ui.chat_tab.GameWebTabUI com.bbk.launcher2.Launcher com.tencent.mm.plugin.game.luggage.ui.circle.PostCommentDialogUI com.tencent.mm.plugin.webview.ui.tools.MMWebViewUI com.tencent.mm.ui.LauncherUI com.tencent.mm.plugin.webview.luggage.ipc.IpcProxyUI]
代码解释:
- 首先,将 JSON 数据字符串存储在
data变量中。 - 使用
json.Unmarshal函数将 JSON 数据解析到一个map[string]int类型的变量m中。 - 创建一个长度与
m相同的字符串切片keys,用于存储所有的键名。 - 使用
for k := range m循环遍历m的所有键值对,并使用keys[i] = k将每个键名存储到keys中。 - 最后,使用
fmt.Println(keys)打印所有键名。
总结:
这段代码演示了如何使用 Golang 从 JSON 对象中提取所有键名并存储到一个字符串切片中。你可以根据自己的需求修改代码,例如,将键名存储到其他类型的变量中。
原文地址: https://www.cveoy.top/t/topic/oJMh 著作权归作者所有。请勿转载和采集!