
json_read(+Stream, -JsonTerm, +Options)

   Read a JSON element from a stream

Arguments
   Stream              Input stream
   JsonTerm            Term describing JSON object read
   Options             List of options

Type
   library(json)

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
