为了账号安全,请及时绑定邮箱和手机立即绑定

从接口获取密钥

从接口获取密钥

Go
当年话下 2022-07-11 15:40:45
我知道标题说接口数组,但这就是打印数据的方式。我在 mongodb 中有一个名为“设备”的字段,它是对象类型。该对象包含一堆随机键值对。键只是随机生成的整数,值是字符串。所以我写了一些从数据库中检索数据的代码,在我检索到数据之后,我想从这些对象中获取所有键并将它们存储在一个数组中,我似乎不知道该怎么做那。首先,我假设我的问题在于获取数据的方式,因为我将其存储到 interface{} 而不是数组中。数据像数组一样打印出来,但是当我更改结构以检索数组时,它返回为空,所以我放弃了这个想法。功能    type Data struct {        Devices interface{} `json:"devices" bson:"devices"`    }    client := db.ConnectClient()    col := client.Database("Users").Collection("User")    var deviceIds Data    _ = col.FindOne(context.TODO(), bson.D{}).Decode(&deviceIds)    log.Print(deviceIds.Devices)输出2020/10/29 21:28:07 [{123456789 Plant} {456753121 Money Bringer} {798745321 Hello}]我也尝试过将该结构更改为    type Data struct {        Devices map[int]interface{} `json:"devices" bson:"devices"`    }这给出了一个输出2020/10/29 21:35:10 map[123456789:Plant 456753121:Money Bringer 798745321:Hello]但我又不知道如何从中提取密钥
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

所以当我刚写完这个问题时,我发现地图是获取数据的正确方法。


发布问题并自己回答,因为我认为这对其他人有用


type Data struct {

        Devices map[int]interface{} `json:"devices" bson:"devices"`

}



for key, value := range deviceIds.Devices {

        fmt.Println(key, value)

}

将结构更改为上面的地图,然后用范围循环遍历它,效果很好


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信