ExtractJSONPathFromValidationError extracts JSON path information from jsonschema validation errors
(err error)
| 28 | |
| 29 | // ExtractJSONPathFromValidationError extracts JSON path information from jsonschema validation errors |
| 30 | func ExtractJSONPathFromValidationError(err error) []JSONPathInfo { |
| 31 | var paths []JSONPathInfo |
| 32 | |
| 33 | var validationError *jsonschema.ValidationError |
| 34 | if errors.As(err, &validationError) { |
| 35 | // Process each cause (individual validation error) |
| 36 | for _, cause := range validationError.Causes { |
| 37 | path := JSONPathInfo{ |
| 38 | Path: convertInstanceLocationToJSONPath(cause.InstanceLocation), |
| 39 | Message: cause.Error(), |
| 40 | Location: cause.InstanceLocation, |
| 41 | ErrorKind: cause.ErrorKind, |
| 42 | } |
| 43 | paths = append(paths, path) |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | return paths |
| 48 | } |
| 49 | |
| 50 | // JSONPathInfo holds information about a validation error and its path |
| 51 | type JSONPathInfo struct { |