我有一个InputStreamReader(连接到套接字),它将接收多个JSON文档数据。例如,它将具有
{ "name" : "foo" }
并且,稍后(没有连接关闭),流将具有另一个JSON数据
{ "name" : "bar" }
我想用json-simple或json-smart在我的处理循环中解析它,无论如何。反正有吗?
我喜欢使用JSON解析器(从流中输入数据),如果它没有从流中接收数据,解析器可以阻止更多数据,如果它收到完整的JSON数据(可能使用某种方法) ,它可以不断解析下一个JSON数据。
显然,我尝试使用json-simple和json-smart但没有成功。
任何帮助或建议都将不胜感激。
谢谢。
答案 0 :(得分:0)
如果我正确理解了这个问题,那么问题就是从一批JSON
对象中解析一个完整的JSON
对象(不断地通过输入流)。
因此,如果可以检测到已收到完整的JSON
对象,我们可以解析该对象。
要检测收到的JSON
对象(String
)是否完整且有效,我们可以维持Stack
{
和}
1 。对于我们收到的每个{
,我们都可以将其推送到Stack
,对于每个}
,我们都可以从{
删除Stack
。如果我们Stack
为空(不是第一次),我们可以得出结论:有一个完整的JSON
对象。然后我们可以继续解析。
1 - 不确定JSON
的括号结构(它是否均衡?),没有深入探讨JSON
形成:(。