使用JSON.Net从NetworkStream反序列化或解析JSON

aat*_*tia 5 .net serialization json networkstream

我正在通过NetWorkStream将序列化的对象发送到另一台计算机,在接收端我想反序列化这些对象。

当我通过NetworkStream接收数据时,我将发送许多连续的对象,如何知道第一个JSON文档何时结束才能让JSON.NET从接收到的字符串中解析文档?

还是更好,还有什么方法可以让Json.NET直接从NetworkStream中读取并反序列化/解析生成的JSON文档?

让我知道问候

阿尔伯特

Dar*_*rov 4

如果您实现一些自定义协议,您可以发送一个标记来指示当前对象结束,以便客户端可以反序列化它并将其添加到结果列表中。另一种选择是一次性读取整个流并反序列化整个数组,这当然会消耗更多内存。

  • JSON 反序列化器需要整个 JSON 字符串才能成功执行反序列化,因此如果您想实现此目的,您要么需要一个标记,要么等待读取整个流。您可以尝试实现一些启发式方法,例如计算开始“{”的数量并匹配相应的结束“}”,以确定当前对象的结束位置,但这可能不是一个适用于任何 JSON 字符串的简单任务。 (2认同)