- DocumentID: json
  Title: >-
    `json` 
  CategoryID: types
  Summary: >-
    JavaScript Object Notation (JSON)
  Description: |-
    JSON is a structured data-type within Murex. It is the standard format for all
    structured data within Murex however other formats such as YAML, TOML and CSV
    are equally first class citizens.
  Usage: |-
  Examples: |-
    Example JSON document taken from [Wikipedia](https://en.wikipedia.org/wiki/JSON)
    
    ```
    {
      "firstName": "John",
      "lastName": "Smith",
      "isAlive": true,
      "age": 27,
      "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
      },
      "phoneNumbers": [
        {
          "type": "home",
          "number": "212 555-1234"
        },
        {
          "type": "office",
          "number": "646 555-4567"
        },
        {
          "type": "mobile",
          "number": "123 456-7890"
        }
      ],
      "children": [],
      "spouse": null
    }
    ```
  Hooks:
    ReadArray(): Works with JSON arrays. Maps are converted into arrays
    ReadArrayWithType(): Works with JSON arrays. Maps are converted into arrays. Elements data-type in Murex mirrors the JSON type of the element
    ReadMap(): Works with JSON maps
    WriteArray(): Works with JSON arrays
    ReadIndex(): Works against all properties in JSON
    ReadNotIndex(): Works against all properties in JSON
    Marshal(): Writes minified JSON when no TTY detected and human readable JSON when stdout is a TTY
    Unmarshal(): Supported
  Detail: |-
    {{ include "gen/includes/for-loop-json-tips.inc.md" }}
  Associations:
    Mimes:
    - application/json
    - application/x-json
    - text/json
    - text/x-json
    Extensions:
    - json
  Related:
  - yaml
  - toml
  - hcl
  - jsonl
  - jsonc
  - mxjson
  - commands/open
  - commands/index
  - commands/element
  - commands/cast
  - commands/format
  - commands/runtime
  - commands/pretty
  - apis/ReadArray
  - apis/ReadArrayWithType
  - apis/ReadMap
  - apis/WriteArray
  - apis/ReadIndex
  - apis/ReadNotIndex
  - apis/Marshal
  - apis/Unmarshal
  - apis/lang.ArrayTemplate
  - apis/lang.ArrayWithTypeTemplate
