我从外部数据源获取一个 json,其中所有字符串(值)都使用 base64url 编码(使用 AZ、az、0-9、-、_ 字符)。有没有办法在客户端解码这些字符串,以便它们显示正常?可能我需要在解析 json 的数据表中挂钩函数,但是如何?
这是示例 json:
"aaData": [
[
"dGVzdDEy",
"Zm9v"
],
...
]
我从外部数据源获取一个 json,其中所有字符串(值)都使用 base64url 编码(使用 AZ、az、0-9、-、_ 字符)。有没有办法在客户端解码这些字符串,以便它们显示正常?可能我需要在解析 json 的数据表中挂钩函数,但是如何?
这是示例 json:
"aaData": [
[
"dGVzdDEy",
"Zm9v"
],
...
]
大多数主流浏览器都支持几乎标准化的 base64 编码和解码功能,atob
(decode) 和btoa
(encode):
atob("dGVzdDEy");
// -> test12
但是,正如我所说,这些函数是非标准的,您必须实现自己的函数(或在 ol'sextuple-u 上实现一个函数―<a href="https://gist.github.com/sevir/3946819 " rel="nofollow">like this) 在某些浏览器中解码,例如 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"
]
]
} */