"encoding/json"json.Unmarshal(data []byte, v interface{}) errorv
方式一 给定结构体struct
示例:
type example struct {
IntID int `json:"IntID"`
StrPrjID string `json:"StrPrjID"`
IntCSID int `json:"IntCSID"`
IntIOID int `json:"IntIOID"`
IntCHID int `json:"IntCHID"`
StrDeviceName string `json:"StrDeviceName"`
StrTagName string `json:"StrTagName"`
IntTypeID int `json:"IntTypeID"`
IntClass int `json:"IntClass"`
StrNote string `json:"StrNote"`
TimeModify time.Time `json:"TimeModify"`
}
数据解析:
var s = `[{"IntID":14125,"StrPrjID":"domain3","IntCSID":0,"IntIOID":0,"IntCHID":0,"StrDeviceName":"adad","StrTagName":"3+a1","IntTypeID":30,"IntClass":4,"StrNote":"aaaaaaaaaaaaaaa1","TimeModify":"0001-01-01T00:00:00Z"},{"IntID":14126,"StrPrjID":"domain3","IntCSID":0,"IntIOID":0,"IntCHID":0,"StrDeviceName":"adad","StrTagName":"3+a3","IntTypeID":30,"IntClass":4,"StrNote":"bbbbbbbbb","TimeModify":"0001-01-01T00:00:00Z"}]`
var x []example
err := json.Unmarshal([]byte(s), &x)
if err != nil {
return
}
这种方式适用于知道结构体构造的情况,通用做法
方式二 创建map
示例:
var x = make([]map[string]interface{}, 0)
var s = `[{"IntID":14125,"StrPrjID":"domain3","IntCSID":0,"IntIOID":0,"IntCHID":0,"StrDeviceName":"adad","StrTagName":"3+a1","IntTypeID":30,"IntClass":4,"StrNote":"aaaaaaaaaaaaaaa1","TimeModify":"0001-01-01T00:00:00Z"},{"IntID":14126,"StrPrjID":"domain3","IntCSID":0,"IntIOID":0,"IntCHID":0,"StrDeviceName":"adad","StrTagName":"3+a3","IntTypeID":30,"IntClass":4,"StrNote":"bbbbbbbbb","TimeModify":"0001-01-01T00:00:00Z"}]`
err := json.Unmarshal([]byte(s), &x)
if err != nil {
return
}
此方法通用,但使用interface{}效率不高