集成API解析响应时,Go结构体字段命名为type报错的解决问询
解决Go结构体中使用关键字
type作为API响应字段名的问题 这事儿我对接API的时候也踩过一模一样的坑!因为type是Go的保留关键字,专门用来定义新类型,直接把它当结构体字段名肯定会触发语法错误。不过别慌,用Go结构体的JSON标签就能完美搞定这个字段映射问题。
你只需要做两个简单调整:
- 把字段名改成合法的标识符(比如首字母大写的
Type,这很关键——Go里只有导出的字段才能被JSON解析包这类外部工具处理) - 在字段后面加上
json:"type"标签,明确告诉JSON解析器:这个结构体字段对应API响应里的type键
修正后的完整结构体代码如下:
type Test struct { Active bool `json:"active"` Name string `json:"name"` Description string `json:"description"` Amount int `json:"amount"` Currency string `json:"currency"` Type string `json:"type"` }
之后用encoding/json解析API响应时,就会自动把响应里的type值赋值给结构体的Type字段,语法问题和字段映射问题都一次性解决了~
内容的提问来源于stack exchange,提问作者Bhavana
相关产品推荐
相关产品推荐

