使用HTTP请求从对象内的数组中删除项目?

时间:2018-10-03 02:25:54

标签: javascript arrays ajax object xmlhttprequest

很抱歉沙拉标题这个词,我不知道该怎么形容。

说我将GET请求发送到API,它发出了这个请求:

{
    {id: 1, name: "John Doe", tags: ["Apple", "Orange", "Pear"]},
    {id: 2, name: "Jane Doe", tags: ["Grape", "Banana", "Strawberry"]},
    {id: 3, name: "James Smith", tags:["Grapefruit", "Lemon", "Apricot"]}
}

如果我想删除整个第二个对象,我知道可以使用以下方法做到这一点:

var request = new XMLHttpRequest();
request.open('DELETE', APIurl + "/2", true);
request.send();

但是,例如,如果我只想从第二个对象中删除“香蕉”标签,我不确定该怎么办。 我可以删除该对象,然后在删除标签的情况下重新添加它,但是肯定有更简单的方法吗?

这可能是一个愚蠢的问题,但是我对API没有太多的经验,我无法通过谷歌搜索来解决这个问题。

1 个答案:

答案 0 :(得分:0)

当然,您必须使用PUT方法请求来执行此操作,这可能会产生某种想法

var data = {};
data.tags = ["Grape", "Strawberry"];
var data_json = JSON.stringify(data);

request.open("PUT", APIurl+'/2', true);
request.setRequestHeader('Content-type','application/json; charset=utf-8');
request.onload = function () {
    var result = JSON.parse(request.responseText);
    if (request.readyState == 4 && request.status == "200") {
       console.table(result);
   } else {
       console.error(result);
   }
}
request.send(data_json);