嗨,我正在做一个API客户端,我想使用一个struct来提取json,问题是其中一个json字段应该命名为type,据我所知它是一个保留关键字,我该如何创建一个结构体中带有“type”字段?
示例:
我想做的事:
type Card struct {
cardId string
name string
cardSet string
type string
}
这不起作用,因为您没有导出字段名称。要在 JSON 输出中使用不同的字段名称,您可以使用结构标签。例如,要在 JSON 输出中命名字段 CardID、Name、CardSet 和 Type,您可以像这样定义结构:
type Card struct {
CardID string `json:"cardId"`
Name string `json:"name"`
CardSet string `json:"cardSet"`
Type string `json:"type"`
}
json:"<name>"
标签指定要在 JSON 输出中使用的字段名称。
您必须在模型上使用 json 注释。此外,必须导出这些字段(大写),否则解组器将无法使用它们。
type Card struct {
CardId string `json:"cardId"`
Name string `json:"name"`
CardSet string `json:"cardSet"`
TheType string `json:"type"`
}
虽然它在原始问题中肯定是一个未导出的字段,但在将 Cgo 与合法的 C 结构和名为
type
的合法字段一起使用时仍然是一个问题。
它看起来像是非常漂亮的 Golang C 接口中的一个缺陷