我刚刚开始使用jquery学习json而且我遇到了一些困难,我花了两天时间,我在youtube和博客上都有很多教程,但他们展示的不是我的情况。他们的json与我的不同。他们有多个钥匙,我只有一个“新闻”
来自我得到的服务器的JSON响应是这样的:
{
"news":[
{
"id":48927,
"name": "The title goes right here",
"url": "www.example.com",
"date":"16 August 2013",
"image":"img.example.com\/image.jpg"
},
{
"id": 48908,
"name":"The title goes right here — photography",
"url":"www.example.net",
"date":"17 August 2013",
"image":"img.example.net\/image2.jpg"
}
]
}
实际上我从服务器得到的更像是这样:
{"news":[{"id":48927,"name": "The title goes right here","url": "www.example.com","date":"16 August 2013","image":"img.example.com\/image.jpg"},{"id": 48908,"name":"The title goes right here — photography","url":"www.example.net","date":"17 August 2013","image":"img.example.net\/image2.jpg"}]}
但他们都有效!我已经用JSON LINT检查了。
所以我无法做的是从JSON获取所有信息并将它们附加到我的#posts
我已经尝试了 $。getJSON & $。ajax 但是未定义作为回复
$(document).ready(function() {
$.ajax({
url: 'http://s.example.com/myjson.php',
data: 'GET',
dataType: 'json',
success: function(data){
$('#posts').append('name: ' + data.news.id + '<br/>');
},
});
});
在上面的代码中,我尝试使用 data,data.id,data.news,data.url 等附加,但总是得到undefined或null。
$(document).ready(function() {
$.getJSON("http://s.example.com/myjson.php", function(data) {
$.each(data, function(key, value) {
$("#posts").append("<li>"+data.news+"</li>");
});
});
});
与 $。ajax 相同,尝试添加不同的内容,但没有。
我想要做的是为我的json文件中的每个“事物”附加所有数据id,name,url,date,image。但不幸的是,我一开始就陷入困境。这真的令人沮丧,因为它看起来很简单,但我无法找到办法。请帮帮我!!
答案 0 :(得分:1)
在您的成功函数中,循环遍历新闻数组中的所有元素:
for (var i=0; i < data.news.length; i++) {
$('#posts').append('name: ' + data.news[i].id + '<br/>');
}
答案 1 :(得分:0)
在您的JSON中,news
是数组。
您需要从数组中的元素获取属性:
data.news[42].id
你需要找出要获得的元素。
答案 2 :(得分:0)
data.news
是一个数组,因此您必须遍历它以获取所有值
$(document).ready(function() {
$.getJSON("http://s.example.com/myjson.php", function(data) {
$.each(data.news, function(key, value) {
$("#posts").append("<li>"+value.id+"</li>");
});
});
});