javascript;循环json值不会工作

时间:2016-01-20 05:39:30

标签: javascript jquery json

我有这个json数据。但我似乎无法生态邮政阵列。它的价值是我想要追加的。

    {
  "count": 2,
  "status": "ok",
  "count_total": 2,
  "pages": 1,
  "posts": [
    {
      "id": 4,
      "type": "post",
      "slug": "nana-akufo-addo-visits-pentecost-convention-centre",
      "url": "http://akufoaddo2016.com/2016/01/17/nana-akufo-addo-visits-pentecost-convention-centre/",
      "status": "publish",
      "title": "NANA AKUFO – ADDO VISITS PENTECOST CONVENTION CENTRE",
      "title_plain": "NANA AKUFO – ADDO VISITS PENTECOST CONVENTION CENTRE",
      "content": "<p>The Presidential Candidate of the New Patriotic Party (NPP) for the 2016 elections, Nana Addo Dankwa Akufo-Addo, on Friday, January 15, 2016 made a historic visit to the ultra-modern Pentecost Convention Centre (PCC) located at Gomoa Fetteh, near Kasoa.  <a href=\"http://akufoaddo2016.com/2016/01/17/nana-akufo-addo-visits-pentecost-convention-centre/#more-4\" class=\"more-link\">Read more</a></p>\n",
      "excerpt": "<p>The Presidential Candidate of the New Patriotic Party (NPP) for the 2016 elections, Nana Addo Dankwa Akufo-Addo, on Friday, January 15, 2016 made a historic visit to the ultra-modern Pentecost Convention Centre (PCC) located at Gomoa Fetteh, near Kasoa.</p>\n",
      "date": "2016-01-17 23:56:42",
      "modified": "2016-01-17 23:56:42",
      "categories": [
        {
          "id": 2,
          "slug": "blog",
          "title": "Blog",
          "description": "",
          "parent": 0,
          "post_count": 1
        }
      ],
      "tags": [],
      "author": {
        "id": 1,
        "slug": "admin",
        "name": "admin",
        "first_name": "",
        "last_name": "",
        "nickname": "admin",
        "url": "",
        "description": ""
      },
      "comments": [],
      "attachments": [
        {
          "id": 5,
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
          "slug": "akufoaddo-pentecost-jan16",
          "title": "akufoaddo-pentecost-jan16",
          "description": "",
          "caption": "",
          "parent": 4,
          "mime_type": "image/jpeg",
          "images": {
            "full": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
              "width": 430,
              "height": 334
            },
            "thumbnail": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16-150x150.jpg",
              "width": 150,
              "height": 150
            },
            "medium": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16-300x233.jpg",
              "width": 300,
              "height": 233
            },
            "medium_large": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
              "width": 430,
              "height": 334
            },
            "large": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
              "width": 430,
              "height": 334
            },
            "post-thumbnail": {
              "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
              "width": 430,
              "height": 334
            }
          }
        }
      ],
      "comment_count": 0,
      "comment_status": "open",
      "thumbnail": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
      "custom_fields": {},
      "thumbnail_size": "post-thumbnail",
      "thumbnail_images": {
        "full": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
          "width": 430,
          "height": 334
        },
        "thumbnail": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16-150x150.jpg",
          "width": 150,
          "height": 150
        },
        "medium": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16-300x233.jpg",
          "width": 300,
          "height": 233
        },
        "medium_large": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
          "width": 430,
          "height": 334
        },
        "large": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
          "width": 430,
          "height": 334
        },
        "post-thumbnail": {
          "url": "http://akufoaddo2016.com/wp-content/uploads/2016/01/akufoaddo-pentecost-jan16.jpg",
          "width": 430,
          "height": 334
        }
      }
    },
    {
      "id": 1,
      "type": "post",
      "slug": "hello-world",
      "url": "http://akufoaddo2016.com/2016/01/13/hello-world/",
      "status": "publish",
      "title": "Hello world!",
      "title_plain": "Hello world!",
      "content": "<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>\n",
      "excerpt": "<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>\n",
      "date": "2016-01-13 21:24:36",
      "modified": "2016-01-13 21:24:36",
      "categories": [],
      "tags": [],
      "author": {
        "id": 1,
        "slug": "admin",
        "name": "admin",
        "first_name": "",
        "last_name": "",
        "nickname": "admin",
        "url": "",
        "description": ""
      },
      "comments": [
        {
          "id": 1,
          "name": "Mr WordPress",
          "url": "https://wordpress.org/",
          "date": "2016-01-13 21:24:36",
          "content": "<p>Hi, this is a comment.<br />\nTo delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.</p>\n",
          "parent": 0
        }
      ],
      "attachments": [],
      "comment_count": 1,
      "comment_status": "open",
      "custom_fields": {}
    }
  ]
}

我正在尝试使用下面的javascript代码来使用这些值,但它无法正常工作

$(document).ready(function() {
  $.ajax({
    cache: false,
      url: "(url of my api)",
    type: 'GET',
    crossDomain: true,
    dataType: 'json',
    success: function() {
        alert("Success");
    },
    error: function() {
        alert('Failed!');
    },
}).then(function(data) {
    for (var i = 0; i < post.length; i++)
    {
        var prefix = (i == 0 ? "" : i.toString());
        $('.title' + prefix).append(data[i].posts[title]);
        $('.content' + prefix).append(data[i].posts[content]);

    }
});

});

提前谢谢大家。

4 个答案:

答案 0 :(得分:3)

由于数据是一个对象而帖子是对象内部的数组,您需要以 data.posts

获取帖子
 for (var i = 0; i < data.posts.length; i++)
   {
       var prefix = (i == 0 ? "" : i.toString());
       $('.title' + prefix).append(data.posts[i]["title"]);
       $('.content' + prefix).append(data.posts[i]["content"]);
   }

答案 1 :(得分:1)

then循环之前的for部分添加此行

var post = data.posts;

您的post变量未使用data响应JSON的值进行初始化。

答案 2 :(得分:1)

希望此代码段有用

var someVar = // your json
var getPostArray = a.posts; // Will give you the posts key and its value

DEMO

答案 3 :(得分:0)

@Nighishacorrect。另外,您可以简化代码......

$(document).ready(function(){

// Enclose into a function, can be reused and managed easily ....
function loadPosts(){
    $.ajax({
        url: '',
        type: 'GET',
        crossDomain: true,
        dataType: 'json',
        cache: false
    }).then(function(data){
        // use the same variable, instead of setting into another ( eg: post = data.posts) ..
        data.posts.forEach(function(elm, idx){
            var prefix = (idx == 0 ? '': idx); // toSting() is not required ....
            $('.title' + prefix).append(elm['title']);
            $('.content' + prefix).append(elm['content']);
        });
    });
}

// invoking function finally :P ...
loadPosts();

});