例如,我有2个对象:
type appA struct {
appType string
frontend string
}
type appB struct {
appType string
backend string
}
例如,我有一个JSON格式的配置文件:
[
{
"appType" : "A",
"frontend": "URL"
},
{
"appType": "B",
"backend": "SQL"
}
]
根据this好主意-我创建了另一个结构:
type genericApp struct {
appType string
}
所以现在我可以很好地解组JSON,并知道JSON中的哪个对象是哪种应用程序。现在我的大问题是如何再次“编组和解组”-我可以以某种方式将已经解组的对象引用为接口,然后将它们重新编组为不同的对象吗?
我唯一的其他解决方案是对每种结构类型分别读取文件N次,然后遍历genericApp数组并从相关数组中“收集”匹配的对象,但这听起来像是一种糟糕的做法。 。
type genericApp struct {
appType string
frontend string `json:"frontend, omitempty"`
backend string `json:"backend, omitempty"`
}
但是,这有一些问题:如果您有很多类型,它将创建一个巨大的结构(如果我有20种应用程序类型,而不是2种,那将是100行长)
- 它没有给您两个单独的结构-您仍然需要稍后实现这种分离(切换大小写或类型转换等)