我是json的新手,我真的很挣扎于数据格式
它需要格式为: music.genre.album ,但 genre.album 也可以。·
有人可以帮助以下结构吗?我将使用getJSON来迭代它。
{"music": [{
"Genre_Blues": [{
"Album": "224",
"Path": "images/library/",
"FileName": "AlbumCover224.png"
},
{
"Album": "277",
"Path": "images/library/",
"FileName": "AlbumCover277.png"
},
{
"Album": "885",
"Path": "images/library/",
"FileName": "AlbumCover885.png"
}],
"Genre_Jazz": [{
"Album": "442",
"Path": "images/library/",
"FileName": "AlbumCover442.png"
},
{
"Album": "467",
"Path": "images/library/",
"FileName": "AlbumCover467.png"
},
{
"Album": "724",
"Path": "images/library/",
"FileName": "AlbumCover724.png"
}],
"Genre_Rock": [{
"Album": "022",
"Path": "images/library/",
"FileName": "AlbumCover022.png"
},
{
"Album": "609",
"Path": "images/library/",
"FileName": "AlbumCover609.png"
},
{
"Album": "067",
"Path": "images/library/",
"FileName": "AlbumCover067.png"
}]
}]
}
答案 0 :(得分:1)
JSON就像JavaScript(因为它)。
如果你想在类型中存储多个东西(类型是......),那么它需要是一个数组。
但请考虑常规JS对象和数组。
music = {};
music.genre = {};
music.genre.blues = [];
music.genre.blues[0] = {};
可以写成:
json = {
music : {
genre : {
blues : [],
rock : [],
soul : []
}
}
}
然后你得到了:
json.music.genre.blues[0].album_title; // "Some Kind of Blue"
json.music.genre.blues[0].album_artist; // "Miles Davis"
你可以设置一个循环来完成你的蓝调,或者你的摇滚或其他......
如果你不想循环它们,那么你必须找到一些其他方法来索引它们,因为你不能拥有一个具有8个“专辑”属性的对象。 也许你可以在那时通过标题列出它们......但是那并不是那么有用。你只是在这一点上摆脱了数组。
你也可以设置它以便流派是一个数组(现在就是你所拥有的)。
所以你可能有:
music = {
genre : [
{
name : "Blues",
albums : [
{
title : "Some Kind of Blue",
artist : "Miles Davis"
}
]
}, {
name : "Soul",
albums : [
{
title : "Innervisions",
artist : "Stevie Wonder"
}, {
title : "Talking Book",
artist : "Stevie Wonder"
}
]
}
]
};
然后你得到了:
music.genre[0].name; // "Blues"
music.genre[1].albums[0].artist; // "Stevie Wonder"
这样做的好处是:
music.genre.forEach(function (genre) { console.log(genre.name); }); // "Blues", "Soul"
music.genre.forEach(function (genre) {
console.log("---" + genre.name + "---");
genre.albums.forEach(function (album) {
console.log("Title: " + album.title);
console.log("Artist: " + album.artist);
});
});
这一切都取决于你想用它做什么。 只要你知道那是什么,你就可以自由地做任何你想做的事。
答案 1 :(得分:0)
那里几乎 。您需要做的就是取出[
和]