MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / deepEqualJSON

Function deepEqualJSON

internal/store/gitstore.go:982–1030  ·  view source on GitHub ↗
(a, b any)

Source from the content-addressed store, hash-verified

980}
981
982func deepEqualJSON(a, b any) bool {
983 switch valA := a.(type) {
984 case map[string]any:
985 valB, ok := b.(map[string]any)
986 if !ok || len(valA) != len(valB) {
987 return false
988 }
989 for key, subA := range valA {
990 subB, ok1 := valB[key]
991 if !ok1 || !deepEqualJSON(subA, subB) {
992 return false
993 }
994 }
995 return true
996 case []any:
997 sliceB, ok := b.([]any)
998 if !ok || len(valA) != len(sliceB) {
999 return false
1000 }
1001 for i := range valA {
1002 if !deepEqualJSON(valA[i], sliceB[i]) {
1003 return false
1004 }
1005 }
1006 return true
1007 case float64:
1008 valB, ok := b.(float64)
1009 if !ok {
1010 return false
1011 }
1012 return valA == valB
1013 case string:
1014 valB, ok := b.(string)
1015 if !ok {
1016 return false
1017 }
1018 return valA == valB
1019 case bool:
1020 valB, ok := b.(bool)
1021 if !ok {
1022 return false
1023 }
1024 return valA == valB
1025 case nil:
1026 return b == nil
1027 default:
1028 return false
1029 }
1030}

Callers 1

jsonEqualFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected