{ $values { "objects" { $sequence "deserialized objects" } } }
{ $description "Reads JSON formatted strings into a vector of Factor object until the end of the stream is reached. JSON objects are converted to Factor hashtables. All other JSON objects convert to their obvious Factor equivalents." } ;
+HELP: path>json
+{ $values
+ { "path" "a pathname string" }
+ { "json" "a JSON object" }
+}
+{ $description "Reads a file into a single JSON object. Throws an error if the file contains more than one json." } ;
+{ path>json path>jsons } related-words
+
+HELP: path>jsons
+{ $values
+ { "path" "a pathname string" }
+ { "jsons" "a sequences of JSON objects" }
+}
+{ $description "Reads a file into a sequence of JSON objects and returns them all." } ;
+
ARTICLE: "json.reader" "JSON reader"
"The " { $vocab-link "json.reader" } " vocabulary defines a word for parsing strings in JSON format."
-{ $subsections json> read-json } ;
+"For more information, see " { $url "https://en.wikipedia.org/wiki/JSON" } "."
+{ $subsections json> read-json path>json path>jsons } ;
ABOUT: "json.reader"
: path>json ( path -- json )
utf8 [ 0 counter [ read-json get-json ] with-variable ] with-file-reader ;
+
+! Read a file with one json object per line
+: path>jsons ( path -- jsons )
+ utf8 [ read-json ] with-file-reader ;