jsonc
Concatenated JSON
The following description is taken from Wikipedia:
Concatenated JSON streaming allows the sender to simply write each JSON object into the stream with no delimiters. It relies on the receiver using a parser that can recognize and emit each JSON object as the terminating character is parsed. Concatenated JSON isn’t a new format, it’s simply a name for streaming multiple JSON objects without any delimiters.
The advantage of this format is that it can handle JSON objects that have been formatted with embedded newline characters, e.g., pretty-printed for human readability. For example, these two inputs are both valid and produce the same output:
Single line concatenated JSON
{"some":"thing\n"}{"may":{"include":"nested","objects":["and","arrays"]}}
Multi-line concatenated JSON
{ "some": "thing\n" } { "may": { "include": "nested", "objects": [ "and", "arrays" ] } }
Because of the similiaries with jsonlines (jsonl
), the
examples here will focus on jsonlines examples. However concatenated
JSON doesn’t need a new line separator. So the examples below could all
be concatenated into one long line.
Example JSON lines documents taken from jsonlines.org
["Name", "Session", "Score", "Completed"]
["Gilbert", "2013", 24, true]
["Alexa", "2013", 29, true]
["May", "2012B", 14, false]
["Deloise", "2012A", 19, true]
This format is equatable to generic
and
csv
.
{"name": "Gilbert", "wins": [["straight", "7♣"], ["one pair", "10♥"]]}
{"name": "Alexa", "wins": [["two pair", "4♠"], ["two pair", "9♠"]]}
{"name": "May", "wins": []}
{"name": "Deloise", "wins": [["three of a kind", "5♣"]]}
jsonl
The advantage of concatenated JSON is that it supports everything jsonlines supports but without the dependency of a new line as a separator.
Eventually it is planned that this Murex data-type will replace jsonlines and possibly even the regular JSON parser. However this concatenated JSON parser currently requires reading the entire file first before parsing whereas jsonlines can read one line at a time. Which makes jsonlines a better data- type for pipelining super large documents. For this reason (and that this parser is still in beta), it is shipped as an additional data-type.
concatenated-json
json-seq
jsonc
jsonconcat
jsons
jsonseq
application/concatenated-json
application/json-seq
application/jsonc
application/jsonconcat
application/jsonseq
application/x-concatenated-json
application/x-json-seq
application/x-jsonc
application/x-jsonconcat
application/x-jsonseq
text/concatenated-json
text/concatenated-json
text/json-seq
text/jsonc
text/jsonconcat
text/jsonseq
text/x-json-seq
text/x-jsonc
text/x-jsonconcat
text/x-jsonseq
Marshal()
SupportedReadArray()
Works with JSON arrays. Maps are converted
into arraysReadArrayWithType()
Works with JSON arrays. Maps are
converted into arrays. Element data type is json
ReadIndex()
Works against all properties in JSONReadMap()
Not currently supported.ReadNotIndex()
Works against all properties in
JSONUnmarshal()
SupportedWriteArray()
Supportedcast
):
Alters the data-type of the previous function without altering its
outputforeach
): Iterate through an array[[ Element ]]
): Outputs an element from a nested
structureopen
):
Open a file with a preferred handlerformat
): Reformat one data-type into another
data-typeruntime
): Returns runtime information on the internal
state of Murex*
(generic): generic
(primitive)csv
: CSV files (and other
character delimited tables)hcl
: HashiCorp
Configuration Language (HCL)json
: JavaScript Object
Notation (JSON)jsonl
: JSON Linestoml
: Tom’s Obvious,
Minimal Language (TOML)yaml
: YAML Ain’t Markup
Language (YAML)ReadIndex()
(type):
Data type handler for the index, [
, builtinReadNotIndex()
(type): Data type handler for the bang-prefixed index,
![
, builtinReadArray()
(type):
Read from a data type one array element at a timeWriteArray()
(type): Write a data type, one array element at a timeReadMap()
(type):
Treat data type as a key/value structure and read its contentsMarshal()
(type):
Converts structured memory into a structured file format (eg for
stdio)Unmarshal()
(type):
Converts a structured file format into structured memoryThis document was generated from builtins/types/jsonconcat/jsonconcat_doc.yaml.
This site's content is rebuilt automatically from murex's source code after each merge to the master
branch. Downloadable murex binaries are also built with the website.
Last built on Wed Jan 15 23:07:50 UTC 2025 against commit b4c4296b4c429617fd41527ea0efef33c52c15ef2b64972.
Current version is 6.4.2063 (develop) which has been verified against tests cases.