Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JQuery从RESTAPI仅返回JSON对象的一部分_Javascript_Jquery_Rest - Fatal编程技术网

Javascript 如何使用JQuery从RESTAPI仅返回JSON对象的一部分

Javascript 如何使用JQuery从RESTAPI仅返回JSON对象的一部分,javascript,jquery,rest,Javascript,Jquery,Rest,所以我一直在试图找到一种方法,使用JQuery从RESTAPI调用中只返回一个特定的键值对。我的第一个电话是: jQuery.ajax({ type: "GET", url: "https://BASEURL/api/project-type/list-all", contentType: "application/json; charset=utf-8", dataType: "json", beforeSend: function () {

所以我一直在试图找到一种方法,使用JQuery从RESTAPI调用中只返回一个特定的键值对。我的第一个电话是:

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");
    }
});
然后我在Ajax成功部分中使用它们,并将它们放在一个表中。工作完美。然而,我希望发生的是,只从restapi获得JSON对象的Name-key-value对部分作为响应。像这样:

[{"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");
    },
success:函数(数据、状态、jqXHR)
{
var trHTML=“”;
$。每个(数据、功能(i、项)
{
trHTML+=''+项目名称+'';
});
$('#projectTypesTable').append(trHTML);
$('#projectTypeListLoading').html(“完成”);
},
我可以通过两种不同的方式实现这个结果。我可以:

  • 将REST API调用更改为“”。并调用它,让API只返回名称。我不想这样做,因为我有20个不同的URL,它们已经返回了所有的URL,我不会创建一个单独的URL来分别访问这些URL中的每个键值

  • 在我的初始示例中得到所有类似的结果,然后忽略每个不是“Name”的键值对。这将满足我的要求,但关键是,将有数百个这样的电话在进行。每一个调用都会返回完整的JSON对象,然后我会减少它;那是很多不必要的闲聊。我希望能够指定要减少服务器负载的键值对


有没有关于如何实现这一目标的建议?谢谢

对于REST端点,没有简单的答案。这正是我们和许多其他库所要解决的问题

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");
    },