用jquery解析Json
我有一个json文件,如下所示:用jquery解析Json,jquery,ajax,json,Jquery,Ajax,Json,我有一个json文件,如下所示: { "status": 200, "data": { "employeeId": "515552", "firstName": "Name", "lastName": "LastName", "locationName": "Location Name", "businessUnitName": "Unit", "workPhone": "212/46
{
"status": 200,
"data": {
"employeeId": "515552",
"firstName": "Name",
"lastName": "LastName",
"locationName": "Location Name",
"businessUnitName": "Unit",
"workPhone": "212/465-5555",
"cellPhone": "646/261-5555",
"faxNumber": "",
"assistant": "",
"email": "Name.Lastname@unit.com",
"reportsTo": [
{
"employeeId": "533953",
"firstName": "Howard",
"lastName": "Jacobs",
"jobTitle": "EVP Marketing & Sales Teams"
}
],
"departnemtId": "649654910",
"departnemtName": "Action Sports Administration",
"jobTitle": "VP Action Sports/Transform Dev"
}
}
我使用Ajax调用将数据推送到一个数组中,但我似乎无法找到正确的方法来访问reportsTo
数据。这是最后一个,我得到了未定义的:
// Load the Employee Details on the index.page
$.ajax({
url: "user-details-515552.json",
cache: true,
dataType : 'json',
success : function(results) {
var employeeData = [];
employeeData.push({
assistant: results.data.assistant,
departmentID: results.data.departnemtId,
departmentName: results.data.departnemtName,
locationName: results.data.locationName,
reportsToName: results.data.reportsTo.employeeId
});
$('#employee-details').tmpl(employeeData).appendTo('#results-container');
}
});
reportsTo是一个包含一个对象({})的数组([]),因此您需要首先访问数组的第一个元素([0]):
我认为您的问题在于:这里您尝试通过对象的属性名获取它:
reportsToName: results.data.reportsTo.employeeId
但您在前面的阵列中推动了这一点:
"reportsTo": [
{
"employeeId": "533953",
"firstName": "Howard",
"lastName": "Jacobs",
"jobTitle": "EVP Marketing & Sales Teams"
}
],
我不确定。。但我认为解决办法是
results.data.reportsTo.employeeId
到
(但不确定…)删除[]
可能更容易
$.each(json.data.reportsTo,function(k,v){
console.log(v.firstName);
});
从数组中获取单个值的步骤
console.log(json.data.reportsTo[0].firstName);
在本例中,报告to
是一个数组(请参见[
和]
?):
…因此您需要提供一个数组索引,例如:
results.data.reportsTo[ 0 ].employeeId
reportsTo是一个数组,是否存在多人的情况?
console.log(json.data.reportsTo[0].firstName);
{ // ...
"data" : {
// ...
"reportsTo": [
{ "employeeId": "533953",
// ...
}
],
// ...
}
results.data.reportsTo[ 0 ].employeeId
for (var reportsTo in results.data.reportsTo){
//use reportsTo
}