ExpressionJSON (.json)
- Import and Export support ExpressionJSON.
- ExpressionJSON provides lossless round-tripping of Wolfram Language expressions to and from JSON.
- By default, Import and Export use the "JSON" format for files ending in .json, rather than the "ExpressionJSON" format.
Background & Context

-
- MIME type: application/json.
- Data interchange format.
- ExpressionJSON provides a JSON representation of Wolfram Language expressions.
- JSON is commonly used in web programming.
- JSON is an acronym derived from JavaScript Object Notation.
- JSON is based on a subset of the JavaScript programming language.
- Plain text format.
- JSON was developed in 2001.
- JSON is published as RFC 4627.
Import & Export

- Import["file","ExpressionJSON"] imports a file that uses the ExpressionJSON format, producing an ordinary Wolfram Language expression.
- Export["file",expr,"ExpressionJSON"] exports an arbitrary expression to ExpressionJSON.
- Elements of expressions are represented as follows in ExpressionJSON:
-
"string" "'string'" (UTF-8, with JSON escaping) True, False true, false Null null symbol "symbol" (UTF-8) f[e1,e2,…,opt1val1,…] ["f",e1,e2,…,["Rule",opt1,val1],…] - Machine integers are represented literally. Larger integers are represented as "digits".
- Machine-precision numbers are represented as JSON numbers using e notation.
- Arbitrary-precision numbers are by default given as "number", where number is the InputForm representation of the number.
Import Elements

- General Import elements:
-
"Elements" list of elements and options available in this file "Rules" full list of rules for each element and option "Options" list of rules for options, properties, and settings
Examples
Basic Examples (5)
Import a String:
Import a Quantity:
Export an expression to a JSON string:
Export a list while converting None to JSON null:
Export a list of numbers of arbitrary precision:
Export a list of numbers and issue an error if any of them is not a machine-precision number:

Control the output format with "Compact" to limit indentation: