go的结构体嵌套

image.png
如上图,我想封装一个基础结构体,用作web api的响应数据,status和message及代表接口的基础响应状况,其中data则是各自接口的响应数据,各个接口的响应内容肯定不尽相同,
那么我这个data怎么定义才能让不同接口的响应情况输入到该基础结构体的data中呢?
理想的结果是这样的:

{
    "Status": 1,
    "Data": {
        "Id": 100,
        "Name": "",
        "Age": 32,
        "IsDeleted": true
    },
    "Message": "OK"
}
或者
{
    "Status": 1,
    "Data": {
        "ClassName": "1班",
        "TeacherName": "李明"
    },
    "Message": "OK"
}

当然,以上展示响应是转过json的

阅读 3.6k
1 个回答

data 类型换成 interface{} 就好了,比如下面这样:

type Base struct {
    Status int64
    Data interface{}
    Message string
}

这里的 interface{} 即可以理解为任意类型。

当然,如果是返回给客户端的话,非 struct 类型数据,也可以通过组织 map 的方式实现,此时的 Data 的类型即 map[string]interface{}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏