func DecodeWithNumber(r io.Reader, value interface{}) error
DecodeWithNumber decodes input data using json.Decoder, ensuring numbers are preserved
via json.Number data type. It errors out on invalid json or any excess input.
StructFields takes a pointer to a struct and a list of exceptions,
and returns a list of the fields in the struct that are JSON-tagged
and whose tag is not in the list of exceptions.
The struct can be nil.