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

如何将字符串转为地图可用对象?JSON.parse使用问题求助

问题原因及解决办法

你的JSON.parse写法完全错了

你写的var position = JSON.parse('{"lat:" + latitude + ",lng:" + longitude }');里,把拼接变量的代码当成了字符串内容,导致传给JSON.parse的不是带实际经纬度值的合法JSON字符串,而是{"lat:" + latitude + ",lng:" + longitude }这个本身就不符合JSON规范的文本,自然解析不出正确对象。

两种正确的实现方式

方式一:直接创建对象(最推荐)

根本没必要转字符串再解析,直接生成你需要的Position对象就行:

var position = { lat: latitude, lng: longitude };

这完全符合{lat:纬度值, lng:经度值}的格式要求,简单又不容易出错。

方式二:非要用JSON.parse的话(不推荐)

必须先拼接出标准JSON格式的字符串——注意JSON的键必须用双引号,数字类型的经纬度值不用加引号:

// 用模板字符串拼接(更简洁)
var jsonStr = `{"lat": ${latitude}, "lng": ${longitude}}`;
var position = JSON.parse(jsonStr);

或者用传统字符串拼接:

var jsonStr = '{"lat": ' + latitude + ', "lng": ' + longitude + '}';
var position = JSON.parse(jsonStr);

拼接后要得到类似{"lat": 39.9042, "lng": 116.4074}这种合法JSON,JSON.parse才能正常解析。

关于只显示'position'的问题

大概率是你的代码解析出错(可以打开浏览器控制台看具体报错),导致position变量没正确赋值;或者你后续输出的时候,不小心写了字符串'position'而不是变量position。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:12:38