Java返回包含文件流和其他Json数据的响应对象
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
public class ResponseExample {
public ResponseEntity<Map<String, Object>> createResponse(String jsonData) throws Exception {
// 创建ObjectMapper实例
ObjectMapper objectMapper = new ObjectMapper();
// 将JSON字符串转换为Map
Map<String, Object> responseData = objectMapper.readValue(jsonData, HashMap.class);
// 将字符串转换为InputStreamResource
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(jsonData.getBytes(StandardCharsets.UTF_8));
InputStreamResource inputStreamResource = new InputStreamResource(byteArrayInputStream);
// 设置响应头
responseData.put("file", inputStreamResource);
// 返回ResponseEntity
return new ResponseEntity<>(responseData, HttpStatus.OK);
}
}
这段代码展示了如何在Java中创建一个包含文件流和其他JSON数据的响应对象。首先,我们使用ObjectMapper
将JSON字符串解析为Map
。然后,我们将这个字符串转换为InputStreamResource
,以便可以作为文件流被客户端接收。最后,我们使用ResponseEntity
将这个数据和状态码一起返回。
评论已关闭