如何连续解析Java中单个流中的多个JSON数据?

时间:2012-05-18 08:01:23

标签: java json parsing

我有一个InputStreamReader(连接到套接字),它将接收多个JSON文档数据。例如,它将具有

{ "name" : "foo" }

并且,稍后(没有连接关闭),流将具有另一个JSON数据

{ "name" : "bar" }

我想用json-simple或json-smart在我的处理循环中解析它,无论如何。反正有吗?

我喜欢使用JSON解析器(从流中输入数据),如果它没有从流中接收数据,解析器可以阻止更多数据,如果它收到完整的JSON数据(可能使用某种方法) ,它可以不断解析下一个JSON数据。

显然,我尝试使用json-simple和json-smart但没有成功。

任何帮助或建议都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么问题就是从一批JSON对象中解析一个完整的JSON对象(不断地通过输入流)。

因此,如果可以检测到已收到完整的JSON对象,我们可以解析该对象。

要检测收到的JSON对象(String)是否完整且有效,我们可以维持Stack {} 1 。对于我们收到的每个{,我们都可以将其推送到Stack,对于每个},我们都可以从{删除Stack。如果我们Stack为空(不是第一次),我们可以得出结论:有一个完整的JSON对象。然后我们可以继续解析。


1 - 不确定JSON的括号结构(它是否均衡?),没有深入探讨JSON形成:(。