将具有键值的数组转换为JavaScript

时间:2017-09-14 18:35:45

标签: javascript json

我在JavaScript中使用了JSON.stringify()的数组,最终看起来像这样:

[  
   {  
      "typeOfLoan":"Home"
   },
   {  
      "typeOfResidency":"Primary"
   },
   {  
      "downPayment":"5%"
   },
   {  
      "stage":"Just Looking"
   },
   {  
      "firstName":"Jared"
   },
   {  
      "lastName":"Example"
   },
   {  
      "email":"Jared@demo.com"
   },
   {  
      "cell":"8888888888"
   },
   {  
      "loanofficer":"Jim Loan"
   }
]

我希望输出是标准的JSON对象,以便我可以在POST中发送它。在此之前被标记为重复之前,我已经尝试了我可能已经找到的所有答案,并且它们最终都无法正常工作或语法错误,我不明白如何修复。该数组存储在变量jsonArray

2 个答案:

答案 0 :(得分:0)

所有带有单个键的对象数组看起来很可疑。我想你想要一个带有所有键的单个对象文字,然后你可以将它发送到你的后端(并在那里解析)。首先,减少一个对象中的多个对象,然后将{a} ajax调用到任何地方POST。以下是如何减少它:



let arr = [{"typeOfLoan":"Home"},{"typeOfResidency":"Primary"},{"downPayment":"5%"},{"stage":"Just Looking"},{"firstName":"Jared"},{"lastName":"Example"},{"email":"Jared@demo.com"},{"cell":"8888888888"},{"loanofficer":"Jim Loan"}];

let res = arr.reduce((a,b) => {
  let key = Object.keys(b)[0];
  a[key] = b[key];
  return a;
}, {});

console.log(res);




根据您用于将其发送到后端的内容,您可能需要在JSON.stringify上使用res

答案 1 :(得分:0)

字符串化之前,将请求有效负载从数组转换为对象。

const arr = [{"typeOfLoan":"Home"},{"typeOfResidency":"Primary"},{"downPayment":"5%"},{"stage":"Just Looking"},{"firstName":"Jared"},{"lastName":"Example"},{"email":"Jared@demo.com"},{"cell":"8888888888"},{"loanofficer":"Jim Loan"}];

const payload = arr.reduce(function(acc, prev){
  return Object.assign(acc, prev);
}, {});

console.log(payload);