代码之家  ›  专栏  ›  技术社区  ›  Marcio Lino

Json对象到对象

  •  -1
  • Marcio Lino  · 技术社区  · 6 年前

    我有下面的JSON对象,我想把它转换成Javascript对象。

    let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"}, 
                {"agreg": "First", "colunm": "qtd_if", "label": "Type 2"}, 
                {"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
    

    我想将一些键/值放入如下Javascript对象:

    let disVars = {'var_pj'  : 'Count([',
                  'qtd_if'   : 'First([',
                  'qtd_ag_if': 'Sum([' };
    

    我尝试使用以下代码:

    let disVars = data.map(function(item){
        let col = item.colunm.toString();
        let agr = item.agreg.toString();
        return col + ': ' + agr + '([';
        });
    

    但是console.log(disVars)的结果是:

     "var_pj: Count([",
     "qtd_if : First([",
     "qtd_ag_if: Sum(["
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   TheMisir    6 年前

    Object.fromEntries 函数将键值数组转换为JS对象。

    let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"}, 
                {"agreg": "First", "colunm": "qtd_if", "label": "Type 2"}, 
                {"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
    
    let result = Object.fromEntries(data.map(item => [
      item.colunm, item.agreg + '(['
    ]));
    
    console.log(result);

    Object.fromEntries项目 应用程序编程接口。相反,我创建了一个空对象,并在数据上循环,然后将新属性放入该对象。

    let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"}, 
                {"agreg": "First", "colunm": "qtd_if", "label": "Type 2"}, 
                {"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
    
    let result = new Object();
    for (var item of data) {
      result[item.colunm] = item.agreg + '([';
    }
    
    console.log(result);