我有一个由许多不同类型实现的接口 EventAggregation。我需要使用相同的两个字段来丰富所有这些类型,所以我正在做这样的事情:
type messagePayload struct {
domain.EventAggregation
SourceSystem string `json:"sourceSystem"`
MessageTimestamp int `json:"messageTimestamp"`
}
然后我用这个方法把它翻译成一个字符串:
func (payload messagePayload) payloadToString() string {
jsonForm, _ := json.Marshal(payload)
return string(jsonForm)
}
但它会创建一个以“EventAggregation”为键的字符串,并且字段作为对象嵌入其中,如下所示:
{"EventAggregation":{"startTime":1575941942501,"endTime":1581461995869,"computeTimestamp":1582573485983,"eventType":"foo","count":146692},"sourceSystem":"bar","messageTimestamp":1582573497406}
如何以使 EventAggregation 中的字段与字段“SourceSystem”和“MessageTimestamp”处于同一级别的方式创建字符串?像这样:
{"startTime":1575941942501,"endTime":1581461995869,"computeTimestamp":1582573485983,"eventType":"foo","count":146692,"sourceSystem":"bar","messageTimestamp":1582573497406}
如果嵌入式对象是结构而不是接口,则相同的代码似乎可以工作,但考虑到有多少不同的结构实现了“EventAggregation”接口,这并不是超级实用。
繁花如伊
当年话下
摇曳的蔷薇
随时随地看视频慕课网APP
相关分类