0

我有一个 Web 应用程序,它将返回 JSON 作为响应,它的响应类似于以下内容:

{"album1" : "track1" , "album1" : "track2" , "album1" : "track3" , "album2" : "track1"}

请注意后端的架构超出了我的掌控,我无法更改它创建 json 的方式(重复密钥)

所以我想在javascript中创建一个哈希表我的哈希表的想法应该是这样的:

"album1" : ["track1" , "track2" , "track3"]

我的问题是如何在 javascript 中创建这样的行为?

我知道如何创建哈希图但不知道哈希表。

4

1 回答 1

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"]}
于 2012-05-12T11:43:59.463 回答