2013-03-14 69 views
1

我得到一個外部數據源的json與使用base64url(使用AZ,AZ,0-9, - ,_字符)編碼的所有字符串(值)。有沒有辦法解碼客戶端的這些字符串,以便他們會顯示正常?可能我需要在解析json的數據表中掛鉤函數,但是怎麼做?datatables jquery,base64字符串

這裏的示例JSON:

"aaData": [ 
[ 
    "dGVzdDEy", 
    "Zm9v" 
], 
... 
] 
+0

你有一個客戶端功能,可以解碼這些字符串? – 2013-03-14 23:23:37

+0

是的,我有一個可以解碼這些字符串的js函數。 – 2013-03-15 10:01:02

回答

0

大多數主要瀏覽器支持幾乎標準化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" 
     ] 
    ] 
} */ 
+0

謝謝,我該如何強制數據表以這種方式解析json?我剛剛發現我可以使用fnRowCallback事件(http://datatables.net/usage/callbacks)或者fnServerData(不知道如何)。 – 2013-03-15 09:59:29

+0

@MikeOwen:我不確定,我對這個jQuery插件沒有任何經驗。 – 2013-03-15 12:02:43