base64是不正确的.如何转换json到正确的base64?

o8x7eapl  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(356)

我想使用Javascript/Nodejs将此json转换为base64。但它没有给我正确的输出?
我的JSON对象:

const templates = [
  {
    "name": "next-hover-base",
  },
  {
    "name": "next-hover-base",
  },
];

const inBase64Format = Buffer.from(JSON.stringify(templates)).toString("base64");
console.log(inBase64Format);

其输出为:

W3sibmFtZSI6Im5leHQtaG92ZXItYmFzZSJ9LHsibmFtZSI6Im5leHQtaG92ZXItYmFzZSJ9XQ==

但是当我把上面的json对象从https://onlinejsontools.com/convert-json-to-base64在线转换成base64时
其输出为:

WwogIHsKICAgICJuYW1lIjogIm5leHQtaG92ZXItYmFzZSIsCiAgfSwKICB7CiAgICAibmFtZSI6ICJuZXh0LWhvdmVyLWJhc2UiLAogIH0sCl0=

我想把上述JSON转换为base64,并希望在Javascript/Nodejs的第二个输出。
我怎样才能得到有空格和换行符的第二个输出?

jljoyd4f

jljoyd4f1#

第二个包括一个修饰版本。要模拟它,请将所需的缩进(在您的示例中为2)传递给JSON.stringify方法***space***参数:

const templates = [
  {
    "name": "next-hover-base",
  },
  {
    "name": "next-hover-base",
  },
];

const inBase64Format  = btoa(JSON.stringify(templates));
const inBase64Format2 = btoa(JSON.stringify(templates, null, 2)); // 2 spaces indentation

console.log(inBase64Format);
// W3sibmFtZSI6Im5leHQtaG92ZXItYmFzZSJ9LHsibmFtZSI6Im5leHQtaG92ZXItYmFzZSJ9XQ==
console.log(inBase64Format2);
// WwogIHsKICAgICJuYW1lIjogIm5leHQtaG92ZXItYmFzZSIsCiAgfSwKICB7CiAgICAibmFtZSI6ICJuZXh0LWhvdmVyLWJhc2UiLAogIH0sCl0=

相关问题