[ library(json) | Reference Manual | Alphabetic Index ]

json_read(+Stream, -JsonTerm, +Options)

Read a JSON element from a stream
Stream
Input stream
JsonTerm
Term describing JSON object read
Options
List of options

Description

Read a JSON element. In the resulting data structure, JSON elements are represented as follows:
object
Structure with functor {}/1 whose single argument is a list of Name:Value terms, where Name is a string and Value a JSON element, e.g. {["a":123,"b":[4,5]]}, or the empty object {}.
array
A list whose elements are JSON elements, e.g. [1,{"a":true}]
string
A string
number
An integer or float
true
the atom true
false
the atom false
null
the atom null
Options is a list that can contain
names_as_atoms
return object key names as atoms instead of strings

Examples

    ?- json_read(input, JsonTerm, []).
     {
       "foo":123,
       "bar":["hello",3,4.5],
       "baz":true,
       "zut":null
     }
     
    JsonTerm = {["foo":123, "bar":["hello",3,4.5], "baz":true, "zut":null]}
    Yes (0.00s cpu)


    ?- json_read(input, JsonTerm, [names_as_atoms]).
     {
       "foo":123,
       "bar":"hello",
       "baz":true
     }
     
    JsonTerm = {[foo:123, bar:"hello", baz:true]}
    Yes (0.00s cpu)


    ?- json_read(input, JsonTerm, []).
     foobar

     syntax error: invalid JSON syntax in json_read / 3
    Abort

See Also

json_write / 3