У меня есть функция, которая получает идентификатор из запроса POST и удаляет элемент с номером, равным идентификатору, с идентичным кодом:
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)
}
}
Но если у меня есть 3 элемента в JSON, и удалите 2-й элемент, следующий элемент будет удален в. Я новичок в GO, и я не знаю, как решить эту проблему. Помогите мне, пожалуйста