Can hex format be used with JSON files? If so, how?

The following object is a valid one in plain Javascript. However, if the same is added to a JSON file, the file does not pass validation. Why is that?

var message = {
    "senderID": [ 0x01 ],
    "receiverID": [ 0xFF ],
    "commandCode": [ 0x00, 0x05 ],
    "payload": [ 0xFF ]
}

Answers:

Answer

JSON does not support hexadecimal numbers but they are supported in JSON5. json5.org

Answer

The JSON spec supports numbers as values but explicitly does not support octal or hexidecimal. This is in part to increase interchange between languages. You could just as easily represent 0xFF as a string, "0xFF" and parse that out when using it.


From json.org:

A number is very much like a C or Java number, except that the octal and hexadecimal formats are not used.

According to the ECMA-404 Final draft:

A number is a sequence of decimal digits with no superfluous leading zero. It may have a preceding minus sign (U+002D). It may have a fractional part prefixed by a decimal point (U+002E). It may have an exponent, prefixed by e (U+0065) or E (U+0045) and optionally + (U+002B) or – (U+002D). The digits are the code points U+0030 through U+0039.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.