javascript - jquery 数据表从 web API 接收到不正确的 json

标签 javascript jquery json ajax asp.net-web-api

我无法从 ajax 命令填充 jQuery 数据表。

这是 webAPI 代码(UtentiController):

' GET: api/Utenti
    <HttpGet>
    Public Function GetUtentis() As IEnumerable(Of Utenti)
         Using WFe As WorkForceEntities = New WorkForceEntities
            Return WFe.Utentis.ToList
         End Using
    End Function

这是客户端代码:

    <script>
    $(document).ready(function () {
        var oTable = $('#myDatatable').DataTable({
            paging: true,
            sort: true,
            searching: true,
            "ajax": {
                "url": '/api/utenti/',
                "type": "get",
                "datatype": "json",
                error: function (xhr, status, error) {
                    alert(xhr.responseText);
                }
            },
            "columns": [
                { "data": "Nome", "autoWidth": true },
                { "data": "Cognome", "autoWidth": true },
                { "data": "Username", "autoWidth": true },
                { "data": "GruppoDiLavoro", "autoWidth": true },
                { "data": "ProfiloFunzionalità", "autoWidth": true },
              ]
        })


    })
</script>

我认为问题出在 json 字符串上。 ajax 命令返回不正确的 json,缺少初始子字符串 {"data":

[ { "IDutente": 2, "Operatore": "Admin", "Password": "1234", "LivelloDiAccesso": 1, "Nome": "Admin", "Cognome": "Admin", "Username": "Admin", "GruppoDiLavoro": "Admin", "ProfiloFunzionalità": "Admin", "Attivo": true, "DataCreazione": "2017-08-30T00:00:00", "DataScadenza": "2025-12-31T00:00:00", "Mail": "nothing" }, { "IDutente": 3, "Operatore": "MS", "Password": "1234", "LivelloDiAccesso": 2, "Nome": "Admin", "Cognome": "S", "Username": "M", "GruppoDiLavoro": "Admin", "ProfiloFunzionalità": "Admin", "Attivo": true, "DataCreazione": "2017-08-30T00:00:00", "DataScadenza": "2025-12-31T00:00:00", "Mail": "nothing" } ]

如果我像这样加载一个 json 文件 ("ajax": "../UtentiData.json",)

{ "data": [ { "IDutente": 2, "Operatore": "Admin", "Password": "1234", "LivelloDiAccesso": 1, "Nome": "Admin", "Cognome": "Admin", "Username": "Admin", "GruppoDiLavoro": "Admin", "ProfiloFunzionalità": "Admin", "Attivo": true, "DataCreazione": "2017-08-30T00:00:00", "DataScadenza": "2025-12-31T00:00:00", "Mail": "nothing" }, { "IDutente": 3, "Operatore": "MS", "Password": "1234", "LivelloDiAccesso": 2, "Nome": "Admin", "Cognome": "S", "Username": "M", "GruppoDiLavoro": "Admin", "ProfiloFunzionalità": "Admin", "Attivo": true, "DataCreazione": "2017-08-30T00:00:00", "DataScadenza": "2025-12-31T00:00:00", "Mail": "nothing" } ] }

代码运行良好,jQuery 数据表已正确填充。

我该怎么做才能很好地使用 Json webAPI? 谢谢

最佳答案

您可以使用“平面数组数据源”。

将您的代码更改为:

<script>
$(document).ready(function () {
    var oTable = $('#myDatatable').DataTable({
        paging: true,
        sort: true,
        searching: true,
        "ajax": {
            "url": '/api/utenti/',
            "type": "get",
            "dataSrc": "",
            error: function (xhr, status, error) {
                alert(xhr.responseText);
            }
        },
        "columns": [
            { "data": "Nome", "autoWidth": true },
            { "data": "Cognome", "autoWidth": true },
            { "data": "Username", "autoWidth": true },
            { "data": "GruppoDiLavoro", "autoWidth": true },
            { "data": "ProfiloFunzionalità", "autoWidth": true },
          ]
    })


})

参见 example .

关于javascript - jquery 数据表从 web API 接收到不正确的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033169/

相关文章:

Javascript:处理 GET 错误 (document.createElement)

javascript - Amchart 类别轴中的时间戳显示为“未定义”

javascript - 提交表单时(验证之前)立即显示模式

json - 将 JSON 文件导入 MS Access 表

php - 从 php 获取 JSON 编码的变量

Javascript/Lodash/Redux - 从对象返回具有特定 id 的对象

javascript - 检测 Firefox < 3.6

javascript - 在 mongodb 中,从文档中获取单个字段的数组的最简单方法是什么

javascript - 在 Ajax 加载时滚动到项目底部

javascript - jQuery Datepicker - 将第一个选择器设置为限制为第二个选择器的事件周