|
|
|
|
|
by eadmund
1761 days ago
|
|
> And if you accept that, having special syntax for arrays and maps is more convenient and readable than S-exprs. S-expressions are arrays, and maps are really just degenerate unsorted arrays of key-value pairs. Taking a look at https://json.org/example.html, I think this is easily more readable: (menu
(id file)
(value File)
(popup
(item (value New) (onclick "CreateNewDoc()"))
(item (value Open) (onclick "OpenDoc"))
(item (value Close) (onclick "CloseDoc()"))))
than: {"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
|
|
A big part of the difference is that all the JSON keys are quoted, which I agree is ugly (I like JSON5 myself).
You’ve also omitted the “menuitem” from the S-expr version. That could have been omitted from the JSON too but I assume it’s meant to be there for some good reason.