簡體   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