Json.NET反序列化具有多个对象的缓冲区?

时间:2011-03-26 23:04:29

标签: .net json.net

我需要与一个服务进行对话,该服务发送连续的JSON对象流,其间没有任何内容。我正在看Json.net,但如果能够完成这项任务,我可以使用其他一些.NET东西。

在我读完一个字节序列之后,我可能会有一个部分对象,在这种情况下,我想等到我获得更多数据,或者我可能有一个或多个整个对象,可能后跟一个部分对象。

如果有多个顶级对象,或者只是部分顶级对象,则Json.net会抛出异常。异常中的数据没有那么有用 - 它为您提供了行号和列号。如果它在字节缓冲区中有一个更有用的偏移量,因为我可以删掉那么多字节并再试一次。

有关如何应对此事的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

听起来你必须手动创建一些内容,以便在将内容丢弃到Json.NET之前解决问题。或者让发送者包含某种终结符,表示JSON blob的结束。您对XML有同样的问题,因此它不仅仅与数据类型相关联,而是与您的实现相关联。

我建议与服务的作者交谈,如果可能的话,让他们标记JSON实体的结尾。