用jquery解析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

我有一个json文件,如下所示:

{
    "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
}