如何为函数签名定义json结构类型?



我有一个结构体定义

type ds struct {
name     string
TagList                          []struct {
Key   string `json:"Key"`
Value string `json:"Value"`
} `json:"TagList"`
}

我希望有一个函数将TagList转换为字符串数组(我自己的序列化函数)。所以函数看起来像这样

func serialize(tagList <?>) string

我应该定义什么类型是我不确定的。因为如果我用

来调用这个函数
serialize(mydata.TagList)  // mydata is the ds struct type

然后它会提醒我这个类型是[]struct{…}

但是我不确定如何定义[]结构{…}。

我也开放现有的序列化库api,我可以使用它来实现这一点,只要它序列化成一个字符串。

推荐的方法是为嵌套的struct字段声明一个新类型,以便您可以在需要时通过名称引用该类型;例如:

type Tag struct {
Key   string `json:"Key"`
Value string `json:"Value"`
}
type ds struct {
name    string
TagList []Tag `json:"TagList"`
}
// ...
func serialize(tagList []Tag) string {
// ...
}

否则,在不声明新类型的情况下,必须在每个希望使用该类型的地方重复匿名结构的整个类型定义;例如:

func serialize(tagList []struct {
Key   string `json:"Key"`
Value string `json:"Value"`
}) string {
// ...
}

相关内容

  • 没有找到相关文章

最新更新