【发布时间】:2018-07-13 15:25:51
【问题描述】:
通过使用 go api,我正在检索一个数组对象。如下所示:-
[
{0 1 Sunday 1 21600 25200 1}
{0 1 Sunday 2 28800 32400 2}
{0 1 Sunday 3 36000 39600 1}
]
这些数据将使用 struct:-
进行排列type ProviderSpot struct {
Id int `json:"_id" bson:"_id"`
PId int `json:"pid" bson:"pid"`
Day string `json:"day" bson:"day"`
TimeSlug int `json:"time_slug" bson:"time_slug"`
StartTime int64 `json:"start_time" bson:"start_time"`
EndTime int64 `json:"end_time" bson:"end_time"`
Count int `json:"count" bson:"count"`
}
type ProviderSpots []ProviderSpot
在数组对象中看到我在每个对象1,2,1 中都有一个计数值,然后我必须像那些具有count 的记录一样存储这条记录,它们将存储在available_spot 中仅一次意味着上部记录将只在集合中保存一次有count value 1 之后左边的记录将保留在那里计数值0,1,0 然后
那些有count字段值超过0的记录,他们将在addition_spot中保存count value的次数。我使用的golang代码是这样的:-
func SaveProviderSpot(c *gin.Context) {
response := ResponseController{}
values := c.PostForm("array")
var err error
byt := []byte(values)
var result models.ProviderSpots
if err = json.Unmarshal(byt, &result); err != nil{
fmt.Println(err)
}
fmt.Println(result)
for i := 0; i < len(result); i++ {
lastValue :=result[i].Count-1
if lastValue != -1 {
providerspot.PId = result[i].PId
providerspot.Day = result[i].Day
providerspot.TimeSlug = result[i].TimeSlug
providerspot.StartTime = result[i].StartTime
providerspot.EndTime = result[i].EndTime
providerspot.Count = result[i].Count - lastValue
id, _ := models.GetAutoIncrementCounter(config.ProvidersSpotsCounterId, config.ProvidersSpotsCollection)
providerspot.Id = id
fmt.Println("Here We go now :- ", &providerspot)
err = models.AddProviderSpot(&providerspot)
}
}
}
举一些例子来解决这个问题。感谢您在这个问题上花费宝贵的时间。
【问题讨论】: