在Java/Android中解析多个JSON数组

在Java/Android中解析多个JSON数组,java,android,arrays,json,Java,Android,Arrays,Json,如果将多个JSON数组传递到Java(在单个流中),如下所示: [ <-----json objects---->] [ <-----json objects---->] [ <-----json objects---->] 需要注意的是,第一个数组是items,第二个数组是totals。items中的第一个json对象对应于总数中的第一个。我想说,您首先需要将此内容转换为有效的json,也许您可以首先将]\s*[替换为],[并在Begging和]处添加

如果将多个JSON数组传递到Java(在单个流中),如下所示:

[ <-----json objects---->] [ <-----json objects---->]  [ <-----json objects---->] 

需要注意的是,第一个数组是items,第二个数组是totals。items中的第一个json对象对应于总数中的第一个。

我想说,您首先需要将此内容转换为有效的json,也许您可以首先将
]\s*[
替换为
],[
并在Begging和
]处添加
[
]
结尾。这将是一个有效的JSON,可以被解析为一个
JSONArray
,其中包含许多
JSONArray
s

比如:

String receivedJSON = "[{},{}] [{},{}] [{}]";
String normalized = "[" + receivedJSON.replaceAll("\\]\\s*\\[", "],[") + "]";
new JSONArray(normalized);

单数组是指使用提供的json库并将整个json对象字符串传递给构造函数吗?然后,您可以做任何您想做的事情,因为它会将其解析为名称-值对。您可以立即获得整个流吗?我的意思是封闭两个数组,并通过添加“[”“]”使其成为单个数组围绕着两个单独的数组。还有一个旧的堆栈问题用它作为答案,但我在寻找不同的方法。@Francisco Spaeth是的,它来自php编码。所以听起来我建议的方法是不可能的。它们都是有效的JSON数组,你可以同时解析它们吗?你有c吗对PHP脚本的控制?我确实有访问权限;我试着使用它一段时间,实际上也有一个相应的问题(它提出了一个不同的问题,虽然它更全面地展示了我在大局中所做的事情)。(正如您将看到的,我实际上输出了三个数组,但为了简化,在本例中使用了两个数组)。我明白了,您可以考虑采用另一个模型来表示您正在尝试执行的操作。当我需要返回一组项目(如搜索结果)时,我通常使用类似于:
{“total”:8,“offset”:0,“items”:[{},{},{},{},{},{}]}
因此,您可以将请求页面的总偏移量和项目都放在一个objectWell中。我通过正确的操作解决了这个问题。我只是将我的3个SQL查询合并为一个。因此,将其编码为JSON非常容易,无需做任何特殊的操作。
String receivedJSON = "[{},{}] [{},{}] [{}]";
String normalized = "[" + receivedJSON.replaceAll("\\]\\s*\\[", "],[") + "]";
new JSONArray(normalized);