我在和一些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);
?>我正在尝试从JSON检索'title‘和'description’值,这样我就可以继续将它们附加到站点上的div中。
发布于 2014-03-21 00:19:23
r是一个具有键为data的数组的对象,因此您需要迭代r.data
$.each(r.data, function(i, article) {
console.log(article);
});发布于 2014-03-21 00:19:43
如下所示:
$.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);
});
});发布于 2014-03-21 00:20:43
具体哪一部分失败了?假设您的getJSON工作并且实际上得到了一个有效的r,那么您可能需要在r.data上执行$.each,因为r只是一个对象。
https://stackoverflow.com/questions/22547799
复制相似问题