非常基本的JSON问题

我有这个JSON数据:

var people = [ { name : "John", age : 25 }, { name : "Jane", age : 49 }, { name : "Jim", age : 31 }, { name : "Julie", age : 39 }, { name : "Joe", age : 19 }, { name : "Jack", age : 48 } ]; 

我如何遍历人们内部的所有对象并输出他们的名字以及他们的年龄,如下所示:

 John 25 Jame 49 followed by the rest... 

使用for循环: http : //www.w3schools.com/js/js_loop_for.asp

 for (var i = 0; i < people.length; i++) { document.write(people[i].name + ' ' + people[i].age + '
'); }

或者jQuery中的each函数: http : //api.jquery.com/jQuery.each/

 $.each(people, function(i, o) { document.write(o.name + ' ' + o.age + '
'); });

不确定如何将其写入页面,但这是一个带有document.write的示例:

 for (var i = 0, ilen = people.length; i < ilen; i++) { document.write(people[i].name + ' ' + people[i].age + '
'); }

我强烈建议在for循环的第一个表达式中获取长度,而不是第二个。 在这种情况下, people.length不是太贵。 但是如果它代价for (var i = 0; i < people.length; i++)而你把它放在第二个表达式for (var i = 0; i < people.length; i++) ,那么它将在每个循环中得到评估,并且你想知道你的CPU周期在哪里。 :)

使用jquery,你可以做到

 $.each(people, function(){ alert(this.name + " " + this.age); }); 

如果你想将它附加到div,你就可以做到

 $.map(people, function(){ return this.name + " " + this.age + "
"; }).appendTo("#myDiv");

循环通过它们。 这些是Javascript对象文字而不是JSON,只是FYI

 for(var i = 0; i < people.length; i++) { alert(people[i].name + " " + people[i].age) } 

例如:

 var variable = { 'key': 'value' }; // object console.log(variable.key); // outputs: value var json = '{"key":"value"}'; // javascript string representing valid json console.log(json.key); // outputs: undefined var jObj = JSON.parse(json); // now a javascript object from the json string console.log(jObj.key); // outputs: value 

所以JSON只存在于javascript中作为表示。

我用的是forEach

 people.forEach(function(person) { console.log(person.name, person.age) }); 

以下是使用jquery的示例:

 var people = [ { name : "John", age : 25 }, { name : "Jane", age : 49 }, { name : "Jim", age : 31 }, { name : "Julie", age : 39 }, { name : "Joe", age : 19 }, { name : "Jack", age : 48 } ]; jQuery.each(people, function(index, person){ console.log([person.name, person.age].join(" ")) ; }); 

输出:

 John 25 Jane 49 Jim 31 Julie 39 Joe 19 Jack 48 

干得好

工作演示

标记

 

JS

 var people = [ { name : "John", age : 25 }, { name : "Jane", age : 49 }, { name : "Jim", age : 31 }, { name : "Julie", age : 39 }, { name : "Joe", age : 19 }, { name : "Jack", age : 48 } ]; $(function(){ var $people = $("#people"); $.each(people, function(){ $people.append("
").append(""+this.name+""+this.age+"
"); }); });

CSS

 #people { width:70px; text-align:right; } #people span { float:left; }