0

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

{ "name" : "foo" }

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

{ "name" : "bar" }

.

我想在我的处理循环中使用 json-simple 或 json-smart 来解析它。有没有办法做到这一点?

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

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

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

谢谢你。

4

1 回答 1

0

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

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

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


1 - 不确定括号结构(平衡吗?)JSON,没有JSON更早地探索形成:(。

于 2012-05-18T08:39:00.107 回答