5.4.2.1 General
Any value for a nullable Built-In type that is NULL shall be encoded as the JSON literal ‘null’ if the value is an element of a JSON array. If the NULL value is for a field within a JSON object, the field shall be omitted when using the CompactEncoding. When using the VerboseEncoding, the field is encoded as the JSON literal ‘null’.
Any non-nullable built-in type shall be encoded if it is an element of an array. When using the CompactEncoding, the field of a Structure or Union is omitted if value is equal to the default value for the built-in type.
Note that JSON objects are unordered sets of name-value pairs. When a built-in type is encoded as a JSON object, the order of fields specified is not preserved.