我正在计划一个协议,其中两个应用程序在它们之间打开一个套接字并发送和接收合法的json对象。
可以明确地解析一系列json对象,还是需要分隔符,或者为每个对象添加长度或类似内容?
答案 0 :(得分:2)
Real JSON对象始终以匹配的{和}字符开头和结尾。所以你应该能够构建一个流解析器来正确地确定边界,而不需要事先知道长度。
有关语法的详细信息,请参阅json.org。
答案 1 :(得分:1)
有效的JSON对象具有平衡分隔符。
你能100%确定你只会收到有效的物品吗?你有网络故障吗?如果发送者在中间传输中死亡怎么办?我想你还需要:
A)。关于您正在接收的JSON对象的一些协议,以便您可以忽略部分流,直到您看到一个约定的有效负载的开始。例如。一切都是“信封”对象
B)。类似堆栈的恢复机制推送和“弹出”计算开始和结束分隔符,直到您确定您有新记录的开头。由于充分的法律腐败,这听起来很难做到。
我非常喜欢第一种选择。