2013-06-26 3 views
1

Я не могу получить некоторые из отображаемых предметов json, в частности все custom_fields. Ниже приведен код json и jquery.json item display issue

========== 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.'); 
    } 
}); 
}); 

И показать timpestamp из wpcf-событийного даты как обычный день. Благодарим вас за помощь.

ответ

1

Это не работает, потому что ваше свойство custom_fields - это номер Object, а не массив. Это означает, что ваш индекс custom_fields[0] не будет работать так, как вы планируете. Для того, чтобы получить правильное значение из ваших custom_fields объекта вы должны индексировать с ключом, который в данном случае является wpcf-venue

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

Смотрите мой jsfiddle, если вы до сих пор путают.

fiddle

EDIT: касаемо показывая wpcf-event-date как обычный день вы можете использовать дату библиотеки, такие как momentjs, которые я бы рекомендовал, или сделать что-то похожее на это:

Date d = new Date(1373130000 * 1000); 

Где 1373130000 это ваша временная метка unix.

+0

Спасибо, Браден. Я загрузил momentjs, но не знаю, как отображать временную метку в правильном формате от json, можете ли вы, пожалуйста, показать мне в вас jsfiddle, пожалуйста? – qqruza

+0

момент (myobj.custom_fields ['wpcf-event-date'] * 1000) Должен работать, но я не пробовал его в скрипке. – Braden

+0

, похоже, не работает. json появляется в момент (1373130000 * 1000), но дата вообще не отображается. ;-(Очень очень отчаянный. Пожалуйста, помогите ... – qqruza