You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Java Servlet返回的JSON经纬度数据存入JavaScript列表

解决方案

没问题,我来帮你搞定这个需求!首先先提个小细节:你代码里的MaxLat不小心写成了${object.maxlon},得改成${object.maxlat},不然获取的纬度值会错成经度,影响后续地图绘制哦。

接下来给你两种实用的方法,把经纬度存入JavaScript列表:

方法1:直接注入JSTL变量到JS数组

这种方法适合只需要提取这几个经纬度字段的场景,直接把JSTL输出的值写入JavaScript数组:

// 初始化存储经纬度的列表,每个元素是[纬度, 经度](适配多数地图库的坐标顺序)
const coordinates = [];

// 添加最小经纬度坐标
coordinates.push([<c:out value="${object.minlat}"/>, <c:out value="${object.minlon}"/>]);
// 添加最大经纬度坐标(注意这里已经修正了MaxLat的变量错误)
coordinates.push([<c:out value="${object.maxlat}"/>, <c:out value="${object.maxlon}"/>]);

之后你就可以用coordinates列表来给地图绘制边界或者标记点了,比如Leaflet里的L.polygon(coordinates)这类方法。

方法2:将整个JSON转为JS对象后提取字段

如果后续可能用到JSON里的其他字段,这种方法更优雅,直接把完整的JSON数据转为JavaScript对象,再按需提取:

<script>
// 把JSTL中的JSON字符串解析为JavaScript对象
const mapData = JSON.parse('<c:out value="${json}"/>');

// 初始化经纬度列表
const coordinates = [];

// 从JS对象中提取经纬度并添加到列表
coordinates.push([mapData.minlat, mapData.minlon]);
coordinates.push([mapData.maxlat, mapData.maxlon]);
</script>

注意事项

  • <c:out>标签会自动转义JSON里的特殊字符(比如引号、斜杠),所以用JSON.parse解析是安全的,不会出现语法错误。
  • 确认JSON里的字段名和你使用的一致(比如是minlon还是minLon,大小写要对应),否则会获取到undefined。

内容的提问来源于stack exchange,提问作者kieron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:43:06