JSON does have data types, although there are not very many and not very good. For example, there is no octet string type (so you will have to use hex or base64 instead), no non-string keys (so you have to use strings instead), no character sets other than Unicode, no proper integer type (you will either have to use the existing numeric type or use a string instead; I have seen both ways done), etc.
YAML is worse in many ways, though.
XML has no data types but does have data structures.
I prefer to use DER (which also has some problems, but they are much less bad in my opinion).