在Node.js中,如何处理base64编码的JSON字符串?

15

如何在Node.js中创建一个base64 JSON编码字符串?

我尝试了这个,但它没有起作用。

var buff = new Buffer({"hello":"world"}).toString("base64");

就是这个吗?

var buff = new Buffer(JSON.stringify({"hello":"world"})).toString("base64");

5
看起来你已经在这里提出并回答了自己的问题... - sgress454
2
Buffer 可以接受整数、数组或字符串,但不接受对象。如果您想将对象转换为 JSON,则必须显式地执行此操作,就像您在第二个示例中所做的那样。http://nodejs.org/api/buffer.html - Felix Kling
3个回答

21
为了澄清@ladenedge评论的意思,补充完整如下:
var buff = Buffer.from(JSON.stringify({"hello":"world"})).toString("base64")

20
var buff = new Buffer(JSON.stringify({"hello":"world"})).toString("base64");

11
构造函数已被弃用。在Node v6及更高版本中,请使用Buffer.from() - ladenedge
这很好,但是为什么btoa({"hello":“world”})的结果完全不同,我本来希望它们是相同的。 - Mercury

0

您可以通过提供一些间距来美化上面的代码,这样当有人将其解码回JSON字符串时,它会看起来很好。

var buff = Buffer.from(JSON.stringify({"hello":"world"},undefined,n)).toString("base64")

n = 1 到 10(间隔)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接