2013-03-14 6 views
1

Я получаю json из внешнего источника данных со всеми строками (значениями), закодированными с использованием base64url (с использованием символов A-Z, a-z, 0-9, -, _). Есть ли способ декодировать эти строки на стороне клиента, чтобы они отображались в порядке? Возможно, мне нужно подключить функцию в datatables, которая анализирует json, но как?datatables jquery, base64 строки

Вот пример JSON:

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

У вас есть боковая функция клиента, которая может декодировать эти строки? –

+0

Да, у меня есть функция js, которая может декодировать эти строки. –

ответ

0

Большинство основных браузеров поддерживают почти стандартизованных кодирования и декодирования base64 функции, atob (декодирование) и btoa (закодировать):

atob("dGVzdDEy"); 
// -> test12 

Однако, как я сказал, что эти функции нестандартны, и вам придется реализовать свою собственную функцию (или одну на ol 'sextuple-u- like this one) для декодирования в некоторых браузерах, таких как 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" 
     ] 
    ] 
} */ 
+0

Спасибо, как я могу заставить datatables анализировать json таким образом? Я только что узнал, что, вероятно, могу использовать событие fnRowCallback (http://datatables.net/usage/callbacks) или, возможно, fnServerData (не знаю, как это сделать). –

+0

@MikeOwen: Я не уверен, у меня нет опыта с этим плагином jQuery. –

Смежные вопросы