<P> Though JSON was originally advertised and believed to be a strict subset of JavaScript and ECMAScript, it inadvertently allows some unescaped characters in strings that are illegal in JavaScript and ECMAScript strings . See Data portability issues below . </P> <P> JSON itself became an ECMA international standard in 2013 as the ECMA - 404 standard . In the same year RFC 7158 used ECMA - 404 as reference . In 2014 RFC 7159 became the main reference for JSON's internet uses (ex . MIME application / json), and obsoletes RFC 4627 and RFC 7158 (but preserving ECMA - 262 and ECMA - 404 as main references). In December 2017, RFC 7159 was made obsolete by RFC 8259 . </P> <P> JSON's basic data types are: </P> <Ul> <Li> Number: a signed decimal number that may contain a fractional part and may use exponential E notation, but cannot include non-numbers such as NaN . The format makes no distinction between integer and floating - point . JavaScript uses a double - precision floating - point format for all its numeric values, but other languages implementing JSON may encode numbers differently . </Li> <Li> String: a sequence of zero or more Unicode characters . Strings are delimited with double - quotation marks and support a backslash escaping syntax . </Li> <Li> Boolean: either of the values true or false </Li> <Li> Array: an ordered list of zero or more values, each of which may be of any type . Arrays use square bracket notation and elements are comma - separated . </Li> <Li> Object: an unordered collection of name--value pairs where the names (also called keys) are strings . Since objects are intended to represent associative arrays, it is recommended, though not required, that each key is unique within an object . Objects are delimited with curly brackets and use commas to separate each pair, while within each pair the colon':' character separates the key or name from its value . </Li> <Li> null: An empty value, using the word null </Li> </Ul>

Other versions of json in use such as