Javascript 如何动态地给出json响应。。?
下面是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
[{"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
。我应该给出likevectorsource.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);
}
}
});