[ 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