0

JSONを応答として返すWebアプリケーションがあり、その応答は次のようになります。

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

バックエンドのアーキテクチャは私の手に負えないことに注意してください。json(繰り返しキー)の作成方法を変更することはできません。

したがって、JavaScriptでハッシュテーブルを作成したいので、ハッシュテーブルのアイデアは次のようになります。

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

私の質問は、JavaScriptでそのような動作をどのように作成できるかということです。

ハッシュマップの作成方法は知っていますが、ハッシュテーブルはわかりません。

4

1 に答える 1

0

Well if this structure remains intact, you could probably hack together a function which does it. Something on the lines as below

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 に答える