我有一个Web应用程序,它将返回JSON作为响应,其响应如下:
{"album1" : "track1" , "album1" : "track2" , "album1" : "track3" , "album2" : "track1"}
请注意后端的架构不在我手中,我无法改变它创建json的方式(重复键)
所以我想在javascript中创建一个哈希表,我的哈希表的概念应该是这样的:
"album1" : ["track1" , "track2" , "track3"]
我的问题是如何在javascript中创建此类行为?
我知道如何创建hashmap但不知道哈希表。
答案 0 :(得分:0)
如果这个结构保持不变,那么你可能会破解一个能够完成它的功能。下面的内容如下
var response = '{"album1" : "track1" , "album1" : "track2" , "album1" : "track3" , "album2" : "track1"}'
.replace(/}?{?/g, '');
var sanitisedData = {};
var transform = response.split(',').map(function(item){
return JSON.parse('{' + item + '}');
}).forEach(function(item){
var key = Object.keys(item)[0];
if(!sanitisedData [key]) sanitisedData [key] = [];
sanitisedData [key].push(item[key]);
});
//output - {"album1":["track1","track2","track3"],"album2":["track1"]}