可以在没有进一步分隔符或了解其长度的情况下明确解析一系列json对象吗?

时间:2009-07-14 10:35:44

标签: json api sockets distributed

我正在计划一个协议,其中两个应用程序在它们之间打开一个套接字并发送和接收合法的json对象。

可以明确地解析一系列json对象,还是需要分隔符,或者为每个对象添加长度或类似内容?

2 个答案:

答案 0 :(得分:2)

Real JSON对象始终以匹配的{和}字符开头和结尾。所以你应该能够构建一个流解析器来正确地确定边界,而不需要事先知道长度。

有关语法的详细信息,请参阅json.org

答案 1 :(得分:1)

有效的JSON对象具有平衡分隔符。

你能100%确定你只会收到有效的物品吗?你有网络故障吗?如果发送者在中间传输中死亡怎么办?我想你还需要:

A)。关于您正在接收的JSON对象的一些协议,以便您可以忽略部分流,直到您看到一个约定的有效负载的开始。例如。一切都是“信封”对象

B)。类似堆栈的恢复机制推送和“弹出”计算开始和结束分隔符,直到您确定您有新记录的开头。由于充分的法律腐败,这听起来很难做到。

我非常喜欢第一种选择。