在写golang项目中碰到一个问题——interface转struct,查询了一下,直接使用强转
chargeMap := make[string]interface{}
chargeMap, _ = carcharge.(map[string]interface{})
feeInfo := chargeMap["fee_info"]
fInfo, ok := feeInfo.(FeeInfo)
if ok {
// do process
}
测试了一下,不能够实现,所以只能采用json序列化:interface->[]byte,[]byte->struct
// 输入电费结构
type FeeInfo struct {
ElectricityJson []FeeJson `json:"electricity_json"`
Park string `json:"park"`
Paymethod string `json:"paymethod"`
ServiceJson []FeeJson `json:"service_json"`
}
chargeMap := make(map[string]interface{})
chargeMap, _ = carcharge.(map[string]interface{})
feeInfo := chargeMap["fee_info"]
var fInfo FeeInfo
feeByte, _ := json.Marshal(feeInfo)
json.Unmarshal(feeByte, &fInfo)
fmt.Println("fInfo->", fInfo)
// 输出是一个struct,符合条件