gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:15:00 24 4
gpt4 key购买 nike

我有从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个元素,并删除了第二个元素,则下一个元素将删除为。我是GO的新手,我不知道如何解决此问题。帮帮我

最佳答案

答案是改变这个:

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

对此:

数据=追加(数据[:id],数据[id + 1:] ...)

一切都会正常

关于go - 如何从JSON数组中删除元素而不删除Golang中的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60947587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com