分析JQuery中的JSON响应时出错,javascript
Error in parsing the JSON response in JQuery, javascript
我得到了以下作为JSON响应,但有些索引有像"Employee 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/
您不能执行fnalObj.Employee.Ext - 1
。正确的方法是fnalObj.Employee['Ext-1']
。这是jsFiddlehttp://jsfiddle.net/naryad/VNXa5/1/
当使用fnalObj.Employee.Ext - 1
时,它被解析为undefined - 1
,然后返回NaN
同样适用于fnalObj.Employee.Mobile - 1
$.each(contactList, function(j, Contact) {
//alert('Second Loop'+Contact);
var fnalObj = Contact;
$.each(finalObj, function (key, value) {
var newKey = key.replace(/['s]'-/g, '_');
delete finalObj[key];
finalObj[newKey] = value;
});
//revised alerts here.
});
相关文章:
- javascript中的数组出错
- 使用javascript在MVC中查找网格长度时出错
- 将javascript代码转换为jquery代码时出错
- 将对象的列表c#传递给javascript:undefined变量时出错
- 使用 javascript 打开新的浏览器窗口时出错
- 比较Javascript中的两个字符串时出错
- 扩展 JavaScript Promise 时出错
- css3转换和javascript出错
- 找不到容器:goog.Disposable.instances _在为javascript工具使用泄漏查找器时出错
- 我的Javascript代码出错
- 使用Javascript将多条记录插入SQLite数据库时出错
- 在Javascript中访问Razor布尔变量时出错
- Applescript JavaScript“;行尾但找到标识符“;控制Google Chrome时出错
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- 在Tomcat中运行Javascript代码时出错
- Facebook Javascript SDK:发布到提要时验证访问令牌时出错
- switch语句中出错,Javascript
- 从 javascript 获取 MVC 控制器中的操作参数时出错
- CORS在图像拖放(在dropBox公用文件夹中)时出错-Javascript
- 剑道网格-调用javascript函数时出错:"javascript运行时错误:'funcName