我正在寻找一种方法,通过使用 ttwMusicPlayer 的 jPlayer 的 jQuery base64 解码器来解码对象数组的一部分。
数组:
var myPlaylist = [
{
mp3: 'aHR0cDovL2xvY2FsaG9zdC90aGVtZWxpdC9yb2NrbnJvbGxhL2ZpbGVzLzIwMTEvMTAvMDEtQnJpZGdlLUJ1cm5pbmcubXAz',
title: 'Bridge Burning',
artist: 'Rock N' Rolla',
cover: 'http://localhost/themelit/rocknrolla/files/2011/10/folder-300x300.jpg',
},{
mp3: 'aHR0cDovL2xvY2FsaG9zdC90aGVtZWxpdC9yb2NrbnJvbGxhL2ZpbGVzLzIwMTEvMTAvMDItUm9wZS5tcDM=',
title: 'Rope',
artist: 'Rock N' Rolla',
cover: 'http://localhost/themelit/rocknrolla/files/2011/10/folder-300x300.jpg',
},
];
玩家:
$j('#audio-player').ttwMusicPlayer(myPlaylist, {
autoPlay: false,
description: albumdesc,
jPlayer: {
swfPath: swfpath,
solution: 'html, flash',
supplied: 'mp3',
}
});
考虑创建一个函数来解析 myPlaylist,例如:
function maybe_decode(theObject) {
$j.each(theObject, function(value, key){
//console.log( $j.base64Decode(key.mp3) );
if( key.mp3 )
return $j.base64Decode( key.mp3 );
else
return key;
});
}
不完全工作,需要保留数组但解码 mp3 键值。
想法?
更新:
有点让它在 Maybe_decode() 中使用它
var Values = [];
$j.each(theObject, function(idx, obj) {
$j.each(obj, function(key, value) {
if( key == 'mp3' )
value = $j.base64Decode( value );
Values.push(key + ": " + value);
//console.log(key + ": " + value);
});
});
console.log(Values);
return Values;
唯一的问题是它将多个索引的数组(在本例中为 2)转储到一个数组中。尝试将其推回正确的数组格式...
最佳答案
如果我正确地阅读了您的代码...完成后,您的 Values
数组最终将保存字符串。您可能应该做的事情是这样的:
var Values = [];
$j.each(theObject, function(idx, obj) {
var newVals = {};
$j.each(obj, function(key, value) {
if( key == 'mp3' )
value = $j.base64Decode( value );
newVals[key] = value;
});
Values.push(newVals);
});
console.log(Values);
return Values;
这将使用您的初始结构创建一个对象,并用必要的信息填充它。然后它将对象插入 Values
数组,该数组最终的格式应与原始数组相同......
关于jquery - base64_decode jQuery 对象数组部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972197/