Rest API показывает [объект объекта] вместо объектов массива - PullRequest
0 голосов
/ 12 января 2019

Я использую Rest API для извлечения данных из списка SharePoint и отображения результатов на веб-странице. Как я смогу нацелить эти два элемента массива? Все, что я получаю обратно в [объект объекта] [enter image description here

Материал, выделенный зеленым цветом, означает, что он успешен, а красный означает, что у меня все еще есть проблемы.

Таким образом, я могу правильно получить номер франшизы, который помечен как «Название», но я не могу извлечь результаты из «RelatedIssues -> results -> Title» из массива, как бы я мог сделать это?
enter image description here

Вот изображение консоли, показывающее, что я могу видеть массив и что он вытягивает оба заголовка RelatedIssues. enter image description here

Код:

<style>
.top {
    margin-bottom: 15px;
}
.csv, .txt, .xls, .xlsx {
    margin-right: 4px;
    margin-left: 4px;
}
</style>

<div id="title" style="width: 100%"></div>

<script>
$(document).ready(function() {
    var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('HISC Franchise Information 2017')/items?$select=Title,RelatedIssues/Title&$expand=RelatedIssues";
    $.ajax({
        url: requestUri,
        type: "GET",
        headers: {
            "accept":"application/json; odata=verbose"
        },
        success: function(data) {
            onSuccess(data);
            ExportTable();
        }
    });

    function onSuccess(data) {
        var item = data.d.results;
        var tableContent = '<table id="TablePanel" border="1px;"><thead><tr><th>Franchise Number</th>' + '<th>Rank</th>' + '<th>Franchises</th>' + '</tr></thead><tbody>';
        for (var i = 0; i < item.length; i++) {
            tableContent += '<tr>'
            tableContent += '<td>' + item[i].Title + '</td>';
            tableContent += '<td>' + item[i].RelatedIssues.results + '</td>';
            tableContent += '<td>' + item[i].Franchises + '</td>';
            tableContent += '</tr>';
            tableContent += '</tbody></thead>';
        }
        $('#title').append(tableContent);
    }

    function ExportTable() {
        $("tableContent").tableExport({
            headings: true,
            footers: true,
            formats: ["xls", "csv", "txt"],
            fileName: "id",
            bootstrap: true,
            position: "top",
            ignoreRows: false,
            ignoreCols: false,
            ignoreCSS: ".tableexport-ignore"
        });
    }
});
</script>

1 Ответ

0 голосов
/ 12 января 2019

Я думаю, вам нужно будет отобразить результат, чтобы получить то, что вам нужно. В вашем случае это может быть что-то вроде

tableContent += '<td>' + item[i].RelatedIssues.results.map(r => r.Title).join(',') + '</td>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...