javascript - JSON数据从表格格式转换为JSON?

标签 javascript json

我有以下格式的数据:

{
  "columns": [
    {
      "values": [
        {
          "data": [
            "Project Name",
            "Owner",
            "Creation Date",
            "Completed Tasks"
          ]
        }
      ]
    }
  ],
  "rows": [
    {
      "values": [
        {
          "data": [
            "My Project 1",
            "Franklin",
            "7/1/2015",
            "387"
          ]
        }
      ]
    },
    {
      "values": [
        {
          "data": [
            "My Project 2",
            "Beth",
            "7/12/2015",
            "402"
          ]
        }
      ]
    }
  ]
}

有没有一些超短/简单的方法可以像这样格式化它:

{
  "projects": [
    {
      "projectName": "My Project 1",
      "owner": "Franklin",
      "creationDate": "7/1/2015",
      "completedTasks": "387"
    },
    {
      "projectName": "My Project 2",
      "owner": "Beth",
      "creationDate": "7/12/2015",
      "completedTasks": "402"
    }
  ]
}

我已经得到了列名翻译代码:

r = s.replace(/\%/g, 'Perc')
.replace(/^[0-9A-Z]/g, function (x) {
  return x.toLowerCase();
}).replace(/[\(\)\s]/g, '');

在我用一堆 forEach 循环深入研究这个问题之前,我想知道是否有一种 super 快速的方法来转换它。我愿意使用 Underscore 等库。

最佳答案

function translate(str) {
    return str.replace(/\%/g, 'Perc')
        .replace(/^[0-9A-Z]/g, function (x) {
            return x.toLowerCase();
        })
        .replace(/[\(\)\s]/g, '');
}

function newFormat(obj) {

    // grab the column names
    var colNames = obj.columns[0].values[0].data;

    // create a new temporary array
    var out = [];
    var rows = obj.rows;

    // loop over the rows
    rows.forEach(function (row) {
        var record = row.values[0].data;

        // create a new object, loop over the existing array elements
        // and add them to the object using the column names as keys
        var newRec = {};
        for (var i = 0, l = record.length; i < l; i++) {
            newRec[translate(colNames[i])] = record[i];
        }

        // push the new object to the array
        out.push(newRec);
    });

    // return the final object
    return { projects: out };
}

DEMO

关于javascript - JSON数据从表格格式转换为JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31483175/

相关文章:

javascript - 如何将匿名函数的返回值存储到 JavaScript 中的变量?

javascript - 发布到服务器端代码内的路由

javascript - 使用 JSON 在 HTML 数据属性中传递数据

javascript - 通过引用 Javascript 中的另一个函数来传递对象方法

javascript - 使用 setTimeout 操作通过循环生成的新 DOM 元素

python - Django反序列化错误安装Fixture问题

.net - JSON 反序列化为继承的类型

java - 使用 Jackson Java 解析 JSON

javascript - 谷歌浏览器 "window.open"解决方法?

javascript - 如何将 JSON 数组转换为 Javascript 数组?