如何解析json数组

时间:2014-06-20 12:22:53

标签: javascript json

我正在尝试解析像这样的东西

{
"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>

但什么都没发生!因为是数组中的数组!请让我知道如何做到这一点

4 个答案:

答案 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);
  }
});

Demo

答案 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);
}

http://jsfiddle.net/ae8gd/

答案 3 :(得分:-2)

如果你得到了jsonObject,那么

 var JsonArray=json.popular; //get jsonArry
 $.each(JsonArray,function(i,val){
 // do logic
 }); 

要解析json,请使用JSON.parse();