我已经获得了通过protogen生成的c#类。
我有一个json响应,我想将其转换为object(映射到protogen生成的类)。
我怎样才能做到这一点? 我拥有的Json就像:
Test {Id:"0000001" InsertDateTime:"4/12/2018 01:01:01" ModifyDateTime:"4/12/2018 01:05:10" ParentId:"0000001"
Sample{Id:"0000002" InsertDateTime:"4/12/2018 01:01:01" ModifyDateTime:"4/12/2018 01:05:10"}
}
主要类名称为“Test”,它具有 int , string 属性以及类型为“ class ”的属性。
我想将这个Json转换为'protogen'生成的类对象。
答案 0 :(得分:0)
protobuf-net仅实现二进制协议缓冲区(ProtoBuf)规范。
目前还不清楚“json”是指“通用JSON,与ProtoBuf无关”,还是指“协议缓冲JSON格式在3.0左右添加”。
如果你的意思是通用JSON:那么通常几乎任何JSON序列化器都可以正常工作 - Json.NET是一个很好的默认设置,但是存在其他JSON序列化器。这是因为protobuf-net尝试使用惯用的.NET对象,这意味着它可以与使用惯用的.NET对象的其他工具很好地协作。
如果您指的是特定于ProtoBuf的JSON,那么我建议使用Google的官方C#ProtoBuf库来实现这一点。我根本没有需要或没有时间在protobuf-net中添加对此的支持,到目前为止添加它对我来说是一个非常低优先级 - 我根本没有看到有人要求它来自我。
如果你有通用的JSON,但JSON布局与你的protobuf模型不同,那么坦率地说我会推荐两个DTO模型:
并使用常规C#代码(或您选择的任何自动映射工具)简单地在两个表示之间进行映射。
你可以有时打击一个序列化程序库,让它与一个与数据形状不匹配的对象模型一起工作,但根据我的经验,这是一个糟糕的时间使用并导致脆弱的,错误的代码。