I suggest that the stream reader conform to RFC 7454.  This is a protocol for having multiple JSON values in the same stream by making sure that no two values can run together.  For example, outputting 12 followed by 24 would be reread as 1224.  Furthermore, 7454 allows recovering from a broken JSON object and synchronizing correctly on the next object.

For the stream reader, this basically means that it is legal to have a single U+001E in the input just before parsing a top-level value.

The json-stream-writer procedure would have an additional argument, which if true would cause it to write U+001E before every top-level value and U+000A after every top-level value.