我使用gson
库将一些类转换为JSON并将它们发送到套接字。
目前我可以转换为字符串,并使用BufferedWriter
将字符串写入套接字。我可以使用BufferedReader
读取另一端到字符串,然后将字符串解析为JSON对象。我必须首先在JSON对象之前将JSON字符串的长度发送到管道。
我不禁想到必须有一种更有效的方法来使用某种JSON流读取器/写入器来避免首先读取/写入字符串。假设有一种直接读取和写入流的方法,你将如何处理发送错误形成的JSON的情况。
写这个并从套接字读取它的最佳方法是什么?
这是一个学习练习,所以虽然我能想出一些有用的东西,但我正在寻找“正确”的解决方案。
答案 0 :(得分:0)
我建议只为Json对象(消息)开发一个新协议。
这可能是这样的:
&&DeterminedBeginChars&&
Json消息 &&DeterminedEndChars&&
这是在套接字上。这将允许您知道何时发送Json消息,以及它的长度。这样您就可以避免使用String
进行任何解析。