json项目显示问题

时间:2013-06-26 19:34:24

标签: jquery ajax json

我无法显示我的一些json项目,特别是所有 custom_fields 项目。 请在下面找到我的json和jquery代码。

========== JSON ==============

 {
  "status": "ok",
  "count": 1,
  "count_total": 1,
  "pages": 1,
  "posts": [
   {
  {
  "id": 89,
  "type": "events",
  "slug": "%d0%bf%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%b4%d1%8c%d0%b5",
  "url": "https:\/\/domain.com\/events\/%d0%bf%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%b4%d1%8c%d0%b5\/",
  "status": "publish",
  "title": "\u041f\u043e\u043b\u043e\u0432\u043e\u0434\u044c\u0435",
  "title_plain": "\u041f\u043e\u043b\u043e\u0432\u043e\u0434\u044c\u0435",
  "content": "<p>\u0424\u0435\u0441\u0442\u0438\u0432\u0430\u043b\u044c \u043c\u0443\u0437\u044b\u043a\u0438 \u0438 \u043c\u043e\u0434\u044b<\/p>\n",
  "excerpt": "\u0424\u0435\u0441\u0442\u0438\u0432\u0430\u043b\u044c \u043c\u0443\u0437\u044b\u043a\u0438 \u0438 \u043c\u043e\u0434\u044b",
  "date": "2013-06-25 09:26:49",
  "modified": "2013-06-26 10:18:13",
  "categories": [],
  "tags": [],
  "author": {
    "id": 1,
    "slug": "vzakharov",
    "name": "vzakharov",
    "first_name": "",
    "last_name": "",
    "nickname": "vzakharov",
    "url": "",
    "description": ""
  },
  "comments": [],
  "attachments": [],
  "comment_count": 0,
  "comment_status": "closed",
  "custom_fields": {
    "wpcf-event-date": [
      "1373130000"
    ],
    "wpcf-venue": [
      "\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0445 \u0433\u0443\u043b\u044f\u043d\u0438\u0439"
    ]
  }
}
  ]
 }

============= JQUERY =================

 $(function () {
  $.ajax({
    url: 'link_to_json',
    async: false,
    callback: 'callback',
    crossDomain: true,
    contentType: 'application/json; charset=utf-8',
    type: 'POST',
    dataType: 'jsonp',
    success: function (data, status) {
        if (data !== undefined && data.posts !== undefined) {

            $.each(data.posts, function (i, item) {
                $('#dayevent').append('<span>' + item.title + item.custom_fields[0].wpcf-venue + item.custom_fields[0].wpcf-event-date +'</span>');
            });
        }

    },
    error: function () {
        $('#news').append('No connection.');
    }
});
});

并将 wpcf-event-date 的timpestamp显示为正常日期。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这不起作用,因为您的custom_fields属性是Object,而不是数组。这意味着您的索引custom_fields[0]无法按预期工作。要从custom_fields对象中获取正确的值,您必须使用密钥对其进行索引,在本例中为wpcf-venue

item.custom_fields['wpcf-event-date']; // "1373130000"

如果你仍然感到困惑,请查看我的jsfiddle。

fiddle

编辑:关于将wpcf-event-date显示为正常日期,您可以使用我建议的momentjs等日期库,或者执行类似的操作:

Date d = new Date(1373130000 * 1000);

其中1373130000是你的unix时间戳。