繁体   English   中英

如何使用JavaScript删除动态创建的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM