为了账号安全,请及时绑定邮箱和手机立即绑定

转换js结构中的数据

转换js结构中的数据

三国纷争 2023-12-14 12:48:29
我从 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 端。


查看完整回答
反对 回复 2023-12-14
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信