【发布时间】:2020-06-30 13:37:18
【问题描述】:
我收到以下 JSON 作为响应
{
"user_details": [
{
"Name": "Mark"
},
{
"Age": "35"
},
{
"Gender": "Male"
},
{
"Country": "US"
}]
}
我正在解析这个JSON,如下所示
var ajaxresponse = response.user_details;
if (ajaxresponse.length > 0)
{
var Name = ajaxresponse[0].Name;
var Age = ajaxresponse[1].Age;
var Gender = ajaxresponse[2].Gender;
var Country = ajaxresponse[3].Country;
console.log(Name);
}
这工作正常。
我的问题是,如果 JSON 中的任何一个键缺失,例如 "Name" 缺失,它就会中断并且我变得不确定
是否可以先检查是否存在,然后再检索?
https://jsfiddle.net/o2gxgz9r/9078/
关于答案,我将我的 json 修改为
{
"user_details": [
{
"Name": "Mark",
"Age": "35",
"Gender": "Male",
"Country": "US"
}
]
}
但是 hasOwnProperty 不起作用?
请看这个小提琴
【问题讨论】:
-
您需要重构该 JSON。
user_details中的数组是不必要的,并且无法预测给定字段名称的数组索引(如果缺少“名称”,则所有其余部分都向下移动。)只需将其设为普通的旧对象即可。 -
重新更新:这样更好,但仍然不需要数组!只需使用普通对象,例如
"user_details": { "Name": "Mark", "Age": "35" }
标签: jquery