-
-
Save MoOx/5271067 to your computer and use it in GitHub Desktop.
{ | |
"//field": "These 'double quote' 'double quote' are used as comments, because JSON doesnt' allow comment", | |
"field": {}, | |
"#another-field": "Another comment", | |
"another-field": {}, | |
"/*stuff": "Be careful to use them when you have full control of the content :)", | |
"stuff": [], | |
"bla": "bla" | |
} |
JSON (& strictly-linted JS) don't allow duplicate keys of objects, so add a unique letter or number to make it validate. This is a trick I've seen somewhere in popular code but can't remember where, sorry. I think the convention of using a "//" as the basis for comment names seems fairly sensible & terse, and should make it easy to programmatically update current JSON configs to some better format in future.
{
"//a": "This is the first comment."
"//b": "...and this is the second."
}
The JSON should all be data, and if you include a comment, then it will be data too.
You could have a designated data element called "_comment" (or something) that would be ignored by apps that use the JSON data.
You would probably be better having the comment in the processes that generates/receives the JSON, as they are supposed to know what the JSON data will be in advance, or at least the structure of it.
{
"_comment": "comment text goes here...",
"Key":"value"
}
nothing works in php (json_decode) - all comments are still in data
Yeah because it's a trick, not real comment. JSON specs just don't have comments...
None of these is how I would have done it,
I would have gone for something like this instead:
{
"Comments": [
"Lorem ipsum dolor sit amet,",
"consectetur adipiscing elit.",
"Suspendisse vitae risus ligula.",
"Fusce vel urna turpis."
]
}
Then you won't have to think about making identifiers for every line, and it validates.
JSON 5 (https://json5.org/) does support comments. However, support for it is limited. E.g. PHP does not support it yet.
You can use:
/*
{
"Comments": [
"Lorem ipsum dolor sit amet,",
"consectetur adipiscing elit.",
"Suspendisse vitae risus ligula.",
"Fusce vel urna turpis."
]
}
*/
other options
put all the comment in the key :-)
there should be less duplicates problems
ex
{
"// this is fun":"",
"// this is also fun": "",
"whatever": {
"// other scope": "",
"// this is fun": ""
},
"port": 8090, "// can't use native port":""
}
I'm also looking for this.
Because JSON is a subset of YAML, # should be used as comment character. IMHO :-) but as with everything one could argue about it
The YAML port: 8090 #can't use native port
could be converted to
a) "port": 8090, "#can't use native port":""
b) "port": 8090, "#":"can't use native port"
Change the file extension to .json5
and you can haz comments 🙂
I found it
Hjson, at https://hjson.github.io/, works better for me than JSON5. YMMV.
Its Python module has been maintained more recently and its documentation shows the syntax of multiline comments as well as #
-based comments.
You can create a special key in your JSON Mapquest Directions object to store comments. This key would be ignored by any JSON parsers that don't use it, but it allows you to include notes.
Another way, if you have a context checker that doesn't allow empty quote strings for declarations:
Hope that helps. Just have your processing code lack processing for it, and it works fine.