Jvector Map JS错误:未捕获TypeError:无法使用'in'运算符搜索'length'

时间:2019-03-25 09:27:03

标签: javascript php jquery json jvectormap

我正在使用php mysql的一些标签值获取国家/地区并将其解析为JSON格式, 我拥有的php文件包含以下代码:

$json_data=array(); 
foreach($result as $rec)  
{  
 $json_array['Country']=$rec['user_country'];  
 $json_array['CountryCode']=$rec['country_code']; 
 $json_array['persons']=$rec['usercountry']; 
 array_push($json_data,$json_array);  
}  
$data =  json_encode($json_data) ;

我可以得到的JSON FORMAT是:

 [
 {"Country":"Australia","CountryCode":"AU","persons":"5"}, 
 {"Country":"Spain","CountryCode":"ES","persons":"2"}, 
 {"Country":"India","CountryCode":"IN","persons":"8"}, 
 {"Country":"Mexico","CountryCode":"MX","persons":"4"},
 {"Country":"United States","CountryCode":"US","persons":"4"}
 ]

这是我用来将值放在Jvector MAP上的脚本

<script type="text/javascript">
 var dataC = '<?php echo $data  ; ?>' ; 
 var countryData = {};
 $.each(dataC, function() {
 countryData[this.CountryCode] = this.persons;
});

$(function() {
 $('#world-map').vectorMap({
dataType: "json",
 map: 'world_mill_en',
 series: {
    regions: [{
        values: countryData, //load the data
        scale: ['#C8EEFF', '#0071A4'],
        normalizeFunction: 'polynomial'}]
},
//-----------------------------------------------
// changed to onRegionLabelShow from onLabelShow
//-----------------------------------------------
onRegionLabelShow: function(e, el, code) {
    //search through dataC to find the selected country by it's code
    var country =$.grep(dataC, function(obj, index) {
        return obj.CountryCode == code;
    })[0]; //snag the first one
    //only if selected country was found in dataC
    if (country != undefined) { 
       el.html(el.html() + 
            "<br/><b>Code: </b>" +country.CountryCode + 
            "<br/><b>Name: </b>" + country.Country + 
            "<br/><b>persons: </b>" + country.persons);}}
});
});
</script>

但是我得到的是一个错误:

jquery.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 
    'length' in [{"Country":"Australia","CountryCode":"AU","persons":"5"}, 
    {"Country":"Spain","CountryCode":"ES","persons":"2"}, 
    {"Country":"India","CountryCode":"IN","persons":"8"}, 
    {"Country":"Mexico","CountryCode":"MX","persons":"4"},{"Country":"United 
    States","CountryCode":"US","persons":"4"}]

预先感谢

0 个答案:

没有答案