javascript - 如何在Javascript中制作json数据?
问题描述
我有一个如下所示的数组:
[
{
name: "ReceiverId",
value: "1"
},
{name: "TransSequence", value: "KPJ7dL2pmx0njInNRAzUug"},
{
name: "email-address",
value: "xcv@cvb.com"
},
{
name: "mobile-number",
value: "9321313213"
},
{
name: "ReceiverId",
value: "2"
},
{
name: "TransSequence",
value: "KPJ7dL2pmx0njInNRAzUug"
},
{
name: "email-address",
value: "xcv@cvb.com"
}
]
现在我想让我的 json 数据看起来像这样:
{
"MainData": [
{
"TransSequence": "wpiuVJw",
"ReceiverId": "1",
"ReceiverEmail": "xcv@cvb.com",
"ReceiverMobileNo": "9321313213",
},
{
"TransSequence": "xowpiuVJw",
"ReceiverId": "2",
"ReceiverEmail": "xcv@cvb.com",
"ReceiverMobileNo": "9321313213",
}
]
}
但是我尝试了下面的代码片段:
mArr = []
obj = {};
for(var i=0; i<mainArr.length; i++){
// obj = {};
for(j = 0; j < 4; j++){
obj[mainArr[i].name] = mainArr[i].value
}
}
但上面的代码片段只返回最后一个值。但是,我也尝试将其转换为基于字符串的 json,但在最后一个数组中,它,
在解析时返回错误。
帮助将不胜感激!
解决方案
根据您尝试的代码,您正在使用 js。
在 js 中,可以使用reduce
对数组进行汇总。用于Object.assign
组合对象。
let arr = [{"name":"ReceiverId","value":"1"},{"name":"TransSequence","value":"KPJ7dL2pmx0njInNRAzUug"},{"name":"email-address","value":"xcv@cvb.com"},{"name":"mobile-number","value":"9321313213"},{"name":"ReceiverId","value":"2"},{"name":"TransSequence","value":"KPJ7dL2pmx0njInNRAzUug"},{"name":"email-address","value":"xcv@cvb.com"},{"name":"mobile-number","value":"9321231321"},{"name":"ReceiverId","value":"1"},{"name":"TransSequence","value":"KPJ7dL2pmx0njInNRAzUug"},{"name":"email-address","value":"xcv@cvb.com"},{"name":"mobile-number","value":"9321231321"},{"name":"ReceiverId","value":"2"}];
let propertyCount = 4;
let result = arr.reduce((c, v, i) => {
let o = Math.floor(i / propertyCount);
c[o] = c[o] || {};
c[o] = Object.assign(c[o], {[v.name]: v.value});
return c;
}, []);
console.log(result);
推荐阅读
- angular9 - 如何从 Angular7 中可用的 Angular9 中的 ComponentFactoryResolver 访问 _factories 属性?
- c++ - 在 C++ 中创建字符串时抛出奇怪的错误
- ios - 如何在没有 3rd 方库 iOS Swift 的情况下绘制饼图,获得的标记填充总标记中的一些颜色
- reactjs - 带有事件的 Swiperjs 反应
- php - Laravel 的内置 Auth 功能在使用带有前缀 url 的本地化时会导致错误
- python - 安装 anaconda 后,无法导入新的 pip 安装模块
- python - Python将不相等的数据帧与真/假文本进行比较以获取列输出
- python - 如何处理字符串列表,其中每个字符串也可能是逗号分隔的字符串列表?
- javascript - 奇怪的重新选择选择器行为
- jmeter - 在 JMeter 的 HTTP 采样器中遍历每一行并访问每一列