Javascript Geoserver JSON到制表器
我正在处理OpenLayers和Geoserver。 当用户单击某个特征时,我已经创建了一个制表器表来获取特征信息数据。 我的问题是,我需要将html响应从Geoserver转换为JSON。我该怎么做 这是来自Geoserver的响应Javascript Geoserver JSON到制表器,javascript,json,geoserver,tabulator,Javascript,Json,Geoserver,Tabulator,我正在处理OpenLayers和Geoserver。 当用户单击某个特征时,我已经创建了一个制表器表来获取特征信息数据。 我的问题是,我需要将html响应从Geoserver转换为JSON。我该怎么做 这是来自Geoserver的响应 <table class="featureInfo"> <caption class="featureInfo">l1Data</caption> <tbody><
<table class="featureInfo">
<caption class="featureInfo">l1Data</caption>
<tbody><tr>
<th>id</th>
<th>sensor</th>
<th>timestamp</th>
<th>reliability</th>
</tr>
<tr>
<td>16021</td>
<td>Basic</td>
<td>Sep 18, 2020 12:05:02 PM</td>
<td>0.929717403858748</td>
</tr>
</tbody>
</table>
编辑
我发现我可以有一个application/json响应,但我不能将其放入tablator。地图上的代码单击:
map.on('singleclick', function (evt) {
var viewResolution = /** @type {number} */ (view.getResolution());
var url = wmsSource.getFeatureInfoUrl(
evt.coordinate, viewResolution, 'EPSG:3857',
{ 'INFO_FORMAT': 'application/json' });
if (url) {
fetch(url)
.then(function (response) { return response.text(); })
.then(function (html) {
var test1 = JSON.parse(html);
var test2 = test1.features[0].properties;
table.setData(test2);
});
}
});
错误是:
tabulator.min.js:2 Data Loading Error - Unable to process data due to invalid data type
Expecting: array
Received: object
您不需要解决如何转换它,只需让GeoServer将信息作为JSON返回即可。您可以通过将
info\u format
参数设置为application/json
来实现这一点。提供了可用于控制响应的所有可能参数和格式的完整详细信息。您无需了解如何转换,只需让GeoServer以JSON的形式返回信息即可。您可以通过将info\u format
参数设置为application/json
来实现这一点。提供了可用于控制响应的所有可能参数和格式的完整详细信息。您说得对。我已经找到了如何获取application/json。但是现在我面临另一个问题,制表器需要数组而不是对象。从对象获取特性数组看看ajaxResponse
回调,它允许您在制表器接收响应之前更改响应中的数据。你是对的。我已经找到了如何获取application/json。但是现在我面临另一个问题,制表器需要数组而不是对象。从对象获取特性数组看看ajaxResponse
回调,它允许您在制表器接收响应之前更改响应中的数据。
tabulator.min.js:2 Data Loading Error - Unable to process data due to invalid data type
Expecting: array
Received: object