Skip to content

v1.2.0

Compare
Choose a tag to compare
@arp242 arp242 released this 20 Jul 14:15
· 76 commits to master since this release
2e74712

This release adds a few additional features:

  • Support encoding and decoding json.Number, making interoperability with JSON when using json.Encoder.UseNumber() easier.

  • Support time.Duration string format; an integer will be interpreted as nanoseconds (like before), but a string like "5h" will be parsed. On encoding the string format is used.

  • The omitempty struct tag now also works for structs with all zero values, for example an empty time.Time. A struct is considered "empty" when all fields (exported and private) are the zero value.

  • Allow using interface{} (or any) as the map key when decoding.

And some fixes:

  • Fix encoding.TextUnmarshaler not working for map values.

  • Make encoding.TextUnmarshaler and toml.Unmarshaler work if MarshalText() or MarshalTOML() have a pointer receiver.

  • Error out on nil returns from MarshalTOML/MarshalText; before they would get encoded as invalid TOML (keyname =).

  • Fix a panic where it would try to encode array = [{}, 0] as:

    [[array]]
    [[array]]
    

    Which isn't valid as 0 isn't a table.

  • Some better error reporting for some errors.