流程: * json作为数据 * viper解析 * grpc通信 json: { ...省略其他 "toolbar": { "column": [ [ { "name": "", "role": "" } ] ], "row": [] }} proto: message Tool_bar { message Tool_item { string name = 1; string role = 2; } message Array2D { repeated Tool_item inner_array = 1; } repeated Array2D column = 1; } 生成的go代码 type ConfigReply_Array2D struct { ... InnerArray []*ConfigReply_ToolItem `protobuf:"bytes,1,rep,name=inner_array,json=innerArray,proto3" json:"inner_array,omitempty"` } type ConfigReply_ToolBar struct { ... Column []*ConfigReply_Array2D `protobuf:"bytes,1,rep,name=column,proto3" json:"column,omitempty"` ... } 目前卡在viper解析proto文件生成的struct报错: `'Toolbar.Column[0]' expected a map, got 'slice'\n*` 原因很简单,viper需要的是 type ToolBar struct { Name string `json:"name"` Role string `json:"role"` } type Xxx struct { ToolBar struct { Column [][]ToolBar `json:"column"` Row [][]ToolBar `json:"row"` } `json:"toolbar"` } 生成的代码却多了一个`InnerArray` 请问,这该怎么办? 最好不要改json格式,需要的就是二维数组,改成map模式怎么看怎么别扭 谢谢