从WFS/Geoserver获取JSON数据

3
我在使用GeoServer的WFS获取数据时遇到了困难。我想从WFS返回的JSON中获取特定属性,并在我的HTML页面中使用它来填充表格。我已经阅读了很多帖子和文档,但似乎无法使其正常工作。我已经:
(a) 更改了geoserver文件夹中的web.inf文件以启用jsonp (b) 尝试了不同的outputFormat组合(json或text/javascript)
(c) 尝试了不同的JSON解析方式(使用.或[],JSON.parse或parseJSON等)
(d) 使用JSON.stringify测试ajax调用是否正常工作(它确实可以!)
但最终结果总是返回undefined!!
function wfs(longitude, latitude){
    function getJson(data) {
        var myVar1=data['avgtemp1'];
        document.getElementById("v1").innerHTML = myVar;
    }
    var JsonUrl = "http://88.99.13.199:8080/geoserver/agristats/wfs?service=wfs&version=2.0.0&request=GetFeature&typeNames=agristats:beekeeping&cql_filter=INTERSECTS(geom,POINT(" + longitude + " " + latitude + "))&outputFormat=text/javascript&format_options=callback:getJson";
    $.ajax({
        type: 'GET', 
        url: JsonUrl,
        dataType: 'jsonp',
        jsonpCallback:'getJson',
        success: getJson
    });
}
wfs(38, 23);

你能帮我一下吗?

这段内容与IT技术无关。
1个回答

4
您离正确答案已经很接近了。首先,您在写变量名时有一个拼写错误(myVar1myVar)。其次,您的函数正在接收一个Json对象,因此您必须深入其结构。首先获取功能,然后获取第一个功能,然后获取属性数组,最后获取您选择的属性。 我建议您阅读有关Json对象的教程,因为您肯定希望遍历属性/项,验证它们不为空等。
 function getJson(data) {
        var myVar1=data.features[0].properties['avgtemp1'];
        document.getElementById("v1").innerHTML = myVar1;
    }

最后,不要忘记在您喜欢的浏览器中使用调试器。在函数中设置断点,并检查data的结构和内容。

非常感谢 @JGH!这是一个 JSON 新手问题!!我接受了答案,因为它完美地解决了我的问题。 - ilitse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接