JQuery:使用值作为Json的数组构建一个字典

时间:2014-01-07 16:14:54

标签: javascript jquery json

一些json数据:

[
{
"country": "US",
"id": 1,
"name": "Brad",
},
{
"country": "US",
"id": 2,
"name": "Mark",
},
{
"country": "CAN",
"id": 3,
"name": "Steve",
},
]

我想做的是创建一个字典,{country:[name id]}:

$.getJSON('result.json', function(result) {
    var dict = {}
    $.each(result, function(key, value){
        //build dict
    });
});

//{ 'US': ['Brad' 1, 'Mark' 2], 'CAN': ['Steve' 3]

使用jquery进行此操作的最佳方法是什么?因某些原因,词典经常使我感到困惑。

2 个答案:

答案 0 :(得分:1)

var dict = {}
$.each(result, function(i, item){
  if(!dict[item.country]) dict[item.country] = [];
  dict[item.country].push([item.name, item.id]);
});

您可以在此jsFiddle demo上看到这一点。

对于您提供的数据,这是它给出的结果:

{"US":[["Brad",1],["Mark",2]],"CAN":[["Steve",3]]}

答案 1 :(得分:1)

$.getJSON('result.json', function(result) {
  var dict = {}
  $.each(result, function(key, value){
      //build dict
      var exists = dict[value.country];
      if(!exists){
        dict[value.country] = [];
      }
       exists.push([value.name, value.id]);
       //if it was my code i would do this ... 
       //exists.push(value);
  });  
 });

就个人而言,我不喜欢将它们转换为数组,我会将它们保留为值,这使它们更容易操作。