| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package request_util
- import (
- "encoding/json"
- "git.sxidc.com/go-tools/utils/slice"
- )
- func StructToMap(originStruct any) map[string]any {
- jsonBytes, err := json.Marshal(originStruct)
- if err != nil {
- panic(err)
- }
- retMap := make(map[string]any)
- err = json.Unmarshal(jsonBytes, &retMap)
- if err != nil {
- panic(err)
- }
- return retMap
- }
- func ExtractDynamicValueMap(inputModelMap map[string]any, inputParamStruct any) (map[string]any, error) {
- jsonBytes, err := json.Marshal(inputParamStruct)
- if err != nil {
- return nil, err
- }
- paramMap := make(map[string]any)
- err = json.Unmarshal(jsonBytes, ¶mMap)
- if err != nil {
- return nil, err
- }
- allValues := make([]string, 0)
- paramValues := make([]string, 0)
- for k := range inputModelMap {
- allValues = append(allValues, k)
- }
- for k := range paramMap {
- paramValues = append(paramValues, k)
- }
- extraKeys := slice.ExtractASubBSetValue(allValues, paramValues)
- dynamicValueMap := make(map[string]any)
- for _, key := range extraKeys {
- if inputModelAny, ok := inputModelMap[key]; ok {
- dynamicValueMap[key] = inputModelAny
- }
- }
- return dynamicValueMap, nil
- }
|