我正在使用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),读取它,然后将其作为二进制发送到客户端。我无法将完整的二进制文件存储在内存中,因为它的大小可能很大。
谢谢。