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

无法使用 mongo-go-driver 解码驼峰式字段

无法使用 mongo-go-driver 解码驼峰式字段

Go
千万里不及你 2023-06-12 12:55:20
我正在使用这样的结构type User struct {    Username  string    `json: "username" bson: "username"`    FirstName string    `json: "firstName" bson: "firstName"`    LastName  string    `json: "lastName" bson: "lastName"`    Email     string    `json: "email" bson: "email"`    Gender    string    `json: "gender" bson: "gender"`    Password  string    `json: "password" bson: "password"`    Enabled   bool      `json: "enabled" bson: "enabled"`    BirthDate time.Time `json: "birthDate" bson: "birthDate"`    CreatedAt time.Time `json: "createdAt" bson: "createdAt"`    UpdatedAt time.Time `json: "updatedAt" bson: "updatedAt"`    collection *mongo.Collection}然后使用查询数据func (u *User) FindByUsername(userName string) error {    var ctx, _ = context.WithTimeout(context.Background(), 10*time.Second)    filter := bson.M{"username": userName}    err := u.collection.FindOne(ctx, filter).Decode(&u)    return err}我得到的结果是{"Username":"jbond","FirstName":"","LastName":"","Email":"email@gmail.com","Gender":"Male","Password":"","Enabled":true,"BirthDate":"0001-01-01T00:00:00Z","CreatedAt":"0001-01-01T00:00:00Z","UpdatedAt":"0001-01-01T00:00:00Z"}大多数数据都已填充,但驼峰式字段除外,当我从控制台查询时,数据就在那里> db.users.find().pretty(){    "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxxxx"),    "username" : "jbond",    "firstName" : "James",    "lastName" : "Bond",    "email" : "email@gmail.com",    "password" : "",    "enabled" : true,    "gender" : "Male",    "birthDate" : {        "type" : {            "code" : "function Date() {\n    [native code]\n}"        }    },    "createdAt" : {        "type" : {            "code" : "function Date() {\n    [native code]\n}"        },        "default" : {            "code" : "function now() {\n    [native code]\n}"        }    },    "updatedAt" : {        "type" : {            "code" : "function Date() {\n    [native code]\n}"        },        "default" : {            "code" : "function now() {\n    [native code]\n}"        }    }}我不明白为什么要全部小写。或者我错过了什么?
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

不,它不是解码驼峰式字段失败。它无法解析结构标签。

根据文档:

按照惯例,标记字符串是可选的空格分隔键:“值”对的串联。每个键都是一个非空字符串,由除空格(U+0020 ' ')、引号(U+0022 '"')和冒号(U+003A ':')之外的非控制字符组成。每个值都被引用使用 U+0022 '"' 字符和 Go 字符串文字语法。

json:您应该删除and之后的空格bson:


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

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