You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey, when working with JSON3 and StructTypes, I've noticed that the error messages received when passing incorrect data lack clarity, specifically in mentioning field names.
Here's a small example:
using StructTypes, JSON3
struct X
x::Int
y::Float64
z::Stringend
StructTypes.StructType(::Type{X}) = StructTypes.Struct()
valid_bad_json =""" { "x": 1, "y": 2, "z": 1 } """
JSON3.read(valid_bad_json, X)
# ERROR: ArgumentError: invalid JSON at byte position 25 while parsing type String: ExpectedOpeningQuoteChar# { "x": 1, "y": 2, "z": 1 }
StructTypes.constructfrom(X, JSON3.read(valid_bad_json))
# ERROR: MethodError: no method matching String(::Int64)
The error message doesn't specify which field caused the error. The issue becomes even more challenging with larger or nested structs. For improved developer experience, I'd love to see error messages that indicate:
The name of the field causing the error.
The specific type of error that occurred.
Libraries like zod or pydantic provide excellent examples of detailed error messages that include the exact path to the offending field and the nature of the error.
When following the happy path everything works smoothly and the packages are a joy to use!
The text was updated successfully, but these errors were encountered:
Hey, when working with
JSON3
andStructTypes
, I've noticed that the error messages received when passing incorrect data lack clarity, specifically in mentioning field names.Here's a small example:
The error message doesn't specify which field caused the error. The issue becomes even more challenging with larger or nested structs. For improved developer experience, I'd love to see error messages that indicate:
Libraries like zod or pydantic provide excellent examples of detailed error messages that include the exact path to the offending field and the nature of the error.
When following the happy path everything works smoothly and the packages are a joy to use!
The text was updated successfully, but these errors were encountered: