如何通过 Node.js 或 NPM 模块组合/序列化此类 JSON 对象?

Posted

技术标签:

【中文标题】如何通过 Node.js 或 NPM 模块组合/序列化此类 JSON 对象?【英文标题】:How can I combine/serialize such JSON objects by means of Node.js or NPM modules? 【发布时间】:2020-01-24 13:54:36 【问题描述】:

如果有人建议如何获得这样的 JSON

,我将不胜感激
[
  
    "type": "A_TYPE",
    "value": "foo"
  ,
  
    "type": "A_TYPE",
    "value": "bar"
  ,
  
    "type": "B_TYPE",
    "value": "qux"
  ,
  
    "type": "C_TYPE",
    "value": [
      10000,
      19999
    ],
    "name": "1xxxx"
  
]

来自这样的JSON

[
  
    "type": "A_TYPE",
    "value": [
      "foo",
      "bar"
    ]
  ,
  
    "type": "B_TYPE",
    "value": [
      "qux"
    ]
  ,
  
    "type": "C_TYPE",
    "value": [
      [
        10000,
        19999
      ]
    ]
  
]

在这种情况下,具有 "type":"A_TYPE" 等属性的对象可以在其中组合 "value":"" 多个.

提前感谢您的帮助!

【问题讨论】:

我为我糟糕的英语道歉。如果您能发现并纠正我的错误,我将不胜感激。 "name": "1xxxx"这是从哪里来的? 这个 JSON 包含一些公司数据,我用自己的值替换了一些值以发布到这里。 【参考方案1】:

我为你的问题做了这个解决方案。

let arr = [
  
    "type": "A_TYPE",
    "value": [
      "foo",
      "bar"
    ]
  ,
  
    "type": "B_TYPE",
    "value": [
      "qux"
    ]
  ,
  
    "type": "C_TYPE",
    "value": [
      [
        10000,
        19999
      ]
    ]
  
];

let newArr = [];

for (let i = 0; i < arr.length; i++) 
  for (let j = 0; j < arr[i].value.length; j++) 
    let value = arr[i].value[j]; // Get value from the object
    let type = arr[i].type;  // Get type from the object

    // New Object to push to the new Array
    let tempObj = ;
    tempObj.type = type;
    tempObj.value = value;
    newArr.push(tempObj);  // Push object to array
  



console.log(JSON.stringify(newArr));

Test it here

【讨论】:

感谢您的帮助!可能是因为我错误地描述了这种情况的英语不好,我需要从第二个 JSON 中获取第一个 JSON,即此代码的作用相反。 抱歉,严重的格式错误:(当然你是对的。已经正确。再次抱歉。

以上是关于如何通过 Node.js 或 NPM 模块组合/序列化此类 JSON 对象?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:如何创建付费节点模块?

Node.js中npm怎么通过淘宝镜像安装模块

如何在 node.js 中卸载具有开发依赖项的 npm 模块?

如何在不使用 npm 的情况下安装 node.js 模块?

如何升级nodejs 的npm

已安装 Node JS NPM 模块但无法识别命令