Everything about TOML format
www.youtube.com
external-link
What is this TOML?Visualizer:https://toml-to-json.orchard.blog/Code:https://github.com/orcharddweller/toml-to-jsonTOML spec:https://toml.io/en/v1.0.0#TOML #t...
@brettvitaz@programming.dev
link
fedilink
English
9
edit-2
8M

Every time I have reached for TOML I have ended up using JSON. The first reason is that Python standard library can read but not write TOML, which is generally useless for me. The second reason is TOML does not add any benefit over JSON. It’s not that much easier to read and IMO JSON is easier to write by hand because the syntax rules are completely obvious.

Eager Eagle
link
fedilink
English
198M

TOML is mainly for humans to write, certainly not a good choice if you’re programmatically writing files - comments and formatting would be lost.

It all depends on the library you use. Rust has you covered with toml_edit. It is what is used for all the cargo commands editing the Cargo.toml file.

@brettvitaz@programming.dev
link
fedilink
English
2
edit-2
8M

Agreed. Except that it’s not easier to write imo

The very first moment that I had to use JSON as a configuration format, and I was desperate to find a way to make a long string into a JSON field. JSON is great for many things, but it’s not good at all for a configuration format where you need users to make it pretty, and need features like comments or multi-line strings (because you don’t want to fix a merge conflict in a 400 character-wide line).

Where do you put your comments in JSON files?

For settings files I always have an example file with sensible values filled in and along with descriptive keys that serves as reasonable documentation. If something is truly unknowable, I’ve probably done something wrong.

How would you mark a flag in your json settings file as deprecated?

In my opinion, the settings file isn’t where this information should be presented. I would put these notes in the release log and readme and example settings file. I have also written this information to logging during startup so a user knows what to do, or I write a migration that does the change automatically if that’s possible.

This is only my opinion and you can use the comment method described like “//“: “Deprecated” if desired.

@Quetzalcutlass@lemmy.world
link
fedilink
English
4
edit-2
8M

I’ve seen them included as part of the data.

"//": "Comment goes here",

Example here.

That doesn’t really work when you need two comments at the same level, since they’d both have the same key

write json with comments. Use a yaml parser.

If you’re reaching for yaml, why not use toml?

Every time i try to use toml, i end up going back to json

because of the cut and paste problem. It works in json.

It still works since multiple identical keys are still valid json. Although that in itself isn’t fantastic imo.

Create a post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 1.11K users / 6 months
  • 1 subscriber
  • 1.21K Posts
  • 17.8K Comments
  • Modlog