流程: * 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模式怎么看怎么别扭 谢谢
--------------------------- grpc_node_plugin.exe - 系统错误 --------------------------- 由于找不到 VCRUNTIME140D.dll,无法继续执行代码。重新安装程序可能会解决此问题。 --------------------------- 确定 --------------------------- 报错缺少 "VCRUNTIME140D.dll" "msvcp140d.dll" "ucrtbased.dll" "vcruntime140_1d.dll" 但我重新安装vc 2015-2022后还是不行, 我直接把这几个dll下载下来放到 protoc.exe 同级目录,直接提示程序无法运行 这怎么解? 谢谢
目标是"electron"与"go服务程序"的互相通信 比如用go处理一些文件,通过"grpc"通信在界面上显示进度 目前我已跑通官网的示例: "https://grpc.io/docs/languages/go/quickstart/" (https://link.segmentfault.com/?enc=B21mpffu%2B0%2FWRFIYEjzGBg%3D%3D.hNGuWUvZcnaBLzSbBEFg2IdHlW0CkNquddox4HdBNJ3AC5xF5ismbqs%2FGxdsCElM) 但有几个问题不是很明朗: * 互相通信是不是需要go与node各开一个服务端与客户端? * 我不能跳过node直接做到go与electron通信是吗? * 我不是纯web,所以我不需要"grpc-web"这个库对吗? 我不清楚自己是否理解正确,希望指点一二,谢谢!