首页 > 解决方案 > 如何根据角度值创建嵌套 JSON

问题描述

我做了一个 API 调用,然后我收到了一个 JSON,我需要根据它们的值修改那个 JSON,例如:如果一个 id 等于 0

我发现实现这一点的唯一方法是添加多个if语句,我想通过一个函数动态地做到这一点

这是我的 JSON

   {
      "Last_Scanned": 1,
      "Prefix_Title": 1 ,
      "First_Name": 0,
      "Family_Name": 1,
      "Job_Title": 1, 
      "Company": 0,
      "Address_1": 1, 
      "Zip_Code": 1, 
      "City": 1,
      "Country_Code": 0
    }

这就是我试图通过值等于 0 的值进行过滤的方式,这response是原始值json

let selectedfield:any = [response]
        selectedfield.forEach(element => {
          avoidFields =  selectedfield.map((x:any) => { 
            if(x.Last_Scanned== 0){
              avoidFields.push(Object.keys(x.Person_Id))
              console.log(Object.keys(x))
            }

          })
        })

我正在寻找的结果是有这样的东西

   {
      "First_Name": 0,
      "Company": 0,
      "Country_Code": 0
    }

OR

   {
      "First_Name",
      "Company",
      "Country_Code"
   }

标签: javascriptangular

解决方案


这是否满足您想要做的事情?

// sample entry.
let sampleObject = {
  "Last_Scanned": 1,
  "Prefix_Title": 1 ,
  "First_Name": 0,
  "Family_Name": 1,
  "Job_Title": 1, 
  "Company": 0,
  "Address_1": 1, 
  "Zip_Code": 1, 
  "City": 1,
  "Country_Code": 0
};

// destination object.
let newObject = {};

// iterate through the object properties.
for (let prop in sampleObject) {
  // add to the new object if value is zero.
  if (sampleObject[prop] === 0) {
    newObject[prop] = 0; // or any value you want to set.
  }
}

console.log(newObject);


推荐阅读