Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON循环显示为[object]_Javascript_Arrays_Json - Fatal编程技术网

Javascript JSON循环显示为[object]

Javascript JSON循环显示为[object],javascript,arrays,json,Javascript,Arrays,Json,目前,我正在编写一个从Police.UK数据库中提取数据的程序,下面是从API请求时如何解释数据。数据被传递到一个循环中,并存储如下所示的值。我认为问题在于var outcome=data[I][“outcome_status”]问题在于结果状态可以是null或包含两个字符串,即output\u status.date和output\u status.category,我如何区分和确定值是null还是包含更多信息 谢谢 function create_marker(lat, lng, cat,

目前,我正在编写一个从Police.UK数据库中提取数据的程序,下面是从API请求时如何解释数据。数据被传递到一个循环中,并存储如下所示的值。我认为问题在于
var outcome=data[I][“outcome_status”]问题在于结果状态可以是
null
或包含两个字符串,即
output\u status.date
output\u status.category
,我如何区分和确定值是null还是包含更多信息

谢谢

function create_marker(lat, lng, cat, time, id, street, outcome) {
completed_requests = 1;
document.getElementById("popular_crime").innerText = "";
document.getElementById("num_of_crimes").innerText = "";
var current_lat_lng = [];
current_lat_lng.push(lat, lng, cat, time, id, street, outcome);
chunksize = 7;
var chunks = [];
current_lat_lng.forEach((item) => {
    if (!chunks.length || chunks[chunks.length - 1].length == chunksize)
        chunks.push([]);
    chunks[chunks.length - 1].push(item);
});
for (var z = 0; z < chunks.length; z++) {
    var a = chunks[z];
    var icons = L.icon({
        iconSize: [32, 32],
        iconUrl: 'asset/images/' + a[2] + '.png'
    });
}
switch (a[2]) {
    case 'antisocialbehaviour':
        var popup2 = "<center><br><h2>Anti Social Behaviour</h2><img src=\"asset/images/antisocialbehaviour.png\"height=\"42\" width=\"42\"><h3>Crime Identity Number:</h3><p>" + id + "</p><h3>Month:</h3><p>" + time + "</p><h3>Street Name:</h3><p>" + street + "</p><h2><h3>Outcome:</h3><p>" + outcome + "</p><h2></center>";
        var marker = L.marker(new L.LatLng(a[0], a[1]), {
            icon: icons,
            time: a[3],
            id: a[4],
            street: a[5],
            outcome: a[6]
        });
        marker.addTo(group1).bindPopup(popup2);
        asbcount++
        break;
        break;
    default:
        break;
}

     function get_JSON(url, callback_func) {
       var xmlhttp = new XMLHttpRequest();
       xmlhttp.onreadystatechange = function() {
         var check1 = xmlhttp.readyState == 4 && this.status == 200;
         var check2 = check1 && typeof callback_func === "function";
         if (check2) {
           json_obj = JSON.parse(this.responseText);
           callback_func(json_obj);
         }

       }
       console.log("Getting stats for", url)
       xmlhttp.open("POST", url, true);
       xmlhttp.send();
     }

     function mode(c) {
       var popular_str = "";
       var popular_num = 0;

       for (item in c) {
         num = c[item]
         if (num > popular_num) {
           popular_str = item;
           popular_num = num;
         }
       }

       return popular_str;
     }

     function JSON_callback(data) {
       completed_requests++;
       var data_len = data.length;
       if (data[0] != undefined) {
         for (var i = 0; i < data_len; i++) {
           cat1 = data[i]["category"];
           cat = cat1.replace(/-/g, "");
           cat3 = cat1.replace(/-/g, " ");
           id = data[i]["persistent_id"];
           lat = data[i]["location"]["latitude"];
           lng = data[i]["location"]["longitude"];
           street = data[i]["location"]["street"]["name"];
           time = data[i]["month"];
           var outcome = data[i]["outcome_status"];
           if (cat3 in crimes) {
             crimes[cat3]++;
           } else {
             crimes[cat3] = 1;
           }
           drawChart();
           console.log(data)
           committed = true;
           create_marker(lat, lng, cat, time, id, street, outcome);
           num_of_crimes++;
         }
       }
       document.getElementById("num_of_crimes").innerText = num_of_crimes;
       if (completed_requests == 1) {
         console.log("Requests done");

         //console.log(crimes);
         if (committed) {
           document.getElementById("popular_crime").innerText = mode(crimes);
         } else {
           document.getElementById("popular_crime").innerText = "None";

         }
       }
     }

您可以使用
Object.assign
结果
设置为一些默认值,如果提供的值为
null

var数据=[{
“类别”:“反社会行为”,
“位置类型”:“力”,
“地点”:{
“纬度”:“53.746850”,
“街道”:{
“id”:1289421,
“名称”:“登肖大道上或附近”
},
“经度”:“-1.589005”
},
“上下文”:“,
“结果状态”:空,
“持久性id”:“a42e1e83ed8055156c1cae319a38b590957de163e8eaeb7884c2b7dd1491056d”,
“id”:55436628,
“位置\子类型”:“”,
“月份”:“2017-03”
},
{
“类别”:“入室盗窃”,
“位置类型”:“力”,
“地点”:{
“纬度”:“53.746074”,
“街道”:{
“id”:1289411,
“名称”:“赫尔街上或附近”
},
“经度”:“-1.596109”
},
“上下文”:“,
“成果状况”:{
“类别”:“无法起诉嫌疑人”,
“日期”:“2017-03”
},
“持久性id”:“906849D248A5B0B26857184A291CBD1E952DFBE62783AD59FDAD1C587386EC”,
“id”:55411246,
“位置\子类型”:“”,
“月份”:“2017-03”
}
];
对于(变量i=0;i<2;i++){
var output=Object.assign({
类别:“,
日期:“”
},数据[i][“结果状态]);
控制台日志(结果);

}
您可以使用
对象。当提供的值为
null
时,分配
结果
设置为一些默认值

var数据=[{
“类别”:“反社会行为”,
“位置类型”:“力”,
“地点”:{
“纬度”:“53.746850”,
“街道”:{
“id”:1289421,
“名称”:“登肖大道上或附近”
},
“经度”:“-1.589005”
},
“上下文”:“,
“结果状态”:空,
“持久性id”:“a42e1e83ed8055156c1cae319a38b590957de163e8eaeb7884c2b7dd1491056d”,
“id”:55436628,
“位置\子类型”:“”,
“月份”:“2017-03”
},
{
“类别”:“入室盗窃”,
“位置类型”:“力”,
“地点”:{
“纬度”:“53.746074”,
“街道”:{
“id”:1289411,
“名称”:“赫尔街上或附近”
},
“经度”:“-1.596109”
},
“上下文”:“,
“成果状况”:{
“类别”:“无法起诉嫌疑人”,
“日期”:“2017-03”
},
“持久性id”:“906849D248A5B0B26857184A291CBD1E952DFBE62783AD59FDAD1C587386EC”,
“id”:55411246,
“位置\子类型”:“”,
“月份”:“2017-03”
}
];
对于(变量i=0;i<2;i++){
var output=Object.assign({
类别:“,
日期:“”
},数据[i][“结果状态]);
控制台日志(结果);


}
您调用的函数“mode”是什么?它与本部分无关,但它统计数据中的犯罪发生率和犯罪总数。添加到original以避免混淆它似乎相关的原因是,如果它返回一个对象,并且您将元素的
innerText
设置为mode的返回值,而mode恰好是一个对象,那么它将隐式调用
.toString()
,这将导致
[object]
。我没有设置为文档元素。我试图在传单标记中设置它,将更新案例陈述,以便将结果添加到标记行。是我一个人,还是这个密码越来越荒谬。添加完不完整、不一致、明显错误(如mode())等后,请告知我们。您调用的函数“mode”是什么?它与本部分无关,但它统计数据中的犯罪发生率和犯罪总数。添加到original以避免混淆它似乎相关的原因是,如果它返回一个对象,并且您将元素的
innerText
设置为mode的返回值,而mode恰好是一个对象,那么它将隐式调用
.toString()
,这将导致
[object]
。我没有设置为文档元素。我试图在传单标记中设置它,将更新案例陈述,以便将结果添加到标记行。是我一个人,还是这个密码越来越荒谬。添加完不完整、不一致、明显错误(如在mode()中)等后,请告知我们。当我将结果传递给我的creat_marker函数时,使用切换函数时,它仍然显示[object object],如何显示对象日期和类别?我更新了第一篇帖子以显示switch语句谢谢然后将其传递给您的function@AidenMcGree-switch语句不完整。代码乱七八糟。当它为
null
时,您希望它返回什么?如果可能为null?此外,当将其拆分为此格式2017-04:无法起诉嫌疑犯时,是否有办法使我的switch语句在单独的行上而不是内联结果日期:结果类别:当我将结果传递给我的creat_marker函数时,当使用switch函数时,它仍然显示[object]如何显示对象日期和类别?我更新了第一篇帖子以显示switch语句谢谢然后将其传递给您的function@AidenMcGree-switch语句不完整。代码乱七八糟。当它为
null
时,您希望它返回什么?如果可能为null?当s
[
   {
      "category":"anti-social-behaviour",
      "location_type":"Force",
      "location":{
         "latitude":"53.746850",
         "street":{
            "id":1289421,
            "name":"On or near Denshaw Drive"
         },
         "longitude":"-1.589005"
      },
      "context":"",
      "outcome_status":null,
      "persistent_id":"a42e1e83ed8055156c1cae319a38b590957de163e8eaeb7884c2b7dd1491056d",
      "id":55436628,
      "location_subtype":"",
      "month":"2017-03"
   },
   {
      "category":"burglary",
      "location_type":"Force",
      "location":{
         "latitude":"53.746074",
         "street":{
            "id":1289411,
            "name":"On or near Hull Street"
         },
         "longitude":"-1.596109"
      },
      "context":"",
      "outcome_status":{
         "category":"Unable to prosecute suspect",
         "date":"2017-03"
      },
      "persistent_id":"906849d248a5b0b26857184a291cbd1e952dfbe62783ad59fdad1c58737386ec",
      "id":55411246,
      "location_subtype":"",
      "month":"2017-03"
   }
]