如何不使用byte []在json文件中写入几个二进制文件?

时间:2019-04-03 11:07:11

标签: java json spring rest spring-boot

我正在使用Spring Boot在REST API中工作,我需要生成包含一些数据的JSON文件,并将该文件发送给客户端。其中一些数据是简单的字符串,但我还需要在其中包含一些二进制文件。因此,生成的JSON文件的示例可能是:

{  
   "result":"0",
   "message":"",
   "document":{  
      "data":{ 
         "tag1":"String",
         "tag2":"String"
      }, 
      "binary": {
          "type": "application/pdf",
          "content" ${BINARY_CONTENT}
      }
   }
}

我这样做的方法是使用带有多个属性的Java对象,而“ content”属性是一个byte []。但是,处理的文件可能很大(甚至几个GB),所以我不能使用字节数组:内存将填满,并且byte []的长度也被限制为int_maxSize。

如何在不使用byte []的情况下生成JSON文件?例如,直接处理InputStream。这个想法是生成一个JSON文件(大小可以是GB),读取它,然后将其作为二进制发送到客户端。我无法将完整的二进制文件存储在内存中,因为它的大小可能很大。

谢谢。

0 个答案:

没有答案