【发布时间】:2018-04-18 22:58:30
【问题描述】:
我试图将此播放列表文件(如下面的文件)放在albums.json 文件中,但遇到了问题。我也希望这个 json 对象是 uniq 。如果有人能指出我正确的方向,我会非常感谢你。
m3u 文件播放列表.m3u
#EXTM3U
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-01 Verdi_ La Traviata.mp3
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-02 Gioacchino Rossini_ El Barbero de Sevilla.mp3
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-03 Giacomo Puccini_ La Bohe%CC%80me_ Che Gelida manina.mp3
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-04 Giacomo Puccini_ La Bohe%CC%80me_ Si%CC%80. Mi chiamano Mimi%CC%80.mp3
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-05 Mascagni_ L'amico Fritz.mp3
file:///Users/user/Music/Various Artists/El Mejor Album de Opera del Mundo/1-06 Verdi_ Nabucco.mp3
...
var allLines = fs.readFileSync('playlist.m3u').toString().split('\n');
fs.writeFileSync('albums.json', '', function(){console.log('file is empty');});
allLines.forEach(function (line) {
line = line.replace('file:///Users/user/Music/', '');
line = line.replace('#EXTM3U','');
line = urlencode.decode(line); // decoding some chars
let arr = [];
let savedData = [];
let linex = [];
arr = line.split("/");
linex["artist"] = arr[0];
linex["album"] = arr[1];
linex["size"] = "600x600";
console.log(linex); // till here it print what i want to print
savedData.push(linex); // this is not inserting the array
savedData = _.uniq(savedData); // this is either notworking, because fails before
fs.writeFile("albums.json",JSON.stringify(savedData),function(err){
if(err) console.error(err);
else console.log('Data saved to albums.json file');
});
});
这种情况下的结果文件是:
[[]]
如果有很多不同的结果,但不是带有对象的正确 json 文件。我做错了什么?
谢谢。
【问题讨论】:
标签: arrays json node.js underscore.js fs