我有两种类型的JSON结果:
{
"person":{
"fname": "Homer",
"lname": "Simpson"
}
}
{
"person":[
{
"fname": "Homer",
"lname": "Simpson"
},
{
"fname": "Marge",
"lname": "Simpson"
}
]
}
我想使用jQuery“each”:
$.each(response.person, function(i, person){...
但是当JSON有一个人与多个人时,“我”和“人”是不同的。 我看到单人响应没有数组“[]”,但是当我:
$.each([response.person], function(i, person){...
然后多人不起作用。
我正在寻找一种规范事物的方法,以便我可以一致地使用“每个”。
答案 0 :(得分:6)
理想情况下,您最初会为您提供一个数组,但您始终可以.concat
将结果转换为空数组。这将允许您一致地循环:
$.each([].concat(response.person), function(i, person){...
答案 1 :(得分:4)
测试它是否是数组。
$.each(($.isArray(response.person) ? response.person : [response.person]), function(i, person){...
或者您可以在迭代之前修改对象:
if (!$.isArray(response.person)) {
response.person = [response.person];
}
$.each(response.person, function(i, person){...