Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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
如何从JSON数组中删除元素而不删除Golang中的下一个元素_Go_Server - Fatal编程技术网

如何从JSON数组中删除元素而不删除Golang中的下一个元素

如何从JSON数组中删除元素而不删除Golang中的下一个元素,go,server,Go,Server,我有一个函数,可以从POST请求中获取ID,并删除编号等于ID的元素,代码类似: w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "POST, GET") w.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encod

我有一个函数,可以从POST请求中获取ID,并删除编号等于ID的元素,代码类似:

w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST, GET")
w.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding")

switch r.Method {
case "POST":
    body, err := ioutil.ReadAll(r.Body)
    if err != nil {
        fmt.Print(err)
        return
    }

    type row struct {
        Row int
    }
    var rowId row
    json.Unmarshal(body, &rowId)

    var id = rowId.Row
    type requestBody struct {
        Name        string
        Id          int
        Price       int
        Img         string
        Link        string
        Description string
    }
    var request requestBody
    json.Unmarshal([]byte(body), &request)

    file, _ := ioutil.ReadFile("./static/nuts.json")

    data := []requestBody{}

    json.Unmarshal(file, &data)
    data = append(data[:id])

    dataBytes, err := json.MarshalIndent(data, "", "   ")
    if err != nil {
        fmt.Print(err)
    }

    err = ioutil.WriteFile("./static/nuts.json", dataBytes, 0644)
    if err != nil {
        fmt.Print(err)
    }
}

但如果我在JSON中有3个元素,并且删除了第2个元素,那么下一个元素将删除到。我是新手,不知道如何解决这个问题。请帮帮我,答案是改变这个:

数据=追加(数据[:id])

为此:

data=append(数据[:id],数据[id+1:]…)


一切都会好起来的

@mkopriva谢谢你,现在一切都好起来了。我可以把你的答案作为答案贴出来吗?还是你自己做?继续吧,你可以把答案贴出来。