Simple script to convert files from custom to well-formed JSON.
PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CHANGELOG.md
LICENSE.txt
README.md
jsonc.php

README.md

Jsonc

Simple script to convert files from custom to well-formed JSON.

Introduction

Ever wanted to use comments and trailing commas into JSON files?

The JSON format will undoubtedly evolve to let us use comments, trailing commas and other desirable features, like the ones described in JSON5.

In the meanwhile I wrote a script which converts a JSON file with comments and trailing comments into a well-formed JSON file.

Installation

Download the latest stable Jsonc script from the server:

https://raw.githubusercontent.com/aleron75/jsonc/master/jsonc.php

You can optionally generate the MD5 checksum using:

md5sum jsonc.php

and verify the download by comparing the obtained checksum using the following table:

version MD5
latest (branch: master) e689ed92a529048e10ba79ee08a6850a

Make the script executable:

chmod +x ./jsonc.php

Make the script system wide executable:

sudo cp ./jsonc.php /usr/local/bin/jsonc

Verify the installation by typing:

jsonc --help

You should obtain something like:

Jsonc 1.0.0 by aleron75 and contributors

Usage:   jsonc [options] [filename_without_extension]
e.g.:	jsonc -f # convert composer.jsonc into composer.json
e.g.:	jsonc -f myjsonfile # convert myjsonfile.jsonc into myjsonfile.json

Options:

	-f|--force	Force the overwriting of existing <filename_without_extension>.json

Miscellaneous:

	-h|--help	Display this help screen    

Usage

The script expects you have a yourfilename.jsonc to process.

A jsonc file is a file in JSON format in which you can have:

  • lines starting with # - represent lines to ignore
  • trailing ',' on last property of an object
  • trailing ',' on last element of a list

Run the script with the yourfilename (without extension) parameter and it will generate a yourfilename.json` well-formed file.

Example

jsonc yourfilename

Will search for yourfilename.jsonc file and generate yourfilename.json file.

Since the main reason I created this script was to have the ability to comment-out lines in composer.json files, if you don't specify the yourfilename parameter, a default composer will be used.

Example

jsonc

Will search for composer.jsonc file and generate composer.json file.

In case the output file already exists, the script won't overwrite it unless you force overwrite through the -f or --force option.

Releases

Please, refer to the CHANGELOG file for information about current releases.

Contributing

Contributions are welcome and can be done using the fork & pull model.

This contribution model requires contributors maintaining their own copy of the forked codebase keeping it synced with the main copy.

The forked repository can then be used to submit a pull request to the base repository.

Contributions can take the form of new features, changes to existing features, tests, documentation, bug fixes, optimizations and suggestions.

Contributions will be reviewed in first in, first out order and contributors may be asked some clarifications by repository maintainer.

In case of requests by maintainers without response from contributors for two weeks the pull request may be closed without merging.

Copyright and license

This script is copyright © Alessandro Ronchi and licensed for use under the Open Source License 3.0 (OSL-3.0). Please refer to LICENSE file for more information.