We need a new schema language with the ability to specify such cross-format …formats.
We need a new schema language with the ability to specify such cross-format …formats.
https://www.ibm.com/docs/en/datapower-gateway/10.0.1?topic=2...
["Name", "Session", "Score", "Completed"]
["Gilbert", "2013", 24, true]
["Alexa", "2013", 29, true]
["May", "2012B", 14, false]
["Deloise", "2012A", 19, true]The biggest advantage is that 1 line = 1 record, so you can use unix tools like head, tail, grep, sed to work on it.
It's also easy to sync state in case of errors, since a newline always means record boundary.
In CSV and normal JSON a record can span multiple lines,which sucks, so you almost always have to write custom code to work on them.
ingy and I came up with p3rl.org/JSONY as a "JSON with less ceremony" compromise that I often find useful (it has a PEG grammar that's a superset of JSON so pretty easy to re-implement elsewhere)
I also don’t like space (char 32) used as a field delimiter because that opens up entire categories of bugs that are already a daily annoyance for shell scripting.
I respect your thought processes but I can see this particular specification being more confusing than productive to most other people.
I use it basically like:
{ key1 value1 key2 [ value2a value2b value2c ] }
i.e. treating JSONY as "JSON but with as much of the syntactical noise as possible optional" which is what I always wanted it to be.Plus because JSONY isn't at all indentation sensitive pasting chunks of JSON in becomes IMO a lot easier to comprehend.
A valuable thing for me is that if e.g. I'm writing a daemon that communicates via newline delimited JSON over a TCP or UNIX socket I can have a development mode where it uses JSONY as the parser so it's faster/easier to do quick interactive tests with socat.
{ key1: value1, key2: [ value2a, value2b, value2c ] }
Granted that's still got a few additional control characters (comma and colon) but personally I think that aids readability because it wouldn't be clear to my what the intent of the parameters were in your example if you hadn't named them "key" and "value". But as I said, I'm not going to criticize personal usage.The problem is S-Expresssions is still pretty niche where as JSON support is widespread and supporting jsonlines when you already support JSON is trivial.
If you’re old enough to be a LISPer then you should be old enough to realise that there’s always going to be a multitude of competing standards and sometimes we have to make pragmatic choices.