{
"designers": [
{"name": "Guido", "lang": "Python"},
{"name": "Larry", "lang": "Perl"}
]
} {
"designers": [
{"name": "Guido", "lang": "Python"},
{"name": "Larry", "lang": "Perl"}
]
}This JSON is also much more readable than the “dot attribute” Toml syntax too, which I think is one of the least intuitive and hardest to read ways of creating nested data structures, certainly vastly less readable than the equivalents in YAML or JSON.
I’ve never understood why anyone would say Toml is easier to read than YAML or JSON. It’s drastically harder to read and more confusing.
[site]
name = "My Great Website"
url = "https://example.com"
author = "Watts Martin"
email = "foo@bar.com"
links = [
{ name = "tom", url = "http://tom.example.com" },
{ name = "bob", url = "http://bob.example.com" }
]
[database]
server = "localhost"
username = "dbuser"
password = "dbpassword"
Than one that looks like this: {
"site": {
"name": "My Great Website",
"url": "https://example.com",
"author": "Watts Martin",
"email": "foo@bar.com",
"links": [
{ "name": "tom", "url": "http://tom.example.com" },
{ "name": "bob", "url": "http://bob.example.com" }
]
},
"database": {
"server": "localhost",
"username": "dbuser",
"password": "dbpassword"
}
}
Semantically, I just find the first one clearer and more intuitive. (The links are really only the dubious part.)The equivalent YAML doesn't look bad:
site:
name: My Great Website
url: 'https://example.com'
author: Watts Martin
email: foo@bar.com
links:
- name: tom
url: 'http://tom.example.com'
- name: bob
url: 'http://bob.example.com'
database:
server: localhost
username: dbuser
password: dbpassword
...but the significant whitespace makes it somewhat more fragile, particularly in those pesky links.I can agree Toml is sometimes better than YAML, but I cannot agree it is better than JSON. For me JSON is so simple, so easy to read, it has the nice feature of preventing comments and multi-line strings to keep things extremely simple and to enforce that documentation about the values in the file has to be located outside the file, as it absolutely should (documentation should be at the site that uses the config/param file, not inside it).
Plus, I find JSON indentation to be a real joy to assist with reading and seeing the nested structure. That indentation is optional in Toml, but I think pretty much always the use of that indentation ought to be enforced as a convention for people using Toml. Lacking the indentation is really not good for config / parameter files.