Go 使用jsonpb解组自定义类型

Go 使用jsonpb解组自定义类型,go,protocol-buffers,grpc,Go,Protocol Buffers,Grpc,将此json对象转换为protobuf的最佳方式是什么 JSON: 原型: message Something { string name = 1; message ListType { repeated string = 1; } map<string, ListType> _list = 2; } 消息{ 字符串名称=1; 消息列表类型{ 重复字符串=1; } 映射列表=2; } 如果消息中没有\u列表,我将使用js

将此json对象转换为protobuf的最佳方式是什么

JSON:

原型:

message Something {
     string name = 1;
     message ListType {
       repeated string = 1;
     }
     map<string, ListType> _list = 2;
   }
消息{
字符串名称=1;
消息列表类型{
重复字符串=1;
}
映射列表=2;
}
如果消息中没有
\u列表
,我将使用jsonpb.Unmarsal,但我想不出一种方法来定义diff包中生成的类型上的Unmarshaler接口


我还想过将
\u list
作为Any(json.RawMessage)并在解组后处理它(但无法实现;err message:
任何json都没有'@type'

与\u list不一致(不仅仅是字符串列表/值映射/etc)你提到你使用任何你可以考虑的信息:

消息{
字符串名称=1;
google.protobuf.Struct_list=2;
}


有了它,您就可以将json封送/解封送到proto消息中或从proto消息中封送/解封,使用proto消息实际上是为grpc网关设计的,但您也可以使用它

任何关于如何使用
jsobpb
将json字符串转换为proto-struct类型的代码示例都会很有帮助。
message Something {
     string name = 1;
     message ListType {
       repeated string = 1;
     }
     map<string, ListType> _list = 2;
   }