validateValue 验证任意类型的值
(value any)
| 94 | |
| 95 | // validateValue 验证任意类型的值 |
| 96 | func (s *JSONSchema) validateValue(value any) error { |
| 97 | if s.Type != "" { |
| 98 | if err := s.validateType(value); err != nil { |
| 99 | return err |
| 100 | } |
| 101 | } |
| 102 | |
| 103 | // 验证枚举 |
| 104 | if len(s.Enum) > 0 { |
| 105 | found := slices.Contains(s.Enum, value) |
| 106 | if !found { |
| 107 | return fmt.Errorf("value %v is not in enum: %v", value, s.Enum) |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | // 验证对象属性 |
| 112 | if s.Type == "object" { |
| 113 | return s.validateObject(value) |
| 114 | } |
| 115 | |
| 116 | // 验证数组 |
| 117 | if s.Type == "array" { |
| 118 | return s.validateArray(value) |
| 119 | } |
| 120 | |
| 121 | return nil |
| 122 | } |
| 123 | |
| 124 | // validateType 验证值的类型 |
| 125 | func (s *JSONSchema) validateType(value any) error { |
no test coverage detected