The JSON structure
Author: John Reppy
Keywords: Standard ML, SML, SML/NJ Library

The SML of NJ Library
The `JSON` structure

## Synopsis

    structure JSON

## Interface

    datatype value
      = OBJECT of (string * value) list
      | ARRAY of value list
      | NULL
      | BOOL of bool
      | INT of IntInf.int
      | INTLIT of string
      | FLOAT of real
      | STRING of string

## Description

`datatype value = …​`

  This datatype represents JSON values as trees. The constructors are

  `OBJECT of (string * value) list`

    represents a JSON object value; i.e., a list of key-value pairs. Note that the keys should be unique.

  `ARRAY of value list`

    represents a JSON array value.

  `NULL`

    represents the JSON value `"null"`.

  `BOOL of bool`

    represents the JSON values `"true"` and `"false"`.

  `INT of IntInf.int`

    represents JSON integer numbers.

  `INTLIT of string`

    represents JSON integer numbers that have a large number of digits.

  `FLOAT of real`

    represents JSON floating-point numbers.

  `STRING of string`

    represents JSON strings, which are assumed to be UTF-8 encoded.

## Example

The JSON value

    { "a" : 23,
      "b" : [ false, true ],
      "c" : "hello world"
    }

has the following representation using the value datatype:

    OBJECT[
      ("a", INT 23),
      ("b", ARRAY[BOOL false, BOOL true]),
      ("c", STRING "hello world")
    ]

## See Also

The JSON Library

SML/NJ Version 110.99.9 (November 4, 2025)
Last updated 2025-11-04 15:48:25 UTC