1

我从外部数据源获取一个 json,其中所有字符串(值)都使用 base64url 编码(使用 AZ、az、0-9、-、_ 字符)。有没有办法在客户端解码这些字符串,以便它们显示正常?可能我需要在解析 json 的数据表中挂钩函数,但是如何?

这是示例 json:

"aaData": [
[
  "dGVzdDEy",
  "Zm9v"
],
...
]
4

1 回答 1

0

大多数主流浏览器都支持几乎标准化的 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"
        ]
    ]
} */
于 2013-03-14T23:27:54.203 回答