我从 php 获取数据,例如:[{'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 31.5755, 'lng': -85.279}, {'lat': 32.2334, 'lng': -86.2085}, {'lat': 32.2334, 'lng': -86.2085}, {'lat': 42.8142, 'lng': -73.9396}, {'lat': 42.8142, 'lng': -73.9396}, {'lat': 42.8142, 'lng': -73.9396`enter code here`}, {'lat': 42.8142, 'lng': -73.9396}, {'lat': 42.8142, 'lng': -73.9396}, {'lat': 38.6207, 'lng': -83.8067}, {'lat': 42.3644, 'lng': -71.0633}, {'lat': 40.0625, 'lng': -79.8953}, {'lat': 34.4197, 'lng': -119.7078}, {'lat': 42.8142, 'lng': -73.9396}, {'lat': 42.0702, 'lng': -72.6227}]但在 js 中我想将其转换为:const locations = [ { lat: -31.56391, lng: 147.154312 }, { lat: -33.718234, lng: 150.363181 }, { lat: -33.727111, lng: 150.371124 }, { lat: -33.848588, lng: 151.209834 }, { lat: -33.851702, lng: 151.216968 }, { lat: -34.671264, lng: 150.863657 }, { lat: -35.304724, lng: 148.662905 },];谁能建议我如何以这种方式转换它。我想删除单引号并想要像这样的新结果数组
1 回答
森林海
TA贡献2011条经验 获得超2个赞
不,它不是从控制器获取的 ajax 响应,例如 var value = "{{myValue}}" 以这种方式我得到
在这种情况下,如果您删除包装引号,就可以了 - JavaScript 可以在对象文本中使用单引号属性名称:
var values = {{myValue}};
JavaScript 引擎将看到的是:
var values = [{'lat': 31.5755, 'lng': -85.279}, /*...*/];
这很好。
如果它是 ajax 响应,最好的办法是修复 PHP,使其提供有效的 JSON(双引号而不是单引号)。然后你可以用 解析结果JSON.parse
。
作为第二好的解决方案,如果您不能这样做,因为数据中唯一的单引号是属性名称周围的单引号,您可以将它们替换为双引号,然后解析结果:
const locations = JSON.parse(theDataString.replace(/'/g, '"'));
但是,这只有效,因为没有任何其他单引号。这不是一个好方法;而是修复 PHP 端。
添加回答
举报
0/150
提交
取消