Skip to content
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: require all fields #44138

Closed
jaykam opened this issue Feb 6, 2021 · 3 comments
Closed

proposal: encoding/json: require all fields #44138

jaykam opened this issue Feb 6, 2021 · 3 comments
Labels
Projects
Milestone

Comments

@jaykam
Copy link

@jaykam jaykam commented Feb 6, 2021

Hi @rsc @adg

I've noticed that encoding/json doesn't raise an error if any field is not present in the body payload.

Example:

type DecodeRequest struct{
     ID int   `json:"id"`
     Name string `json:"name"`
}

func DecodeRequest(g *gin.Context) error{
       var decodeRq DecodeRequest
       dec := json.NewDecoder(g.Request.Body)   //Body payload : {"id" : 123}
       dec.DisallowUnknownFields()
       err := dec.Decode(&decodeRq)
       fmt.Println(err) -> nil
       }

Ideally, this function should give an error like missingfield name.

DisallowUnknownFields just take care of extra fields but not the missing field.

Golang version: 1.15.6

Let me know if I've missed anything to fix it?

@seankhliao
Copy link
Contributor

@seankhliao seankhliao commented Feb 6, 2021

see also #17163 #19858

@seankhliao seankhliao changed the title encoding/json: do not raise an error if any field is missing from the defined struct proposal: encoding/json: require all fields Feb 6, 2021
@gopherbot gopherbot added this to the Proposal milestone Feb 6, 2021
@jaykam
Copy link
Author

@jaykam jaykam commented Feb 7, 2021

@seankhliao Thanks for the reply.
I see that this proposal is already on hold.
When can we expect this feature in the next release?

Thanks

@ianlancetaylor ianlancetaylor added this to Incoming in Proposals Feb 7, 2021
@mvdan
Copy link
Member

@mvdan mvdan commented Feb 8, 2021

Yes, this is a duplicate of #19858. We can't provide timeline estimates, sorry - taking a look at all JSON proposals is a big chunk of ongoing work.

@mvdan mvdan closed this Feb 8, 2021
@rsc rsc moved this from Incoming to Declined in Proposals Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Proposals
Declined
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants