我有一个动态的json对象,我想在我的Go应用程序中解组。问题是json的某些部分是动态命名的,所以我不知道在struc类型的json标记中放入什么。为了说明我的问题,请看这个游乐场:https://play.golang.org/p/q8J0VVO7uj
正如您所看到的,s1
可以完美地解组,因为结构类型确实具有标记description
。但s2
无法解组。
所以我的问题是:我该如何解决这个问题?我可以在这里使用接口吗?
答案 0 :(得分:1)
使用地图作为动态键:
type ElvisEvent struct {
Timestamp int64 `json:"timestamp"`
Type string `json:"type"`
AssetID string `json:"assetId"`
Metadata struct {
} `json:"metadata"`
ChangedMetadata map[string]struct {
OldValue interface{} `json:"oldValue"`
NewValue interface{} `json:"newValue"`
} `json:"changedMetadata"`
}