繁体   English   中英

如何使用jQuery从REST API中仅返回JSON对象的一部分

[英]How to return only part of JSON object from REST API with JQuery

因此,我一直在尝试找出一种方法,该方法仅使用JQuery从REST API调用中返回特定的键值对。 我要打的最初电话是:

jQuery.ajax({
    type: "GET",
    url: "https://BASEURL/api/project-type/list-all",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    beforeSend: function ()
    {
        $('#projectTypeListLoading').text("Loading...");
    },
    success: function (data, status, jqXHR)
    {
        var trHTML = "";
        $.each(data, function (i, item)
        {
            trHTML += '<tr><td>' + item.Name + '</td><td>' + item.Code + '</td><td>'
                + item.Order + '</td><td>' + item.IsActive + '</td><td>' + item.Id + '</td></tr>';
        });
        $('#projectTypesTable').append(trHTML);
        $('#projectTypeListLoading').html("DONE");
    },

    error: function (jqXHR, status)
    {
        $('#projectTypeListLoading').html("Error loading list");
    }
});

这样,我可以从REST API中获取JSON对象的列表,如下所示:

[{"Name":"Project Type 2","Code":"2","Order":2,"IsActive":true,"Id":"c497e4e8-16b4-44e2-b6ac-a9a2c392d9d4"},{"Name":"Project Type 3","Code":"3","Order":3,"IsActive":true,"Id":"6da2a240-2327-4260-a6df-f4bec25535c2"}]

然后,将它们用于Ajax成功部分,并将其粘贴到表中。 完美运作。 但是,我想发生的是仅说出JSON对象的Name键值对部分作为我的REST API的响应。 像这样:

[{"Name":"Project Type 2"},{"Name":"Project Type 3"]

然后在我的成功函数中使用:

success: function (data, status, jqXHR)
    {
        var trHTML = "";
        $.each(data, function (i, item)
        {
            trHTML += '<tr><td>' + item.Name + '</td></tr>';
        });
        $('#projectTypesTable').append(trHTML);
        $('#projectTypeListLoading').html("DONE");
    },

我可以通过两种不同的方式来实现此结果。 我可以:

  • 将我的REST API调用更改为“ https:// BASEURL / api / project-type / name ”。 并调用此方法,让API仅返回名称。 我不想这样做,因为我有20个不同的url已经返回了所有URL,因此我不会制作单独的URL来分别访问每个URL的每个键值。

  • 在我的初始示例中得到所有类似信息,然后忽略每个不是“名称”的键/值对。 这可以满足我的要求,但要点是将有数百个此类调用正在进行。 这些调用中的每一个都将返回完整的JSON对象,然后将其缩减; 那是很多不必要的chat不休。 我宁愿指定要减少服务器负载的键值对。

关于如何实现这一目标的任何建议? 谢谢。

REST端点对此没有简单的答案。 这正是创建GraphQLFalcorOData和许多其他库来解决的确切问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM