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);