```golang
type UP struct {
Applicationid string `json:"applicationID"`
Applicationname string `json:"applicationName"`
Devicename string `json:"deviceName"`
Deveui string `json:"devEUI"`
Rxinfo []struct {
Gatewayid string `json:"gatewayID"`
Uplinkid string `json:"uplinkID"`
Name string `json:"name"`
Time time.Time `json:"time"`
Rssi int `json:"rssi"`
Lorasnr float64 `json:"loRaSNR"`
Location struct {
Latitude int `json:"latitude"`
Longitude int `json:"longitude"`
Altitude int `json:"altitude"`
} `json:"location"`
} `json:"rxInfo"`
Txinfo struct {
Frequency int `json:"frequency"`
Dr int `json:"dr"`
} `json:"txInfo"`
Adr bool `json:"adr"`
Fcnt int `json:"fCnt"`
Fport int `json:"fPort"`
Data string `json:"data"`
}
```
我想提取UP里的**Adr**与Rxinfo里的**Rssi**这两种数据
自己尝试了一下:
```golang
up := UP{}
val := reflect.ValueOf(up).FieldByName("adr")
```
返回``invalid reflect.Value``
```golang
up := UP{}
val := reflect.ValueOf(up.Rxinfo).FieldByName("rssi")
```
报错``panic: reflect: call of reflect.Value.FieldByName on slice Value``
fmt.Println(reflect.ValueOf(up).FieldByName("Rxinfo").Index(0).FieldByName("Gatewayid").Interface())
#1