Javascript JSON循环显示为[object]
目前,我正在编写一个从Police.UK数据库中提取数据的程序,下面是从API请求时如何解释数据。数据被传递到一个循环中,并存储如下所示的值。我认为问题在于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,
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"
}
]