Skip to content

An implementation of a `Nullable` type for JSON bodies, indicating whether the field is absent, set to null, or set to a value

License

Notifications You must be signed in to change notification settings

oapi-codegen/nullable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

55520a6 · Apr 8, 2025

History

10 Commits
Apr 8, 2025
Jan 25, 2024
Jan 9, 2024
Jan 9, 2024
Jan 9, 2024
Jan 16, 2024
Jan 9, 2024
Jan 25, 2024
Jan 25, 2024
Apr 12, 2024

Repository files navigation

oapi-codegen/nullable

An implementation of a Nullable type for JSON bodies, indicating whether the field is absent, set to null, or set to a value

Unlike other known implementations, this makes it possible to both marshal and unmarshal the value, as well as represent all three states:

  • the field is not set
  • the field is explicitly set to null
  • the field is explicitly set to a given value

And can be embedded in structs, for instance with the following definition:

obj := struct {
		// RequiredID is a required, nullable field
		RequiredID     nullable.Nullable[int]     `json:"id"`
		// OptionalString is an optional, nullable field
		// NOTE that no pointer is required, only `omitempty`
		OptionalString nullable.Nullable[string] `json:"optionalString,omitempty"`
}{}

Usage

Important

Although this project is under the oapi-codegen org for the oapi-codegen OpenAPI-to-Go code generator, this is intentionally released as a separate, standalone library which can be used by other projects.

First, add to your project with:

go get github.com/oapi-codegen/nullable

Check out the examples in the package documentation on pkg.go.dev for more details.

Credits

As well as contributions from:

License

Licensed under the Apache-2.0 license.