It’s a simple story: I wanted to be able to put comments in JSON files, specifically in my composer.json files.
Why? Because sometimes I want to give a try to third-party without deleting references to them if I decide not to keep them in my composer.json file.
Or maybe sometimes I simply want to include comments above some dependencies.
You probably know that it’s something not allowed by JSON parsers.
I thought that implementing a simple script that wipes out lines starting with
the #
character would have been faster that searching for some existing
solution.
So I implemented it and just because commented lines brought to lists with trailing commas, I also added some lines of code to wipe that trailing commas too.
And that’s almost it, here is the script with instructions on how to install and use it: https://github.com/aleron75/jsonc
There is a positive side effect: this script assumes you work on a separate file
with jsonc
extension and generates the corresponding well-formed json
file.
You can keep the json
file under version control and ignore the jsonc
; this
way each developer can keep his/her version of the jsonc
file.
It’s not rocket science and since I wrote the script in minutes it it likely that it won’t work for everyone.
In that case: contributions are welcome :)
Enjoy!
EDIT
I assume that you, like me, manually edit the composer.json
file; that
probably, I admit, isn’t a best practice.
Thus, if you use the composer require
command that takes care of updating the
composer.json
file, I discourage you from using the jsonc
script.
Photo credits: Josh More - Creative Commons license