Разбор json в jQuery с опцией «загрузить больше» - PullRequest
1 голос
/ 05 октября 2011

У меня есть действительные данные в jquery, как зациклить каждый элемент, который я получаю обратно, и отобразить его в HTML-контейнере div.Спасибо

т.е.

элемент 1 изображение 123 элемент 2 изображение 123

{"ERRORS":[],"DATA":[{"itemValidFrom":"October, 25 2011 00:00:00","itemActive":true,"itemTxt":"test","itemID":"30d2f2c1-58ca-4b3d-b3e0-d284ae5b25ab","itemValidTo":"October, 19 2011 00:00:00","itemName":"test","itemModified":"October, 05 2011 00:00:00","itemCreated":"October, 03 2011 00:00:00","image":{"imageCreated":"October, 05 2011 00:00:00","imageURL":"firefox-girl.jpg","imageID":"bc869a94-fee5-4fc8-bd21-e2de2f020310"}],"MESSAGES":[{"CURRENTPAGE":1.0,"TOTALPAGES":1.0}]}

<script type="text/javascript">
    jQuery(document).ready(function(){

    jQuery.ajax({
    type: 'get',
    url: 'api/default.php/id/0f4addd8',
    data: 'apiKeytest=182j&?perPage=2&currentPage=1',
    dataType: "json",
    context: document.body,
    success: function(r) {
    jQuery('#posts-container').replaceWith(r);
            console.log(r);
                        }

    });

    });

</script>


<!-- Widget HTML Starts Here -->
<div id="posts-container">
    <!-- Posts go inside this DIV -->
    <div id="posts"></div>
    <!-- Load More "Link" -->
    <div id="load-more">Load More</div>
</div>
<!-- Widget HTML Ends Here -->

1 Ответ

0 голосов
/ 05 октября 2011

Вы можете пройтись по данным json с помощью цикла for и создать свой собственный вывод для добавления в DOM:

success: function(r) {
    var output = '';
    for (a in r.DATA) {
        for (b in r.DATA[a]) {
            if (typeof(r.DATA[a][b]) == 'object') {
                for (c in r.DATA[a][b]) {
                    output += c + ' = ' + r.DATA[a][b][c] + '<br />';
                }
            } else {
                output += b + ' = ' + r.DATA[a][b] + '<br />';
            }
        }
    }
    jQuery('#posts-container').append(output);
}

a соответствует каждому ключу в объекте, возвращаемом вашим ajax-вызовом.

Я создал jsfiddle из приведенного выше кода и заметил, что в выводе json, который вы опубликовали в своем вопросе, есть ошибка; закрывающая скобка (}) была опущена в конце массива DATA (который имеет только один ключ, 0).

Вот ссылка на jsfiddle: http://jsfiddle.net/EpjyH/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...