javascript, удалите двойные кавычки внутри нескольких массивов

Я пытаюсь создать собственный визуал для datastudio, он работает, но есть шаг, я не могу исправить, Datastudio создает такой файл json

export const message = {
  "tables": {
    "DEFAULT": [
      {
        "coordinateid": [
          "143.4999336,-34.777302"
        ],
        "colorid": [
          "169,255,169"
        ],
        "sizeid": [
          1
        ]
      },
      {
        "coordinateid": [
          "143.4999358,-34.7773749"
        ],
        "colorid": [
          "169,169,169"
        ],
        "sizeid": [
          1
        ]
      },
      {

в deckgl соответствующий код

const drawViz = (data) => {
       var data1 = data.tables.DEFAULT;  

    getPosition: d => d.coordinateid,

единственный способ заставить его работать - это когда я удаляю кавычки из значений внутри массива

"coordinateid": [
          143.4999336,-34.777302
        ]

есть ли способ удалить двойные кавычки между скобками или просто проанализировать значения и игнорировать двойные кавычки

2 ответа

Решение

DataStudio возвращает координаты GEO LatLong в виде строки, разделенной запятыми. Правильный способ разобрать это будет следующим:

var baseCoordinate = "143.4999336,-34.777302";
// Split out the coordinates into multiple strings
var coordinates = baseCoordinate.split(",");
// Turn the strings into floats
var coordinatesAsNumbers = coordinates.map((coord) => parseFloat(coord));

Это даст вам координаты в виде числа с плавающей запятой в массиве, который, по-видимому, является форматом, который ожидает deckgl.

Найти ответ

в основном, измените объект javascript на строку с помощью JSON.stringify регулярное выражение using для замены строк, затем используйте Json.parese, чтобы изменить его обратно на объект

  var data1 = data.tables.DEFAULT;
  var data2 = JSON.stringify(data1);
  var data3 = data2.replace(/\"]/g, "]");
  var data4 = data3.replace(/\["/g, "[");
  var data4 = JSON.parse(data4);
Другие вопросы по тегам