Javascript 使用OpenLayers和Protocol.HTTP()解析数组时出错
我正试图通过Protocol.HTTP将JSON文件发送到Node.js应用程序。文件已正确发送,但我无法访问数组。以下是相关代码: 客户端Javascript 使用OpenLayers和Protocol.HTTP()解析数组时出错,javascript,json,node.js,openlayers,Javascript,Json,Node.js,Openlayers,我正试图通过Protocol.HTTP将JSON文件发送到Node.js应用程序。文件已正确发送,但我无法访问数组。以下是相关代码: 客户端 (...) var vectorProtocol = new OpenLayers.Protocol.HTTP({ url: '/getcoords', format: vectorFormat, readWithPOST: tr
(...)
var vectorProtocol = new OpenLayers.Protocol.HTTP({
url: '/getcoords',
format: vectorFormat,
readWithPOST: true,
params: {
"code_company": "8501",
"data_company": [
{
"origin": "2013P00109",
"type": "LJ",
"naf": "5610A",
},
{
"origin": "2013P00110",
"type": "FJ",
"naf": "5481"
}
]
}
});
(...)
服务器端,我尝试仅使用我的阵列数据公司的原始字段构建阵列:
function getCoords(params, callback) {
var arrOrigin = params.data_company.map(function(d) {
return d.origin;
});
(...)
}
我得到了这个错误:
TypeError:对象[Object]没有方法映射
我的data_company似乎不被认为是数组,而是对象。我以前尝试过JSON.parseparams,但我遇到另一个错误:
SyntaxError:意外的令牌o
不管怎样,我被卡住了。你有什么线索可以帮我解决这个问题吗
感谢值得一提的是,您的JSON是无效的,因为naf:5610A后面有一个额外的逗号,尽管我怀疑这是您的问题。JSON是一个对象,而不是数组,因此JSON.parse是正确的,尽管一旦解析,您将拥有一个数据数组。Nodejs没有map函数。我不确定哪一个是你的问题,但我不认为这是OpenLayers的问题。@John Barça感谢你的回答。我删除了多余的逗号,但仍然存在解析错误。Node.js引擎实现了Arraymap,我以前多次使用过它。我还认为这不是OpenLayers的问题。建议您添加一个nodejs标记?建议您使用JSON.parse并尝试直接访问生成的元素,然后在确定映射函数正确完成后对其进行排序。