![](/img/trans.png)
[英]JavaScript Regexp to remove escaped backslashes and quotation marks in JSON
[英]How to remove redundant quotation marks in dynamically created json object with javascript?
出現問題:我想創建一個音頻播放器,其播放列表類似於此網站: http : //www.davidorlowsky.com/player/demos/lark.htm
如果單擊鼠標右鍵並查看源代碼,則會看到播放列表具有以下形式:
[
{
title:"Gypsy Hora",
artist:"Trad.",
mp3:"http:///www.klezmorim-online.de/lark/gypsyhora.mp3"
},
{
title:"Sammy's Freilach",
artist:"Trad.",
mp3:"http:///www.klezmorim-online.de/lark/sammysfreilach.mp3"
},
...
]
我想做的是:通過目錄解析來動態創建這種播放列表。 這是我嘗試做到的方式:
$(document).ready(function () {
var sound_files = Array();
$.ajax({
url: "my_directory/",
success: function (data) {
$(data).find("td > a").each(function () {
var file = $(this).attr("href");
if (file.substr((file.lastIndexOf('.') + 1)) == "mp3") {
var mp3 = file;
var title= mp3.substr(0, mp3.lastIndexOf('.'));
//sound_files.push("{title: \""+title+"\", mp3: \"my_directory/" + mp3 + "\"}");
sound_files.push("{mp3: \"my_directory/" + mp3 + "\"}");
}
});
}
}).done(function () {
console.log(sound_files);
new jPlayerPlaylist({
jPlayer: "#jquery_jplayer_1",
cssSelectorAncestor: "#jp_container_1"
}, sound_files, {
swfPath: "jplayer",
supplied: "oga,mp3"
});
});
});
這種方式行不通,我認為是因為json對象中有多余的引號。 生成的對象如下所示:
["{mp3: "my_directory/my_file.mp3"}", ...]
但應如下所示:
[{mp3: "my_directory/my_file.mp3"}, ...]
我該怎么辦?
不要將對象作為字符串推送,而應將其作為對象推送。 更改發送零件的位置:
sound_files.push("{mp3: \"my_directory/" + mp3 + "\"}");
作為對象:
sound_files.push({mp3: "my_directory/" + mp3});
嘗試sound_files.push({mp3: "my_directory/" + mp3});
當前正在創建包含構造對象所需的JavaScript源代碼的字符串。
只需創建對象即可。
sound_files.push({mp3: "my_directory/" + mp3});
要獲得雙引號,請添加此+'“' ,一切都會起作用。但是對象方法比創建字符串要清晰得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.