In Go 1.24 json marshalling added support for omitzero struct tag. One of the main differences when using this instead of omitempty is that empty slices are now emitted as empty arrays instead of being skipped.
This tag is also supported in go-viper's fork of mapstructure starting from 2.3.0 version.