发送大响应Json作为多部分数据或多个部分

时间:2018-02-16 08:05:22

标签: java json base64 large-data spring-rest

我有一个要求,我有一个巨大的响应json,其中包含作为base64数据传递到json的图像。 json中有许多这些base64字符串数据,每个都是巨大的,因为这些图像的大小也是5-10 Mb。因此,json尺寸变大。我想知道是否有任何方法可以将这个巨大的json转换为multipart-data,或者是否有任何方法可以打破这个巨大的响应json并在单个http请求中将它们分成多个部分。任何人都可以提供一些帮助。

2 个答案:

答案 0 :(得分:2)

一些选项,但可能最容易使用Jackson,一个用于Java的JSON解析器。 Jackson可以将大型JSON对象拆分为多个较小的对象,这些对象可以发送到客户端。这是tutorial

有关其他选项,请参阅此Stack Overflow response

答案 1 :(得分:0)

我的问题有问题。你想要分割巨大的响应json,但仍然想要一个单一的请求。在HTTP协议级别,一个请求意味着一个响应。然后,您可以使用不同的容器格式以您希望的方式嵌套数据,它不会神奇地拆分响应,但只会增加一些开销。

您有低协议级别的选项。一种是压缩响应有效载荷。如果浏览器支持许多框架和servlet容器,并且所有主流浏览器都支持它,那么它们可以做到这一点。另一个是 chunk 响应有效载荷。在更高级别,它仍然是单个字节流,但它在网络上以不同的发送。它可能更强大,具体取决于网络,主要是如果您使用多个代理或路由器。

另一个选项处于高级别:让客户端发出一堆请求,每个响应都包含大型json的一部分。