TOML? YAML? ini-files? JSON? Loosen up!
2018-12-10 11:26 jsonloose [permalink]
TOML? YAML? plain old INI-files? or shiny and new — but strict — JSON? Nàh. I've made myself something better. In jsonDoc.pas I've recently added an optional compiler define JSONDOC_JSON_LOOSE
that makes the JSON parser a whole lot genter to work with. Some things are no longer required: the root document doesn't need to start and end with braces ("{}
"), the quotes around the key names are no longer required (unless they contain special chars), the comma's between key-value pairs are no longer required, it accepts equal ("=
") between keys and values instead of colon (":
") and can even do entirely without.
And while I was at it there's also JSONDOC_JSON_PASCAL_STRINGS
that allows you to write string literals the Delphi way: between single quotes, and double single quotes where you want a single quote in the string value. This way — really handy in Windows environments — it doesn't require you to escape backslashes.
The only downside maybe is that you need to add the defines to the compiler parameters, but for plain old configuration something like this:
x=5
y=10
output='C:\test\output\'
looks a lot nicer and like what we're used to, and gets parsed just the same as if it was written like this:
{
"x":5,
"y":10,
"output":"C:\\test\\output\\"
}