-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
proposal: encoding/json: add error var to compare the returned error when using json.Decoder.DisallowUnknownFields() #29035
Comments
Change https://golang.org/cl/152297 mentions this issue: |
Per discussion with @golang/proposal-review, putting on hold until we can review JSON issues en masse. |
Hello @andybons, do you have any idea of when you will be able to review these JSON issues en masse? Thanks. |
Looks absolutely ugly in retrospect to golang 1.13 with new error handling ( |
@s3rj1k please be more objective, this was the best solution in the time when I face this problem, instead of judge, please provide an example using |
@jaswdr I was talking about golang core library mess. not your solution :) |
@s3rj1k ack |
Can we revisit this? Being able to handle the error properly would allow me to achieve that. |
the only solution i could think about without writing lot of code is
|
It would be great to see this get added. As @markus-azer explained, the workaround for now would be to compare to the error message itself. Instead of using if strings.HasPrefix(err.Error(), "json: unknown field") {
// ...
} This issue is similar to #30715, which was recently resolved by introducing an error, so message comparison is no longer needed. Looking forward to this one being resolved too. |
Also worth noting that it does not appear to be possible to return the full json path to the unexpected field, as is. In contrast, |
I never expected that this issue would be shelved for as long as six years. This is truly unbelievable. Meanwhile, the pull request to fix this issue was also shelved due to an error in the key data type. |
Are there any plans on still making this an error? Would be useful! |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
Some way to check if the error happen.
What did you see instead?
No way to do this instead of checking the error string
If this is accepted I really want to work on it.
The text was updated successfully, but these errors were encountered: