繁体   English   中英

如何从angular2中的数组的键值对创建json

[英]how to create json from key value pair of array in angular2

    "dynaModel": [
{
  "map": {
    "UNIT/SUBUNIT": "EAS",
    "SUBUNIT/ISU/GEO": "Africa",
    "'APR-16'_REVENUEUSD-$": "$805,298",
    "'APR-16'_COSTUSD-$": "$701,026",
    "'APR-16'_GMINR-RSUSD-$": 12.95,
    "'Total'_REVENUEUSD-$": "$805,298",
    "'Total'_COSTUSD-$": "$701,026",
    "'Total'_GMINR-RSUSD-$": 12.95
  }
},
{
  "map": {
    "UNIT/SUBUNIT": "fgdfg",
    "SUBUNIT/ISU/GEO": "dfgdfg",
    "'APR-16'_REVENUEUSD-$": "$58,",
    "'APR-16'_COSTUSD-$": "$32,",
    "'APR-16'_GMINR-RSUSD-$": 43.98,
    "'Total'_REVENUEUSD-$": "$58,",
    "'Total'_COSTUSD-$": "$32,",
    "'Total'_GMINR-RSUSD-$": 43
  }
},

.......

如何使用angular 2将其转换为以下格式

   output= [
    {
     "UNIT/SUBUNIT": "hjgh",
    "SUBUNIT/ISU/GEO": "ghjg",
    "'APR-16'_REVENUEUSD-$": "$805",
    "'APR-16'_COSTUSD-$": "$70",
    "'APR-16'_GMINR-RSUSD-$": 12.95,
    "'Total'_REVENUEUSD-$": "$80",
    "'Total'_COSTUSD-$": "$701",
    "'Total'_GMINR-RSUSD-$": 12
},
{
  "UNIT/SUBUNIT": "jjghjhj",
    "SUBUNIT/ISU/GEO": "hjgh",
    "'APR-16'_REVENUEUSD-$": "$58,",
    "'APR-16'_COSTUSD-$": "$32,",
    "'APR-16'_GMINR-RSUSD-$": 43.98,
    "'Total'_REVENUEUSD-$": "$58,0",
    "'Total'_COSTUSD-$": "$32,",
    "'Total'_GMINR-RSUSD-$": 43.98
},

.. .. ..

];

我最近尝试如下,我使用以下代码从第一个json文件中提取键值对,然后将每个对推入jsonObject数组中。

  jsonObject = []; 

  for(let isugeo of this.responseStatus.dynaModel){     
     for( let isugeomap of this.generateArray(isugeo.map)){
       this.jsonObject.push(isugeomap.key+':'+"'" +isugeomap.value+"'");       
     }    console.log('Request Completed' + 
    JSON.stringify(this.jsonObject));
    };


    generateArray(responseStatus){
     return Object.keys(responseStatus).map((key) => { return {key:key, value:responseStatus[key]}});
 } 

但这并没有给我正确的格式任何帮助,我将如何进行

我将使用js映射方法( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

let output = this.responseStatus.dynaModel.map(item => item.map);

dynaModel是一个对象数组,因此您可以遍历它并选择其中每个对象的map属性(也是一个对象),然后将该对象放入output数组。

let response = {
  "dynaModel": [
    {
      "map": {
        "UNIT/SUBUNIT": "EAS",
        "SUBUNIT/ISU/GEO": "Africa",
        "'APR-16'_REVENUEUSD-$": "$805,298",
        "'APR-16'_COSTUSD-$": "$701,026",
        "'APR-16'_GMINR-RSUSD-$": 12.95,
        "'Total'_REVENUEUSD-$": "$805,298",
        "'Total'_COSTUSD-$": "$701,026",
        "'Total'_GMINR-RSUSD-$": 12.95
      }
    },
    {
      "map": {
        "UNIT/SUBUNIT": "fgdfg",
        "SUBUNIT/ISU/GEO": "dfgdfg",
        "'APR-16'_REVENUEUSD-$": "$58,",
        "'APR-16'_COSTUSD-$": "$32,",
        "'APR-16'_GMINR-RSUSD-$": 43.98,
        "'Total'_REVENUEUSD-$": "$58,",
        "'Total'_COSTUSD-$": "$32,",
        "'Total'_GMINR-RSUSD-$": 43
      }
    }
  ]
}

let output = new Array();

for (let object of response.dynaModel) {
  output.push(object.map);
}

console.log(output); 

印刷品:

[ { 'UNIT/SUBUNIT': 'EAS',
'SUBUNIT/ISU/GEO': 'Africa',
'\'APR-16\'_REVENUEUSD-$': '$805,298',
'\'APR-16\'_COSTUSD-$': '$701,026',
'\'APR-16\'_GMINR-RSUSD-$': 12.95,
'\'Total\'_REVENUEUSD-$': '$805,298',
'\'Total\'_COSTUSD-$': '$701,026',
'\'Total\'_GMINR-RSUSD-$': 12.95 },
{ 'UNIT/SUBUNIT': 'fgdfg',
'SUBUNIT/ISU/GEO': 'dfgdfg',
'\'APR-16\'_REVENUEUSD-$': '$58,',
'\'APR-16\'_COSTUSD-$': '$32,',
'\'APR-16\'_GMINR-RSUSD-$': 43.98,
'\'Total\'_REVENUEUSD-$': '$58,',
'\'Total\'_COSTUSD-$': '$32,',
'\'Total\'_GMINR-RSUSD-$': 43 } ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM