我正在尝试从这种json格式创建一个动态循环,我可以像索引0,1,2中的航路点以及其他信息(如着陆,偏航和速度)那样过滤掉。
我一直在尝试这样做 这个结构是golang中的结构 是时候让我为它创建一个结构了。
RequestMission struct {
ProjectID string `json:"projectID"`
ProjectContextID string `json:"projectContextID"`
UAVID string `json:"uavID"`
Name string `json:"name"`
Aircraft string `json:"aircraft"`
Items [] map[int32]interface{} `json:"items"`
}
但是我想实现动态数据设置。
{
"projectID": "2",
"projectContextID": "12",
"uavID": "2",
"name": "mission02",
"aircraft": "drone001",
"items": {
"0": {
"tag": "wp01",
"item_parameter": {
"wayPoint": {
"latitude": 36,
"longitude": 139,
"altitude": 10
}
}
},
"1": {
"tag": "wp02",
"item_parameter": {
"Waypoint": {
"latitude": 36.01,
"longitude": 139,
"altitude": 30
}
}
},
"2": {
"tag": "roi02",
"item_parameter": {
"RoiGroup": {
"latitude": 36.01,
"longitude": 139,
"altitude": 30
}
}
},
"8": {
"tag": "land02",
"item_parameter": {
"takeOffPoint": {
"tagOfGroup": "roi02",
"altitude": 220.0
}
}
},
"9": {
"tag": "land03",
"item_parameter": {
"takeOffPoint": {
"tagOfGroup": "roi02",
"altitude": 220.0
}
}
}
}
}
我希望在for循环中是这个
for k, v := range elevation.Items {
fmt.Printf("key index = %d and the value = %v", k, v)
switch(k.itemparameter){
case waypoint : {
Tag: v.Tag,
ItemParameter: &pb.MissionItem_Waypoint{
Waypoint: &pb.ItemParameter_Waypoint{
Latitude: v.ItemParameter.Latitude,
Longitude: v.ItemParameter.Longitude,
Altitude: v.ItemParameter.Altitude},
}
}
mission.Items[int32(k)] = &keyVal
}