如何将 json 块作为文件发送给用户

How to send a json block to the user as a file

本文关键字:文件 给用户 json      更新时间:2023-09-26

我有一个很大的JSON块;将其作为(下载的)文件发送到浏览器的最佳方法是什么?

下面是一个示例,如果我的源来自文件,但在我的情况下,我的源不是文件,它是一个变量,我需要将此 json 数据发送到浏览器:

var http = require('http');
var fs = require('fs');
var file = fs.createWriteStream("file.jpg");
var request = http.get("http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg", function(response) {
  response.pipe(file);
});

我尝试的代码:

res.setHeader('Content-disposition', 'attachment; filename=myData.json');
res.setHeader('Content-type', 'application/json');
//data is my variable with my JSON block
res.pipe(data);//This is not right!

如果我的问题含糊不清,如果您需要更多澄清,请告诉我

我不知道

你使用的是哪种类型的框架(Express?),但这仅适用于普通的http模块。

var http = require('http');
http.createServer(function (req, res) {
  res.setHeader('Content-disposition', 'attachment;   filename=myfilename');
  var data = { foo: 'bar' };      
  res.write(JSON.stringify(data))
  res.end()
}).listen(1337, '127.0.0.1');
听起来你可能

想要的是JSON流。EG:你想把一个非常大的JSON对象分成几部分地发送到客户端(不是一次全部发送,浪费了很多内存)。

这里有一个非常好的库可以为您处理此问题:https://github.com/dominictarr/JSONStream