- Unmarshal2Map
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"github.com/fatih/structs"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -40,6 +41,23 @@ func UnmarshalUseNumber(data []byte, result interface{}) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// 这个函数将解析json,返回的map中的字段类型与structObj中的完全一样的
|
||||
func Unmarshal2Map(data []byte, structObj interface{}) (resultMap map[string]interface{}, err error) {
|
||||
if err = json.Unmarshal(data, structObj); err == nil {
|
||||
if err = json.Unmarshal(data, &resultMap); err == nil {
|
||||
m := structs.Map(structObj)
|
||||
for k := range resultMap {
|
||||
if value, ok := m[k]; ok {
|
||||
resultMap[k] = value
|
||||
} else {
|
||||
delete(resultMap, k)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultMap, err
|
||||
}
|
||||
|
||||
func MustMarshal(obj interface{}) []byte {
|
||||
byteArr, err := json.Marshal(obj)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user