簡體   English   中英

在js結構中轉換數據

[英]convert data in js structure

我從 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 },

];

誰能建議我如何以這種方式轉換它。 我想刪除單引號並想要這樣的新結果數組

不,它不是從 controller 得到的 ajax 響應,就像 var values = "{{myValue}}" 這樣我得到了

在這種情況下,如果您刪除包裝引號就可以了 - JavaScript 可以在 object 文字中使用單引號屬性名稱:

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 側。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM