我正在尝试解析像这样的东西
{
"popular result":[
{"term":"Summer","url":"http://summer.com"},
{"term":"Autumn","url":"http://autumn.com"},
{"term":"spring","url":"http://spring.com/"},
{"term":"winter","url":"http://winter.com/"}]
}
<script type="text/javascript">
$(document).ready(function () {
$.getJSON('/Controls/GetPopularSearches', function (json) {
for (var i = 0; i < json.length; i++) {
$.each(myJson.i, function (key, value) {
alert(value.term);
});
}
});
});
</script>
但什么都没发生!因为是数组中的数组!请让我知道如何做到这一点
答案 0 :(得分:1)
数组和对象是不同的东西。在事情真正挑战之前,你会想要更多地调查它们。
假设json
确实与您提供的对象相同(在JSON中显示为{}
),那么json['popular result']
(您可以使用.
1}}如果没有&#39;空间)是你要遍历的数组(在[]
显示的JSON中)。
出于某种原因,这种混乱让你在一个对象上循环(不会让你到任何地方,因为length
很少为它定义)然后(忽略myJson
上的拼写错误),你开始循环不存在的东西(它没有崩溃b / c它永远不会到达那里)。
清理它......
<script type="text/javascript">
$(document).ready(function () {
$.getJSON('/Controls/GetPopularSearches', function (json) {
for (var i=0;i<json['popular result'].length;i++) {
alert(json['popular result'][i].term + ' points to the URL ' + json['popular result'][i].url);
}
});
});
</script>
注意警报如何引用json
对象(您的变量名称),popular result
数组,然后[i]
是&#34;行&#34;在该数组中,以及该行上对象的term/url
元素。
注意:在您调试时运行带有大量警报的内容很烦人。查看console.log
。
答案 1 :(得分:0)
您不需要$.each
,您需要将数组集循环为包含对象内的popular result
值。
$.getJSON('/Controls/GetPopularSearches', function (json) {
var arr = json['popular result'];
for (var i = 0, l = arr.length; i < l; i++) {
console.log(arr[i].term);
}
});
答案 2 :(得分:0)
检查这个小提琴
var jsontext =
'{"popularresult":[{"term":"Summer","url":"http://summer.com"},{"term":"Summer","url":"http://summer.com"}]}';
var getContact = JSON.parse(jsontext);
for (i = 0; i < getContact.popularresult.length; i++) {
alert(getContact.popularresult[i].term);
}
答案 3 :(得分:-2)
如果你得到了jsonObject,那么
var JsonArray=json.popular; //get jsonArry
$.each(JsonArray,function(i,val){
// do logic
});
要解析json,请使用JSON.parse();