如何用 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]

代码解释:

  1. 首先,将 JSON 数据字符串存储在 data 变量中。
  2. 使用 json.Unmarshal 函数将 JSON 数据解析到一个 map[string]int 类型的变量 m 中。
  3. 创建一个长度与 m 相同的字符串切片 keys,用于存储所有的键名。
  4. 使用 for k := range m 循环遍历 m 的所有键值对,并使用 keys[i] = k 将每个键名存储到 keys 中。
  5. 最后,使用 fmt.Println(keys) 打印所有键名。

总结:

这段代码演示了如何使用 Golang 从 JSON 对象中提取所有键名并存储到一个字符串切片中。你可以根据自己的需求修改代码,例如,将键名存储到其他类型的变量中。

Golang 从 JSON 对象中提取所有键名

原文地址: https://www.cveoy.top/t/topic/oJMh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录