
json_write(+Stream, ++JsonTerm, +Options)

   Write a JSON element to a stream

Arguments
   Stream              Output stream
   JsonTerm            Term describing JSON object to write
   Options             List of options

Type
   library(json)

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
