Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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/1/ssh/2.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响应。。?_Javascript_Jquery_Ajax_Html_Openlayers 3 - Fatal编程技术网

Javascript 如何动态地给出json响应。。?

Javascript 如何动态地给出json响应。。?,javascript,jquery,ajax,html,openlayers-3,Javascript,Jquery,Ajax,Html,Openlayers 3,下面是json响应 [{"lat": "36.15900011", "lon": "-115.17205183"}, {"lat": "36.15899561", "lon": "-115.17276155"}] 以下代码给出了此错误: TypeError: item is undefined ...: new ol.geom.Point(ol.proj.transform([item.lon , item.lat], 'EPSG:4326', 'EPSG:... 在 $.ajax({ ur

下面是json响应

[{"lat": "36.15900011", "lon": "-115.17205183"}, {"lat": "36.15899561", "lon": "-115.17276155"}]
以下代码给出了此错误:

TypeError: item is undefined
...: new ol.geom.Point(ol.proj.transform([item.lon , item.lat], 'EPSG:4326', 'EPSG:...

$.ajax({
url:'parser',success:函数(响应){
$(文档).ready(函数(){
var jsonlen=response.length;

对于(var i=0;i首先,从处理程序中展开代码,这里没有任何意义。我在代码中对其进行了修改

第二,即使长度为空,for循环也会运行。这就是为什么会出现未定义的情况。
您需要使用小于、不小于或等于。 因为,如果长度为零,并且
i
在零处启动,则条件将为true,并且将调用响应[0],即使响应是空数组。返回
undefined

第三(我帮不了你),你必须检查回复以确保数据是存在的

  $.ajax({
     url: 'parser',
     success: function (response) {
         var jsonlen = response.length - 1;         
         for (var i = 0; i < jsonlen; i++) {
             var item = response[i];
             var iconFeature = new ol.Feature({
                 geometry: new ol.geom.Point(ol.proj.transform([item.lon, item.lat], 'EPSG:4326', 'EPSG:3857')),
                 name: 'Null Island',
                 rainfall: 500
             });
             var vectorSource = new ol.source.Vector({
                 // empty vector
             })
             vectorSource.addFeature(iconFeature);
         }
     }
 });
$.ajax({
url:'解析器',
成功:功能(响应){
var jsonlen=response.length-1;
对于(var i=0;i
这个问题让我有点困惑。你是不是想弄明白为什么会出现错误?还有,为什么要在成功函数中添加一个文档就绪的处理程序?为什么不直接运行代码?@Smeegs老实说。我只是对javascript一无所知。我只是从另一个SO问题复制了这段代码。我想要的是“我有足够的资源”ponse包含lat和lon,我不知道如何将lat和lon赋予标记“…也就是itOkay,我将尝试帮助您解决问题。我认为您还必须调用
JSON.parse
?,或者将数据类型设置为JSON@Smeegs我的firebug现在没有出现任何错误,但是标记没有显示。@ZenMaster您是否尝试添加breakpoint来分析发生了什么?好的。明白了。我还需要动态地给出
vectorsource
。我应该给出like
vectorsource.addFeature(iconFeature++);?
我还需要图标特性动态iconFeature 1,iconFeature 2..像那样..你能帮我吗?
  $.ajax({
     url: 'parser',
     success: function (response) {
         var jsonlen = response.length - 1;         
         for (var i = 0; i < jsonlen; i++) {
             var item = response[i];
             var iconFeature = new ol.Feature({
                 geometry: new ol.geom.Point(ol.proj.transform([item.lon, item.lat], 'EPSG:4326', 'EPSG:3857')),
                 name: 'Null Island',
                 rainfall: 500
             });
             var vectorSource = new ol.source.Vector({
                 // empty vector
             })
             vectorSource.addFeature(iconFeature);
         }
     }
 });