[ library(json) | Reference Manual | Alphabetic Index ]
json_write(+Stream, ++JsonTerm, +Options)
Write a JSON element to a stream
- Stream
- Output stream
- JsonTerm
- Term describing JSON object to write
- Options
- List of options
Description
    Write a JSON element.  JSON elements are described by an ECLiPSe term
    whose structure mimics the JSON element, as follows:
    
    - object
- Structure with functor {}/1 whose single argument is either
        a comma-sequence of Name:Value terms, a list of Name:Value terms,
        or a single Name:Value term.  Name is a string or atom, and Value
        is another JSON element.  E.g. {["a":123,"b":[4,5]]}or{"a":123,"b":[4,5]}.
        The empty object{}is also allowed.
- array
- A list or array whose elements are JSON elements, e.g.
        [1,{"a":true}]or[](1,{"a":true})
- string
- A string or atom
- number
- An integer or float
- true
- the atom true
- false
- the atom false
- null
- the atom null
Options is a list that can contain
    - indent(N) - default 1
- Indent each structure level by N spaces.
        indent(0) suppresses all extra spaces and newlines.
- float_format(String) - default "%q"
- use the given printf-format to print floating point numbers,
        e.g. "%.3f"
Examples
    ?- json_write(output, [1, 2.3, foo, "bar"], []).
    [
     1,
     2.3,
     "foo",
     "bar"
    ]
    ?- json_write(output, {foo:123, "bar":4.5, baz:true}, []).
    {
     "foo":123,
     "bar":4.5,
     "baz":true
    }
    ?- json_write(output, {[foo:123, "bar":4.5, baz:true]}, []).
    {
     "foo":123,
     "bar":4.5,
     "baz":true
    }
    ?- json_write(output, hello(world), []),
    type error: expected json_term, found hello(world) in json_write / 3
    Abort
See Also
json_read / 3