如何在javascript中从服务器迭代json响应值

时间:2017-04-06 07:15:25

标签: javascript arrays json

我是javascript的新手我有一个网页请求,并以JSON格式给出响应,任务是我需要将数据解析成数组

这是我的样本回复:

"Employee" : {
  "Employee_Names" : [
     {
        "BAR_RATING" : "0",
        "Name" : "anand",
        "Name" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "av",
        "Name_RATING" : "0",
        "PATTERN" : "FiLi",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "books",
        "Name_RATING" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "kanagalu",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "specialty-av",
        "Name_RATING" : "0",
        "PATTERN" : "Fn-Ln",

     }
  ],
  "FOUND_Name" : [ null ],
  "OTHER_Name" : [
     {
        "BAR_RATING" : "0",
        "Name" : "kindle-cs-support",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "noreply-ops-jobs",
        "Name_RATING" : "0",
        "PATTERN" : null,

     }
  ],
  "PERSONAL_Name" : [ null ],
  "PROJECTED_Name" : [
     {
        "BAR_RATING" : "0",
        "Name" : "anand.venkatesan",
        "Name_RATING" : "0",
        "PATTERN" : "Fn.Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "anandv",
        "Name_RATING" : "0",
        "PATTERN" : "FnLi",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "vanand",
        "Name_RATING" : "0",
        "PATTERN" : "LiFn",

     }
  ]
  },

我需要的是 Employee_Names 对象我希望同一个数组中的所有名称来自 OTHER_Name 我希望所有名称都存储在数组中

我不知道如何用动态数组大小解析数据

3 个答案:

答案 0 :(得分:2)

获取字段中的所有值" name"来自Employee.Employee_Names数组

contactDetails

resultArray将是 var resultArray = Employee.Employee_Names.map(function(a) {return a.Name;}); ]

答案 1 :(得分:2)

如果我理解正确,这应该符合您的需求。

我们遍历"Employee_Names"个对象。

// ES6 code    
var allNames = employee["Employee_Names"].map(bar => bar.Name);

// pure javascript
var allNames = [];
for (i = 0; i < employee["Employee_Names"].length; i++) {
  var element = employee["Employee_Names"][i];

  // We push only name
  allNames.push( element.Name );

  // We push full json object
   //allNames.push( element );
}

现在我们使用allNames数组分配新的json密钥。

employee = Object.assign(employee, { "NEW_NAMES" : allNames });

检查工作例:

&#13;
&#13;
var employee = {
  "Employee_Names" : [
     {
        "BAR_RATING" : "0",
        "Name" : "anand",
        "Name_RATING" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "av",
        "Name_RATING" : "0",
        "PATTERN" : "FiLi",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "books",
        "Name_RATING" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "kanagalu",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "specialty-av",
        "Name_RATING" : "0",
        "PATTERN" : "Fn-Ln",

     }
  ],
  "FOUND_Name" : [ ],
  "OTHER_Name" : [
     {
        "BAR_RATING" : "0",
        "Name" : "kindle-cs-support",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "noreply-ops-jobs",
        "Name_RATING" : "0",
        "PATTERN" : null,

     }
  ],
  "PERSONAL_Name" : [  ],
  "PROJECTED_Name" : [
     {
        "BAR_RATING" : "0",
        "Name" : "anand.venkatesan",
        "Name_RATING" : "0",
        "PATTERN" : "Fn.Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "anandv",
        "Name_RATING" : "0",
        "PATTERN" : "FnLi",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "vanand",
        "Name_RATING" : "0",
        "PATTERN" : "LiFn",

     }
  ]
  };


// ES6
//var allNames = employee["Employee_Names"].map(bar => bar.Name);

// pure javascript
var allNames = [];
for (i = 0; i < employee["Employee_Names"].length; i++) {
  var element = employee["Employee_Names"][i];

  // We push only name
  allNames.push( element.Name );
  
  // We push full json object
   //allNames.push( element );
}

// Now we assign new json key with our names
employee = Object.assign(employee, { "NEW_NAMES" : allNames });

// Our new employee json
console.log(employee);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

使用Array map()方法将对象数组中的所有特定属性值转换为单个数组。

要从Employee_Names将所有名称提取到单个数组中:

  var empNames = employee.Employee_Names.map(function(item) {
    return item.Name;
  });

要从OTHER_Name获取所有名称:

  var otherNames = employee.OTHER_Name.map(function(item) {
    return item.Name;
  });

工作演示

var employee = {
  "Employee_Names" : [
     {
        "BAR_RATING" : "0",
        "Name" : "anand",
        "Name_RATING" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "av",
        "Name_RATING" : "0",
        "PATTERN" : "FiLi",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "books",
        "Name_RATING" : "0",
        "PATTERN" : "Ln",

     },
     {
        "BAR_RATING" : "0",
        "Name" : "kanagalu",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "specialty-av",
        "Name_RATING" : "0",
        "PATTERN" : "Fn-Ln",

     }
  ],
  "FOUND_Name" : [ null ],
  "OTHER_Name" : [
     {
        "BAR_RATING" : "0",
        "Name" : "kindle-cs-support",
        "Name_RATING" : "0",
        "PATTERN" : null,

     },
     {
        "BAR_RATING" : "0",
        "Name" : "noreply-ops-jobs",
        "Name_RATING" : "0",
        "PATTERN" : null,

     }
  ]
  };
  
  var empNames = employee.Employee_Names.map(function(item) {
    return item.Name;
  });
  
  var otherNames = employee.OTHER_Name.map(function(item) {
    return item.Name;
  });  
  
  console.log("Employee Names", empNames);
  console.log("Other Names", otherNames);