【发布时间】:2016-12-19 16:45:24
【问题描述】:
我有以下模板的 json 发布数据
{
"themeId" : JSONString,
"themeName" : JSONString,
"tables" : [{
"tableName" : JSONString,
"records" : [{
"recordVersion" : JSONString,
"tableItems" : []
}]
}]
}
在 Java 方面,我有这样的 REST API:
@POST
@Path("/{themeId}")
@Consumes({MediaType.APPLICATION_JSON})
public Response postTheme( @PathParam("themeId") String themeId, ThemeDictionary dictionary) throws InterruptedException {
//code to handle
}
post 数据小于 2 MB 时效果很好,但是如何处理大于 2 MB 的数据。
问题
1) 我应该使用分页吗?
2) 如果我将 json 分成两半,那么每一半都不是有效的 json。那么,我应该在服务器端接受字符串并连接吗?
3) 有没有很好的例子来处理这种情况
4) 寻找一种可以处理大小小于或大于 2 MB 的 json 数据的方法
【问题讨论】:
-
你试过bson吗?
-
我没试过,但是总的帖子数据大小会是 50 MB.. Bson 没有限制吗?
-
老实说,这只是一个建议,可能会稍微优化一下大小。总有效负载为 50MB,您可能仍然需要某种形式的分页。
-
进行不那么单一的数据交换,发布较小的项目,每条记录左右。即使使用压缩(标头
Accept-Encoding: gzip),50 MB(压缩后可能约为 1 MB)也太大了。 -
需要定义一些阈值,达到阈值后只需将数据发布到服务器。这样您可以最大限度地减少分页方法中的服务器调用次数。
标签: java json jakarta-ee jersey websphere