有两行JSON数据存储为字符串
First Row - {"content":[{"title":"Test1","desc":"Team1","image":"http://team.jpg"}],"leftnav":[{"navtitle":"Nav One","navdesc":"One Link","navimage":"http://plan.jpg"}]}
Second Row - {"content":[{"title":"Test2","desc":"Team2","image":"http://group.jpg"}],"leftnav":[{"navtitle":"Nav Two","navdesc":"Two Link","navimage":"http://graph.jpg"}]}
使用每个函数我遍历每一行并尝试访问数据,如下所示
其中“resultRegionArr”是对象的对象
$(resultRegionArr).each(function(x){
var str = resultRegionArr[x].testdata;// str is assigned each row at a time
var finalobj = JSON.parse(str); // String is been converted to objects
alert(finalobj.leftnav[x].navtitle);
}
第一次迭代,即finalobj.leftnav [0] .navtitle我能够得到正确的结果 - Nav One
第二次迭代,即finalobj.leftnav [1] .navtitle我收到错误finalobj.leftnav [x]未定义。
提前致谢
答案 0 :(得分:1)
那是因为没有leftNav [1]。您的数组只包含一个对象:
"leftnav":[{"navtitle":"Nav Two","navdesc":"Two Link","navimage":"http://graph.jpg"}]
改变这个:
alert(finalobj.leftnav[x].navtitle);
到此:
alert(finalobj.leftnav[0].navtitle);
答案 1 :(得分:0)
此代码没有意义。使用foreach应该将值作为回调函数中的第一个参数返回。你可以使用那个值来做事。其次,使用最后一行中的x值看起来很奇怪,因为它用于在解析的JSON中检索某些内容,同时您还使用它从初始数组中检索数据。总而言之,我认为您首先需要重新考虑代码。
答案 2 :(得分:0)
var str = resultRegionArr[x].testdata;// str is assigned each row at a time
var finalobj = JSON.parse(str); // String is been converted to objects
alert(finalobj.leftnav[0].navtitle);
试试这个。