Protobuf GTFS实时无效的线路类型。

3

我使用https://protogen.marcgravell.com/工具从https://developers.google.com/transit/gtfs-realtime/gtfs-realtime.proto文件构建了我的C#类。

我正在使用以下代码引入来自http://transitfeeds.com/p/king-county-metro/445/source的数据流:

WebRequest request = WebRequest.Create("http://transitfeeds.com/p/king-county-metro/445/source");
FeedMessage feed = Serializer.Deserialize<FeedMessage>(request.GetResponse().GetResponseStream());

但我遇到了无效的线路类型 - 我死命也看不出问题在哪里,这些类是从最新的proto文件生成的,是否存在当请求来自URL时的问题?


你最终找到解析纯文本的方法了吗? - mchristos
2个回答

1

1
谢谢 - 你是正确的 - 它可以正常地使用实际的pb文件。那我可能需要重新考虑一下了。 - user7841585
有没有办法从纯文本中恢复数据? - mchristos

1

Protobuf实际上有两种不同的格式;最初的格式是二进制的。后来,添加了一个次要的JSON编码,它使用相同的DSL。但由于是JSON,它比默认的二进制格式低效得多

现在,protobuf-net 仅实现二进制编码。看起来你的源数据是JSON格式,如果是这样,它将无法与protobuf-net很好地配合。

Google的实现支持二进制和JSON格式,如果有帮助的话(protobuf-net只是protobuf规范的一个独立实现)。


@ChrisMarais同意,但它肯定不是protobuf二进制格式:) https://i.stack.imgur.com/8MWRl.png - 在这两者中,它更接近JSON,但是再次确认,没有JSON序列化器能解析它。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接