我从外部数据源获取一个json,其中所有字符串(值)都使用base64url编码(使用A-Z,a-z,0-9, - ,_字符)。有没有办法在客户端解码这些字符串,以便它们显示正常?可能我需要在解析json的数据表中挂钩函数,但是如何?
这是json的例子:
"aaData": [
[
"dGVzdDEy",
"Zm9v"
],
...
]
答案 0 :(得分:0)
大多数主流浏览器都支持几乎标准化的base64编码和解码功能,atob
(解码)和btoa
(编码):
atob("dGVzdDEy");
// -> test12
然而,正如我所说的,这些函数是非标准的,你必须实现自己的函数(或者在'''上提供解码)在某些浏览器中进行解码,例如IE 9岁及以下。
对于JSON问题,您可以将 reviver 函数作为JSON.parse的第二个参数传递,该函数将针对每个字段执行:
JSON.parse('{"aaData":[["dGVzdDEy","Zm9v"]]}', function (k, v) {
if (typeof(v) == "string")
return atob(v);
else
return v;
});
/* -> {
"aaData": [
[
"test12",
"foo"
]
]
} */