gpt4 book ai didi

go - Go 中 slice 内的对象

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

我正在尝试将多个对象嵌入到一个 slice 中,以便稍后可以将它们导出为 JSON。 JSON 应如下所示:

[
{
name: "Nginx"
version: "1.9"
},
{
name: ircd-hybrid"
version: "8.2"
}
]

到目前为止,我在 Go 中有这个结构:

type response struct {
application []struct {
name string
version string
}
}

现在(我什至不确定结构是否正确),我正在尝试以这种方式访问​​它(同样,不确定这是否正确):

   var d response
d[0].name = "Nginx"
d[0].version = "1.9"

等等等等。但是,它不起作用,所以我认为我在某处出错了。我只是不知道在哪里。

最佳答案

您的“模型”(在本例中为 Go 中的结构)的形式不太正确。你真的只是想要这个;

type application struct {
Name string `json:"name"` // gotta uppercase these so they're exported
Version string `json:"version"` // otherwise you can't marshal them
}
apps := []application{
application{Name:"Windows", Version:"10"}
}
app := application{Name:"Linux", Vesion:"14.2"}
apps = append(apps, app)

json 以 [ 开头,这意味着它只是一个数组,没有封闭对象。如果有,您会想要另一种具有应用程序数组 ( []application ) 属性的类型。要向该数组添加项目,您可以使用 append 或使用“复合文字”语法使用某个实例对其进行初始化。

编辑:我添加了一些注释,因此生成的 json 将具有小写名称,就像您的示例中一样。如果某个属性未在 Go 中导出,则 encoding/json 等其他库将无法使用它。

关于go - Go 中 slice 内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462642/

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