Javascript 如果json节点只有一个子节点,则$each在该节点上不起作用。咖啡脚本
所以我尝试遍历一个json对象,但我不知道它是有一个子对象还是有多个子对象。我正在使用$。每个jquery函数与coffee脚本如下:Javascript 如果json节点只有一个子节点,则$each在该节点上不起作用。咖啡脚本,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,所以我尝试遍历一个json对象,但我不知道它是有一个子对象还是有多个子对象。我正在使用$。每个jquery函数与coffee脚本如下: $.each data.searchresults.response.results.result, (i) -> count = i + 1 console.log data.searchresults.response.result.address.street 现在,如果“result”节点有两个实例,那么这就可以工作了;但是,当它只有一个
$.each data.searchresults.response.results.result, (i) ->
count = i + 1
console.log data.searchresults.response.result.address.street
现在,如果“result”节点有两个实例,那么这就可以工作了;但是,当它只有一个实例时,它不工作。我的问题是,我是否以次优的方式编写$。每个函数和/或两个我应该只检查存在多少个结果节点,然后决定循环还是只访问该节点
带有两个的JSON:
带有一个的JSON:
运行多个结果节点时没有错误,但以下是仅使用一个结果节点运行时的错误:
TypeError:“undefined”不是一个对象(正在评估“data.searchresults.response.results.result[i].address.street”)所以我遇到的问题(我知道很愚蠢)是在。每个函数我都使用完整的对象路径[i]来访问对象的正确迭代
所以不要使用这个console.log data.searchresults.response.result[i].address.street
我将脚本调整为如下所示:
$.each data.searchresults.response.results.result, (i,result) ->
count = i + 1
console.log result.address.street
json节点
听起来有点可疑。这是XML而不是JSON循环对于任何数量的节点/元素都可以正常工作-如果有0,它不会循环,如果有更多,它将循环多少。确保结果的格式相同,因为“$.each”需要一个对象或数组,而您的结果很可能是一个对象数组