为了账号安全,请及时绑定邮箱和手机立即绑定

带有字段标签的匿名结构之间的类型转换

带有字段标签的匿名结构之间的类型转换

Go
幕布斯6054654 2022-06-06 17:11:02
我有一个 Open API 生成的模式,我想在我的处理函数中创建响应结构。但是当我想创建匿名结构时,我也需要再次编写字段标签。有没有不需要重复的解决方案?这是最小的例子package main// Response is generated by a tool in a separated filetype Response struct {    Result *struct {        Id int `json:"id"`    } `json:"result,omitempty"`}func main() {    var response Response    response.Result = &struct {        Id int `json:"id"`    }{5}    // This results in an error    // cannot use &struct { Id int } literal (type *struct { Id int }) as type *struct { Id int "json:\"id\"" } in assignment    response.Result = &struct {Id int}{5}}这个匿名结构是oapi-codegen的结果,当我在 api 定义的一部分中使用复杂类型components作为响应类型时。我想如果我使用一个CreateBookResponseResult类型,代码生成器不会生成一个匿名结构,但我会推迟这个选项,直到我可以。components:  CreateBookResponse:    type: object    properties:      result:        type: object        properties:          id:            type: integer
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

使用命名类型。


type Response struct {

    Result *ResponseResult `json:"result,omitempty"`

}


type ResponseResult struct {

        Id int `json:"id"`



var response Response

response.Result = &ResponseResult{Id: 5}


查看完整回答
反对 回复 2022-06-06
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信