ExpressionJSON (.json)

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, Falsetrue, false
    symbol"symbol" (UTF-8)
  • Machine integers are represented literally. Larger integers are represented as "digits".
  • See the following reference pages for full general information:
  • Import, Exportimport from or export to a file
    CloudImport, CloudExportimport from or export to a cloud object
    ImportString, ExportStringimport from or export to a string
    ImportByteArray, ExportByteArrayimport from or export to a byte array

Import Elements

  • General Import elements:
  • "Elements" list of elements and options available in this file
    "Summary"summary of the file
    "Rules"list of rules for all available elements


  • Export options:
  • "Compact"Falsewhether to omit line breaks and tabs
    "NullSymbols"{}a list of symbols to represent as JSON null
    "PrecisionHandling"Truewhether to allow bignums or issue a message
  • "Compact"->n includes line breaks and tabs up to indent level n.


Basic Examples  (5)

Import a JSON list:

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: