1

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

Users := []backend.User{}

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

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

我正在研究类似使用反射包来选择结构的字段,然后将它们放入 map[string]interface{} 但我不确定如何处理一组用户。

4

1 回答 1

1

您可以在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

关于在文档中使用标签有一个非常有用的部分。XML也一样,但由于显而易见的原因,它更复杂。

于 2013-09-24T18:26:20.340 回答