gpt4 book ai didi

json - 如何从 Golang 中的 json 中提取单个值?

转载 作者:数据小太阳 更新时间:2023-10-29 03:41:44 26 4
gpt4 key购买 nike

我的代码

func HostStats() (*host.InfoStat, error) {
infoStat, err := host.Info()
fmt.Printf("All Host info: ", infoStat)
return infoStat, err
}

输出

所有主机信息:%!(EXTRA string= {"hostname":"UDAY-PC","uptime":536323,"bootTime":1559911444,"procs":248,"os":"windows","platform":"Microsoft Windows 10 Pro","platformFamily":"独立工作站","platformVersion":"10.0.17134 Build 17134","kernelVersion":"","virtualizationSystem":"","virtualizationRole":"","hostid":"0b324295-3631-47db-b6e8-83cdba2a1af9"})

我想从上面解析并显示以下值:

  1. 主机名
  2. 平台
  3. 主机名

我试过了,下面有额外的代码:

func HostStats() (*host.InfoStat, error) {

infoStat, err := host.Info()

type Information struct {
Name string
Platform string
HostId string
}

var info []Information
info, err := json.Unmarshal(infoStat, &info)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("ok: %+v", info)

//almost every return value is a struct
fmt.Printf("All Host info: ", infoStat)
return infoStat, err
}

最佳答案

正如 Adrian 上面提到的,您的变量有问题。

在 Go 中,您可以像以前那样初始化一个变量:

var info string
// And assign a value to it by:
info = "foo"

Json 被解码到您的信息变量中。 json.Unmarshal 的返回值只是一个错误。所以正确的语法是:

var info []Information
err := json.Unmarshal(infoStat, &info)

因此请记住初始化变量和为这些变量赋值的不同方法。你可以看看GoDocs for Variables了解更多信息:)

关于json - 如何从 Golang 中的 json 中提取单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56587267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com