1

base64url (AZ、az、0-9、-、_ 文字を使用) を使用してエンコードされたすべての文字列 (値) を含む外部データソースから json を取得しています。これらの文字列をクライアント側でデコードして、正常に表示する方法はありますか? おそらく、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">これのように) IE 9 以前などの一部のブラウザーでデコードします。

JSON の質問に関しては、reviver関数を 2 番目の引数として 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 に答える