2013-02-20 58 views
1

JSON文件如何计算不同的值以JSON

{"people":[{"Name":"Ray Parker","Email":"[email protected]","State":"Wyoming","Country":"Tuvalu","Martial Status":"Divorced","Department Name":"Tech Support","Company Name":"Borland","Title":"Dr.","Gender":"Male"}, 
{"Name":"Davis Hooper","Email":"[email protected]","State":"Nunavut","Country":"Bangladesh","Martial Status":"Divorced","Department Name":"Public Relations","Company Name":"Cakewalk","Title":"Mr.","Gender":"Female"}, ...... and so on 

我喜欢做一个JSON对象从这个与国家的不同的价值观和人在该国的计数。

我试过代码

 $(document).ready(function() { 

    var data = $.ajax({ 
     url: "Data_prop.json", 
     dataType: "json", 
     async: false 
    }).responseText; 

    var unique = {}; 
    var param = "Country" 
    $.each(data.people, function() { 
     if (!unique[this[param]]) 
      unique[this[param]] = []; 
     unique[this[param]].push(this); 
    }); 

    for(var d in unique) { 
     alert(d); 
    } 

     }); 

我在控制台得到了错误

TypeError: a is undefined 
https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
Line 2 

哪位有一个想法如何做到这一点?

+0

我不认为你可以'推()'到对象的值。它的用途是在数组上使用。 – Johan 2013-02-20 09:27:22

+0

有错误在你的jQuery库包括由你。请将图书馆更换为其他图书馆。 – 2013-02-20 09:27:38

+0

@GauravVashishtha我使用CDN Okky 2013-02-20 09:32:35

回答

1

尝试

function(data) 
{ 
    var variables = {}; 
    var param = "Country" 
    $.each(data.people, function() 
    { 
     if (!variables[this[param]]) 
      variables[this[param]] = [];  
     variables[this[param]].push(this); 
    }); 

    for(var d in variables) { 
     // add d to array here 
     // or do something with d 
     // variables[d] is the array of people 
    } 
} 
+0

感谢名单,现在它的工作:) – Okky 2013-02-20 09:40:57