I believe you cannot currently do that.
I guess it follows the philosophy that the structure of the object should roughly align with the type; from that view point, having {... phone: [] ...}
or even {... phone: null ...}
for non-existant fields is "more typed" than leaving them out of the object.
If the reason you want to keep the JSON "compact" is not for elegance, but e.g. bandwidth reasons, gzip
or things like JSONH might achieve almost the same savings transparently, without you having to change the structure of your objects.