每个getJSON值

时间:2014-03-21 00:17:01

标签: javascript jquery json

我正在努力学习一些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。

3 个答案:

答案 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>

相关问题