Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 使用OpenLayers和Protocol.HTTP()解析数组时出错_Javascript_Json_Node.js_Openlayers - Fatal编程技术网

Javascript 使用OpenLayers和Protocol.HTTP()解析数组时出错

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

我正试图通过Protocol.HTTP将JSON文件发送到Node.js应用程序。文件已正确发送,但我无法访问数组。以下是相关代码:

客户端

(...)
    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并尝试直接访问生成的元素,然后在确定映射函数正确完成后对其进行排序。