我正在编写一个 Golang API,当它被调用时,它会从两个不同的 MongoDB 集合中获取数据并将其附加到一个结构中,将其转换为 JSON,然后进行字符串化并发送到 API(Amazon SQS)
问题是,定义从 MongoDB 接收的数据的结构,虽然一些字段定义正确,但有些是不同的
// IncentiveRule struct defines the structure of Incentive rule from Mongo
type IncentiveRule struct {
... Other vars
Rule Rule `bson:"rule" json:"rule"`
... Other vars
}
// Rule defines the struct for Rule Object inside an incentive rule
type Rule struct {
...
Rules interface{} `bson:"rules" json:"rules"`
RuleFilter RuleFilter `bson:"rule_filter" bson:"rule_filter"`
...
}
// RuleFilter ...
type RuleFilter struct {
Condition string `bson:"condition" json:"condition"`
Rules []interface{} `bson:"rules" json:"rules"`
}
虽然这可行,但interface{}内部定义的Rule结构是不同的,并且在获得 BSON 并解码和重新编码为 JSON 时,而不是像JSON 中那样编码"fookey":"barvalue",它被编码为"Key":"fookey","Value":"barvalue",如何避免这种行为并将其作为"fookey":"barvalue"
江户川乱折腾
相关分类