我有两种类型的JSON结果:
{
"person":{
"fname": "Homer",
"lname": "Simpson"
}
}
{
"person":[
{
"fname": "Homer",
"lname": "Simpson"
},
{
"fname": "Marge",
"lname": "Simpson"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想使用jQuery"each":
$.each(response.person, function(i, person){...
Run Code Online (Sandbox Code Playgroud)
但是当JSON有一个人与多个人时,"我"和"人"是不同的.我看到单人响应没有数组"[]",但是当我:
$.each([response.person], function(i, person){...
Run Code Online (Sandbox Code Playgroud)
然后多人不起作用.我正在寻找一种规范化事物的方法,以便我可以持续使用"每个".
理想情况下,您最初会为您提供一个数组,但您可以.concat将结果始终设置为空数组.这将允许您始终如一地循环:
$.each([].concat(response.person), function(i, person){...
Run Code Online (Sandbox Code Playgroud)
测试它是否是一个数组。
$.each(($.isArray(response.person) ? response.person : [response.person]), function(i, person){...
Run Code Online (Sandbox Code Playgroud)
或者您可以在迭代之前修改对象:
if (!$.isArray(response.person)) {
response.person = [response.person];
}
$.each(response.person, function(i, person){...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |