如何在golang中以json格式创建结构

时间:2019-05-23 05:31:51

标签: json go struct

我正在尝试从这种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
    }

0 个答案:

没有答案