当我们从响应中返回许多文档时,我们可以对结果进行分页并在响应中提供链接以检索要从API获取的下一组文档。但是我的情况不同,我的回复中的每个文件都可能非常大。我该如何处理此类回复? 例如,考虑以下示例Json:
{
"excludes": null,
"endDate": 1422918663,
"appliedText": "Applied text",
"id": "135699543",
...
"assignedTo": {
"productPart": [
{
"part": "1"
},
{
"part": "2"
},
{
"part": "3"
},
{
"part": "4"
},
...
]
}
...
}
如果你看到这里,productPart
可以增长到数万。如何限制如此大的响应但保留结构。
答案 0 :(得分:0)
使用单独的请求获取产品部件(如果有可能),然后可以对其进行分页。
替代。返回前x个产品部件,然后提供可以获得更多产品部件的链接。
答案 1 :(得分:0)
我相信你应该尝试类似JSON-Streaming的内容。
流处理(也称为增量处理)是处理JSON内容的最有效方式。它具有最低的内存和处理开销,并且通常可以匹配Java平台上可用的许多二进制数据格式的性能
这是主要的想法:
try {
InputStream in = [..];
JsonParser parser = new JsonFactory().createParser(in);
JsonToken token = null;
while ((token = parser.nextToken()) == JsonToken.FIELD_NAME) {
/*
* Parse parts and store them in client DB
* use later client side pagination
*
* {
* "part": "i"
* }
*/
}
} catch (Exception e) {
//
}