JSON is built on two structures:
These are universal data structures. Virtually all modern programming languages support them in one form or another. It makes sense that a data format that is interchangable with programming languages also be based on these structures.
In JSON, they take on these forms:
Excepting a few encoding details, this completely describes the language.
Strings are very much like C or Java strings. Numbers are very much like C or Java numbers, except that the octal and hexadecimal formats are not used.