gpt4 book ai didi

mongodb - Golang 从结构数组中选择字段

转载 作者:IT王子 更新时间:2023-10-29 02:17:57 25 4
gpt4 key购买 nike

我得到了所有用户的数组,在他们的文档中有一个属性 ID:

Users := []backend.User{}

err := Collection.Find(bson.M{"channel_id": bson.ObjectIdHex(chId)}).All(&Users)
if err != nil {
println(err)
}

我想将其作为 JSON 响应发送回浏览器/客户端。但是,User 结构包含 ID 和 Hahsed 密码之类的东西,我不想发回!

我正在寻找类似使用反射包来选择结构的字段然后将它们放入 map[string]interface{} 中的方法,但我不确定如何对一组用户执行此操作。

最佳答案

您可以在 json.Marshal 时忽略结构字段。

package main

import (
"encoding/json"
"fmt"
)

type User struct {
Id int `json:"-"`
Name string `json:"name"`
}

type Users []*User

func main() {

user := &Users{
&User{1, "Max"},
&User{2, "Alice"},
&User{3, "Dan"},
}

json, _ := json.Marshal(user)

fmt.Println(string(json))
}

Play Golang 中的可运行示例:http://play.golang.org/p/AEC_TyXE3B

关于using the tags 有一个非常有用的部分在文档中。同样适用于 XML ,但由于显而易见的原因,它更复杂。

关于mongodb - Golang 从结构数组中选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988256/

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