我有一个有效的 json 提要,我通过使用 jquery 访问 php 文件从服务器中提取该提要。查询 php 文件返回的 json feed 示例为
{"items":[{"acc_number":"11111","acc_name":"TestAccount","demographics":["Some
Street","SomeState","99999"],"last_thirty":null,"phone":null,"sms":null,"email":null}, {"acc_number":"22222","acc_name":"MyAccount","demographics":"MyStreet","MyState","99999"],"last_thirty":null,"phone":null,"sms":null,"email":null}],"total_items":"80","md5sum":"c7a834d45bdf348abfdcdb95994c7608"}
我正在使用下面的代码,我将遍历 feed 并删除所有不为 NULL 的记录和字段。但我什么也没得到。
$.ajax({
type= 'GET',
url: 'http://MyURL.com',
dataType: 'json',
username: myusername,
password: mypassword,
success: function(data) {
var items = [];
$.each(data, function(key,val) {
items.push('<li id="' = key = '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
}
});
}
一如既往地感谢任何帮助/提示。
谢谢!
根据以下答案进行更新。
$(document).ready(function() {
testNews();
});
function testNews() {
$('body').append('<h1>News</h1>');
$('body').append('<h2>Main Display</h2>');
$('body').append("<div id='success_news_main' class='waiting'>Waiting for response</div>");
$.ajax({
type: "GET",
url: 'http://MyURL.com/news.php',
dataType: 'json',
username: myusername,
password: mypassword,
success: function(data) {
var ul = $('<ul/>').addClass('my-new-list').appendTo('body');
$.each(data.items, function(k,v) {
$('<li/>').attr('id', k).html(v).appendTo(ul);
});
}
});
}
最佳答案
尝试迭代 data.items
而不是 data
,因为这是您的集合:
success: function(data) {
var items = [];
$.each(data.items, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
...
}
此外,您的 items.push
方法似乎因多个 =
字符而损坏。您可能指的是 +
。
另一个注释是 $.each
语句中的 val 变量。它将是一个对象。您可能想从此对象中选择特定属性,例如:
items.push('<li id="' + key + '">' + val.acc_number + '</li>');
键将是数组的索引。由于 HTML 中的 id 不能以数字开头,如果您想要有效的 HTML,您可能需要在 li id 前面加上前缀:
items.push('<li id="item_' + key + '">' + val.acc_number + '</li>');
关于json - 如何向用户显示 json feed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287717/