Javascript 从js文件而不是xml文件创建关联数组

Javascript 从js文件而不是xml文件创建关联数组,javascript,xml,Javascript,Xml,我一直在使用一个函数getxml,该函数创建了一个关联数组,其中包含在xml文件中找到的所有相册/曲目: function XMLload() { jQuery.post(url, function(data) { getxml(data); }, 'xml'); } function dataFromTag(node, t) { var d = node.getElementsByTagName(t); if (d.length == 0) r

我一直在使用一个函数
getxml
,该函数创建了一个关联数组,其中包含在xml文件中找到的所有相册/曲目:

function XMLload() {
    jQuery.post(url, function(data) {
        getxml(data);
    }, 'xml');
}

function dataFromTag(node, t) {
    var d = node.getElementsByTagName(t);
    if (d.length == 0) return ('');
    return (d[0].firstChild.nodeValue);
}

jQuery(document).ready(XMLload);

var url = 'music.xml';

function getxml(xmldoc) {
xmlalbums = xmldoc.getElementsByTagName('album');

for (var i = 0; i < xmlalbums.length; i++) {
    title = dataFromTag(xmlalbums[i], 'title');
    artist = dataFromTag(xmlalbums[i], 'artist');
    artwork = dataFromTag(xmlalbums[i], 'artwork');

    var xmltracks = xmlalbums[i].getElementsByTagName('track');

    var tracks = []

    for (var j = 0; j < xmltracks.length; j++) {
        song = dataFromTag(xmltracks[j], 'title');
        mp3 = dataFromTag(xmltracks[j], 'mp3');
        tracks[song] = mp3;
    }
    albumlist[title] = [artist, artwork, tracks];
}

// call pageLoad();
pageLoad();
}

您的
var相册
有几个问题(额外的逗号,请检查以验证)。但除此之外,它还是一个有效的JSON对象

var albums=
[
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""}
        ]
    },
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
        ]
    }
];

for (var i = 0; i < albums.length; i++) {
    title = albums[i].title;
    artist = albums[i].artist;
    artwork = albums[i].artwork;

    var tracks = []

    for (var j = 0; j < albums[i].tracks.length; j++) {
        song = albums[i].tracks[j].title;
        mp3 = albums[i].tracks[j].mp3;
        tracks[song] = mp3;
    }
    albumlist[title] = [artist, artwork, tracks];
}
var相册=
[
{“标题”:“,
“艺术家”:“,
“艺术品”:“,
“轨道”:[
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}
]
},
{“标题”:“,
“艺术家”:“,
“艺术品”:“,
“轨道”:[
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
{“标题”:“,”mp3:“.mp3”,
“歌词”:“}”,
]
}
];
对于(var i=0;i
这不是JSON的作用吗?我如何用JSON重新解释代码?
var albums=
[
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
        ]
    },
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
        ]
    },

]
var albums=
[
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""}
        ]
    },
    {   "title":"",
        "artist":"",
        "artwork":"",
        "tracks":[
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
            {"title":"","mp3":".mp3",
            "lyrics":""},
        ]
    }
];

for (var i = 0; i < albums.length; i++) {
    title = albums[i].title;
    artist = albums[i].artist;
    artwork = albums[i].artwork;

    var tracks = []

    for (var j = 0; j < albums[i].tracks.length; j++) {
        song = albums[i].tracks[j].title;
        mp3 = albums[i].tracks[j].mp3;
        tracks[song] = mp3;
    }
    albumlist[title] = [artist, artwork, tracks];
}