简体   繁体   English

带有属性+数组的Json对象,如何移动数组内的属性?

[英]Json object with attributes + array, how to move the attributes inside the array?

Is there a way to achieve this json transformation using javascript ?有没有办法使用 javascript 实现这个 json 转换?

input输入

{
"server":"S1",
"timestamp":"123456",
"data":[
        {"device":"D1", "price":"50"},
        {"device":"D2", "price":"60"},
        {"device":"D3", "price":"70"}
     ]
}

output输出

{
"data":[
     {"server":"S1", "timestamp":"123456", "device":"D1", "price":"50"},
     {"server":"S1", "timestamp":"123456", "device":"D2", "price":"60"},
     {"server":"S1", "timestamp":"123456", "device":"D3", "price":"70"}
]
}

Let us say your input object is假设您的输入对象是

var input = {
"server":"S1",
"timestamp":"123456",
"data":[
    {"device":"D1", "price":"50"},
    {"device":"D2", "price":"60"},
    {"device":"D3", "price":"70"}
 ]
  }

You can convert to expected output as,您可以转换为预期的输出,

let output = {
data:[]
 }

input.data.forEach(transformfunction);

function transformfunction(value,index,array){

  output.data.push(
             {
             "server":input.server,
             "timestamp":input.timestamp,
              "device":array[index].device,
              "price":array[index].price
          }
      );

  }

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

I hope it helps.我希望它有帮助。

try this:尝试这个:

 const data = { "server":"S1", "timestamp":"123456", "data":[ {"device":"D1", "price":"50"}, {"device":"D2", "price":"60"}, {"device":"D3", "price":"70"} ] } result = {data: data.data.map(res=>({...res, ...{'timestamp': data.timestamp, 'server': data.server} }))} console.log(result);

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

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