No system, file format, data format, programming language, etc is perfect. However, instead of glossing over the information, it’s better to education oneself as to their shortcomings to ensure that you can work around the limitations.
It is worth noting that while JSON is built as a subset of JavaScript it does not include support for commenting. This shouldn’t necessarily be a problem as you are moving data from one place to another, not storing logic to run. The exception is if you are building samples for new developers to load in. However, referencing an external help document to explain the file in more detail if necessary should work around that problem. You can even include links in your data structure if it is truly necessary.
It should also be noted that a problem with JSON is that data cannot be considered “safe”. Early developers would use the eval() function within JavaScript to load data from the JSON file into JavaScript where it could be used. However this could cause bad code to be executed, not just data being stored. Instead a JSON parser should always be used. Luckily these are easy to come by in most modern languages.
Data accuracy may vary, especially when dealing with numbers. JavaScript uses a double precision floating point number system, however this isn’t always used by all languages and/or parsers. This means some data may not be as accurate as you would wish when moving data between different systems.
Problems with JSON was originally found on Access 2 Learn