如何将多行字符串打印成blob?

时间:2017-08-30 05:25:07

标签: javascript dictionary blob

我有一个字典,我想打印到多行的txt文件。

为实现这一目标,我是:
1)通过JSON.stringify(dict)将dict转换为字符串
2)将字符串输入Blob并保存

我遇到的麻烦是输出是一个非常丑陋的单行字典结果,如下所示:

{"key1":"value1","key2":"value2","key3":"value3",etc}

但我想这样:

key1:value1  
key2:value2
key3:value3  
etc.  

我怎样才能做到这一点?

result = JSON.stringify(dict);

// Create blob instance and input the string
var blob1 = new Blob([result], { type: "text/plain" });
url = window.URL.createObjectURL(blob1);

// Create link to download the blob as txt file
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = url;
a.setAttribute("download","My Open Tabs");
a.click();
window.URL.revokeObjectURL(url);

1 个答案:

答案 0 :(得分:1)

要获得与预期相似的效果,可以向JSON.stringify添加参数。

JSON.stringify({ key1: 'value1', key2: 'value2' }, null, '\n'); // Unix
JSON.stringify({ key1: 'value1', key2: 'value2' }, null, '\r\n'); // Windows

感谢@Fefux提到Windows和Unix之间的区别!

第三个参数接受所需的分隔符。