我得到一個外部數據源的json與使用base64url(使用AZ,AZ,0-9, - ,_字符)編碼的所有字符串(值)。有沒有辦法解碼客戶端的這些字符串,以便他們會顯示正常?可能我需要在解析json的數據表中掛鉤函數,但是怎麼做?datatables jquery,base64字符串
這裏的示例JSON:
"aaData": [
[
"dGVzdDEy",
"Zm9v"
],
...
]
我得到一個外部數據源的json與使用base64url(使用AZ,AZ,0-9, - ,_字符)編碼的所有字符串(值)。有沒有辦法解碼客戶端的這些字符串,以便他們會顯示正常?可能我需要在解析json的數據表中掛鉤函數,但是怎麼做?datatables jquery,base64字符串
這裏的示例JSON:
"aaData": [
[
"dGVzdDEy",
"Zm9v"
],
...
]
大多數主要瀏覽器支持幾乎標準化base64編碼和解碼功能,atob
(解碼)和btoa
(編碼):
atob("dGVzdDEy");
// -> test12
然而,如我說,這些功能是非標準的,你將不得不實現你自己的功能(或在ol'sextuple-u-like this one)上的某個功能在某些瀏覽器(如IE 9和更低版本)中解碼。
對於JSON的問題,你可以通過一個齊磊函數作爲第二個參數JSON.parse,這會爲每個字段執行:
JSON.parse('{"aaData":[["dGVzdDEy","Zm9v"]]}', function (k, v) {
if (typeof(v) == "string")
return atob(v);
else
return v;
});
/* -> {
"aaData": [
[
"test12",
"foo"
]
]
} */
謝謝,我該如何強制數據表以這種方式解析json?我剛剛發現我可以使用fnRowCallback事件(http://datatables.net/usage/callbacks)或者fnServerData(不知道如何)。 – 2013-03-15 09:59:29
@MikeOwen:我不確定,我對這個jQuery插件沒有任何經驗。 – 2013-03-15 12:02:43
你有一個客戶端功能,可以解碼這些字符串? – 2013-03-14 23:23:37
是的,我有一個可以解碼這些字符串的js函數。 – 2013-03-15 10:01:02