【问题标题】:javascript, remove double quotes inside multiple arrayjavascript,删除多个数组中的双引号
【发布时间】:2020-01-30 15:27:40
【问题描述】:

我正在尝试为 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
        ]

有没有办法删除括号之间的双引号,或者只是解析值并忽略双引号

【问题讨论】:

    标签: json google-data-studio deck.js


    【解决方案1】:

    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 所期望的格式。

    【讨论】:

      【解决方案2】:

      找到答案

      基本上,使用 JSON.stringify 将 javascript 对象更改为字符串使用正则表达式替换字符串,然后使用 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);
      

      【讨论】:

        猜你喜欢
        • 2018-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多