从数据数组创建单个标签-Node.js

时间:2018-08-14 16:21:38

标签: json node.js mongodb

因此我设备中变量 result 的输出是一个数组,其中包含以下JSON响应。我想将每个键的第一个值设为一个单独的对象,以便可以将其发送到猫鼬数据库中以保存结果。我该怎么做?键中的值是动态的,取决于找到的内容,可以为2或100。

[
{
    "Read_Count": [
        31,
        5,
        23,
        1
    ],
    "Antenna": [
        1,
        1,
        1,
        1
    ],
    "EPC": [
        "300833B2DDD9014000000000",
        "E280116060000207B6C9E1E2",
        "300833B2DDD9014000000000",
        "E2801160600002096622B8C0"
    ],
    "Signal": [
        224,
        196,
        212,
        194
    ]
}

我希望输出如下:

{
   "Tags": [
    { "EPC":"300833B2DDD9014000000000", "Read_Count": 31, "Antenna": 1, "Signal": 224 },
    { "EPC":"E280116060000207B6C9E1E2", "Read_Count": 5, "Antenna": 1, "Signal": 196 },
    { "EPC":"E2801160600002096622B8C0", "Read_Count": 23, "Antenna": 1, "Signal": 212 } 
  ]
}

1 个答案:

答案 0 :(得分:1)

因此,对于数组中的每个对象,您都需要遍历其键并将结果中该键的值设置为该键值中数组的第一个元素。

var result = {
    'Tags': []
}
response.forEach(tag => {
    var resultingTag = {}
    Object.keys(tag).forEach(key => {
        resultingTag[key] = tag[key][0]
    })
    result.Tags.push(resultingTag);
}

(“ response”是您在第一个代码块中发布的输入数组,如果不清楚的话)