MCPcopy Create free account
hub / github.com/astercloud/aster / normalizeValue

Function normalizeValue

pkg/util/json.go:42–71  ·  view source on GitHub ↗

normalizeValue 递归处理值,确保 map 的 key 有序

(v reflect.Value)

Source from the content-addressed store, hash-verified

40
41// normalizeValue 递归处理值,确保 map 的 key 有序
42func normalizeValue(v reflect.Value) any {
43 if !v.IsValid() {
44 return nil
45 }
46
47 // 处理指针和接口
48 for v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface {
49 if v.IsNil() {
50 return nil
51 }
52 v = v.Elem()
53 }
54
55 switch v.Kind() {
56 case reflect.Map:
57 return normalizeMap(v)
58 case reflect.Slice:
59 return normalizeSlice(v)
60 case reflect.Array:
61 return normalizeArray(v)
62 case reflect.Struct:
63 return normalizeStruct(v)
64 default:
65 // 基本类型直接返回
66 if v.CanInterface() {
67 return v.Interface()
68 }
69 return nil
70 }
71}
72
73// normalizeMap 按 key 排序处理 map
74func normalizeMap(v reflect.Value) any {

Callers 7

MarshalDeterministicFunction · 0.85
normalizeMapFunction · 0.85
normalizeSliceFunction · 0.85
normalizeArrayFunction · 0.85
normalizeStructFunction · 0.85

Calls 5

normalizeMapFunction · 0.85
normalizeSliceFunction · 0.85
normalizeArrayFunction · 0.85
normalizeStructFunction · 0.85
KindMethod · 0.65

Tested by

no test coverage detected