使用JS将数组转换为JSON对象

时间:2020-11-01 17:36:57

标签: javascript json

请帮助将数组转换为JSON对象

 xxResourcePolicy:
      Type: "AWS::SecretsManager::ResourcePolicy"
      Properties:
        SecretId:
          Ref: xxSecretsManager
        ResourcePolicy:
          Version: "2012-10-17"
          Statement:
            - Resource: "*"
              Action:
                - "secretsmanager:*"
              Effect: Allow
              Principal:
                AWS: "*"
              Condition:
                StringEquals:
                  AWS:SourceOwner: !Ref "AWS::AccountId"

我尝试这样做并得到:

var array = [1, 2, 3, 4]; 
var arrayToString = JSON.stringify(Object.assign({}, array));
var stringToJsonObject = JSON.parse(arrayToString);
 
console.log(stringToJsonObject);

预期结果

{0: 1, 1: 2, 2: 3, 3: 4}

4 个答案:

答案 0 :(得分:9)

您可以使用.reduce进行此操作:

var array = [1, 2, 3, 4]; 

var res = array.reduce((acc,item,index) => {
  acc[`place${index}`] = item;
  return acc;
}, {});
 
console.log(res);

答案 1 :(得分:4)

var array = [1, 2, 3, 4];
const jsonObj = {}
array.forEach((v,i) => jsonObj['place'+i] = v);
console.log(jsonObj)

答案 2 :(得分:0)

您可以使用Object.entries()来获取所有数组元素作为键和值的序列,然后使用map()将键与place连接,最后使用{{1} }将该数组转换为对象。

无需在中间使用JSON。

Object.fromEntries()

答案 3 :(得分:0)

用于循环并累积到对象中

var array = [1, 2, 3, 4];
const result = {}
for (let item of array) {
  result['place' + item] = item;
}
console.log(result)