javascript - 在 JQuery、javascript 中解析 JSON 响应时出错

标签 javascript jquery json cordova

我收到的是 JSON 响应,但一些索引包含“员工 ID”等空格。这就是为什么我无法解析它。谁能建议用 JavaScript 解析它的方法?

{
    "Employees": [
        {
            "Employee": {
                "Employee ID": "777",
                "Short Name": "abc",
                "First name": null,
                "Middle name": null,
                "Last name": null,
                "Designation": "Senior Engineer",
                "Ext-1": null,
                "Ext-2": null,
                "Mobile-1": null,
                "Mobile-2": null,
                "Email": "a.b@gmail.com"
            }
        },
        {
            "Employee": {
                "Employee ID": "888",
                "Short Name": "xyz",
                "First name": null,
                "Middle name": null,
                "Last name": null,
                "Designation": "Test Lead",
                "Ext-1": null,
                "Ext-2": null,
                "Mobile-1": null,
                "Mobile-2": null,
                "Email": "c.d@gmail.com"
            }
        }
    ]
}

我的代码-

 function GetContacts() {
    $.ajax({
        type: "GET",
        contentType: 'application/json; charset=utf-8',
        url: "http://. . . . . .",

        dataType: "json",
        success: function(data) {

            //alert(data.getString("Employee ID"));
            $.each(data, function(i, contactList) {

                alert('First Loop' + i);
                alert('First Loop' + contactList[0]);

                $.each(contactList, function(j, Contact) {
                    //alert('Second Loop'+Contact);
                    var fnalObj = Contact;
                    //alert(fnalObj);
                    //alert(fnalObj.["Employee"]["Employee ID"]);
                    //alert(Employees[j]["Employee"]["Email"]);
                    //alert(Employees[0]["Employee"]["Employee ID"]);
                    alert(fnalObj.Employee.Email);
                    alert(fnalObj.Employee.Designation);
                    alert(fnalObj.Employee.Ext - 1);
                    alert(fnalObj.Employee.Mobile - 1);
                });
            });
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert(errorThrown);
            alert(textStatus);
        }
    });
}

最佳答案

解析没问题。

问题是访问由非字母数字字符组成的键,例如空格、破折号等。

这些属性必须像这样用 [] 符号处理

alert(fnalObj.Employee['Employee ID']);
alert(fnalObj.Employee['Ext-1']);

演示在 http://jsfiddle.net/h9sbn/

关于javascript - 在 JQuery、javascript 中解析 JSON 响应时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7819981/

相关文章:

javascript - Angular2嵌套组件: Error: core_2.输入不是函数加载http ://localhost:9080/app/boot. js时出错

javascript - Backbone.js:获取模型集合并渲染它们

javascript - 将 OrbitalControl 添加到 Three.js 会导致 TypeError

javascript - 在 foreach 循环中调用 JavaScript 函数

javascript - JavaScript 中的一行 if/else

javascript - jquery JSON 从查询字符串中删除分隔符

jquery - :contains for multiple words

jquery - KnockoutJS 映射模型添加到 Observable 数组

javascript - 默认情况下,按钮通过 javascript 获取不正确的 PHP 值

javascript - 删除具有特定内容的表 tr