我的JSON如下:
{
"statistics": [
{
"total_questions": 4152031,
"views_per_day": 2198092.55,
"api_version": {
"version": "1.0",
"revision": "2012.10.30.200"
},
"site": {
"name": "Stack Overflow",
"logo_url": "http://cdn.sstatic.net/stackoverflow/img/logo.png",
"api_endpoint": "http://api.stackoverflow.com",
"site_url": "http://stackoverflow.com",
"description": "Q&A for professional and enthusiast programmers",
"icon_url": "http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png",
"aliases": [
"http://www.stackoverflow.com"
],
"state": "normal",
"styling": {
"link_color": "#0077CC",
"tag_foreground_color": "#3E6D8E",
"tag_background_color": "#E0EAF1"
}
}
}
]
}
Javascript是:
$.getJSON('json1', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="'+ statistics.data.key +'"> ' + statistics.data.val +'</li>')
});
$('<ul />', {
'class':'ulLI',
'html':items.join('')
}).appendTo('body');
});
问题是我没有正确地访问统计数组中的数据,然后访问网站对象?您能否告诉我如何访问这些对象/数组中的数据并将其附加到html?
答案 0 :(得分:3)
在$.getJSON('json1', function(data)
data
是整个对象
您需要遍历data.statistics
这是一个数组
$.each(data.statistics, function( index, item){
/* here you access properties like "total_questions"*/
var totalQ= item.total_questions;
})
编辑:在JSON中显示data.statistics
数组只有一个元素。如果这始终为真,您可以跳过each
循环并使用javascript表示法获取数组的第一个元素:
var nestedData= data.statistics[0];
var totalQ= nestedData.total_questions;
如果您希望在不知道其键的情况下遍历所有属性,则需要更多代码来检查属性是对象,数组还是字符串,如果它是对象或数组,则递归循环执行相应的检查和处理。
您还需要提供有关如何在html
中输出嵌套对象的更多详细信息答案 1 :(得分:0)
如果要打印网站对象内的所有内容,这将有效
$.getJSON('your json file path', function(data) {
var items = [];
$.each(data.statistics[0].site, function(key, val) {
items.push('<li id="'+ key +'"> ' + JSON.stringify(val) +'</li>')
您作为文件路径提供的内容似乎不正确。