gpt4 book ai didi

javascript - Javascript 中 JSON 的数据 URI?

转载 作者:行者123 更新时间:2023-12-05 08:19:53 26 4
gpt4 key购买 nike

我遇到一个问题,我的服务器应用程序获取 JSON 的 DataURI,我想再次将其解析为 JSON。我怎么能这样做?我尝试了不同的东西,但似乎没有任何效果。我尝试简单地解析它或 encodeURI(data); 但我仍然无法获得原始 JSON。

这是数据 URI:data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=

我也试过这样编码:

var data = 'data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=';
Buffer.from(data.toString('utf8'), 'base64').toString('ascii')

但如果我在控制台上登录,我会得到这个:u+Zje F- J'm+k0P"&VGEwGR#"&Fvr"@P"&VGEvFF#"%vwrBR"FVw7BFW&R$r P'

最佳答案

数据 URI 是使用 Base64 编码的 JSON。这有两个步骤:

  1. 解码 Base64(例如,使用 atob 函数),以及

  2. 解析生成的 JSON

例如(在浏览器上):

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";

// 29 = length of "data:application/json;base64,"
const json = atob(dataURI.substring(29));
const result = JSON.parse(json);
console.log(result);

您在问题中使用 Buffer 向我表明您可能正在使用 Node.js。如果是这样,您将用 Buffer.from(data, 'base64').toString() 替换对 atob 的调用:

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";

// 29 = length of "data:application/json;base64,"
const json = Buffer.from(dataURI.substring(29), "base64").toString();
const result = JSON.parse(json);
console.log(result);

关于javascript - Javascript 中 JSON 的数据 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65075062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com