我正在努力学习一些JSON。我已经搜索过高低,并且读了很多,试图抓住这个但是不断下降。任何帮助都将非常感激。
我目前有这个设置:
$.getJSON('works/api', function(r) {
$.each(r, function(i, article) {
console.log(article);
});
});
works/api
有JSON:
{"data":[{"title":"A Quick Perspective of the Future","description":"Installation view, Site Gallery, Sheffield"},{"title":"132Kv PL-16","description":"Single colour offset print 700 x 480mm"},{"title":"LKA V.2","description":"Installation view B&B Gallery, Sheffield"},{"title":"LKA V.2","description":"Installation view B&B Gallery, Sheffield"},{"title":"Hyperbolic Paraboloid Roof","description":"Single colour offset print 700 x 480mm"},{"title":"Road and Rail Links Between Sheffield and Manchester","description":"Gelatin silver print"}]}
由以下人员创建:
<?php
$data = $pages->find('works')->children()->visible();
$json = array();
$json['data'] = array();
foreach($data as $article) {
$json['data'][] = array(
'title' => (string)$article->title(),
'description' => (string)$article->description(),
);
}
echo json_encode($json);
?>
我正在尝试检索&#39;标题&#39;和&#39;描述&#39;来自JSON的值,然后我可以继续将它们附加到站点上的div。
答案 0 :(得分:2)
r
是一个对象,其数组的键为data
,因此您需要迭代r.data
$.each(r.data, function(i, article) {
console.log(article);
});
答案 1 :(得分:1)
像这样:
$.getJSON('works/api', function(r) {
r.data.forEach( function(d) {
console.log(d.title);
});
});
即。首先获取data
部分,然后迭代data
数组中的所有对象并打印其title
。
或者$.each
:
$.getJSON('works/api', function(r) {
$.each(r.data, function(d) {
console.log(d.title);
});
});
答案 2 :(得分:1)
哪一部分失败?假设你的getJSON有效并且你实际上得到了有效的r
,那么你可能需要在$.each
上进行r.data
,因为r
只是一个对象。 / p>