npm install --save cson
cson2json
, json2cson
require('cson')
This package is published with the following editions:
cson
aliases cson/index.js
which uses Editions to automatically select the correct edition for the consumers environmentcson/source/index.coffee
is Source + CoffeeScript + Requirecson/esnext/index.js
is CoffeeScript Compiled + ESNext + Requirecson/es2015/index.js
is CoffeeScript Transpiled + ES2015 + RequireOlder environments may need Babel's Polyfill or something similar.
## What is CSON? Everyone knows JSON, it's the thing that looks like this: ``` javascript { "greatDocumentaries": [ "earthlings.com", "forksoverknives.com", "cowspiracy.com" ], "importantFacts": { "emissions": "Livestock and their byproducts account for at least 32,000 million tons of carbon dioxide (CO2) per year, or 51% of all worldwide greenhouse gas emissions.\nGoodland, R Anhang, J. “Livestock and Climate Change: What if the key actors in climate change were pigs, chickens and cows?”\nWorldWatch, November/December 2009. Worldwatch Institute, Washington, DC, USA. Pp. 10–19.\nhttp://www.worldwatch.org/node/6294", "landuse": "Livestock covers 45% of the earth’s total land.\nThornton, Phillip, Mario Herrero, and Polly Ericksen. “Livestock and Climate Change.” Livestock Exchange, no. 3 (2011).\nhttps://cgspace.cgiar.org/bitstream/handle/10568/10601/IssueBrief3.pdf", "burger": "One hamburger requires 660 gallons of water to produce – the equivalent of 2 months’ worth of showers.\nCatanese, Christina. “Virtual Water, Real Impacts.” Greenversations: Official Blog of the U.S. EPA. 2012.\nhttp://blog.epa.gov/healthywaters/2012/03/virtual-water-real-impacts-world-water-day-2012/\n“50 Ways to Save Your River.” Friends of the River.\nhttp://www.friendsoftheriver.org/site/PageServer?pagename=50ways", "milk": "1,000 gallons of water are required to produce 1 gallon of milk.\n“Water trivia facts.” United States Environmental Protection Agency.\nhttp://water.epa.gov/learn/kids/drinkingwater/water_trivia_facts.cfm#_edn11", "more": "http://cowspiracy.com/facts" } } ``` Now let's write the same thing in CSON: ``` coffeescript # Comments!!! # An Array with no commas! greatDocumentaries: [ 'earthlings.com' 'forksoverknives.com' 'cowspiracy.com' ] # An Object without braces! importantFacts: # Multi-Line Strings! Without Quote Escaping! emissions: ''' Livestock and their byproducts account for at least 32,000 million tons of carbon dioxide (CO2) per year, or 51% of all worldwide greenhouse gas emissions. Goodland, R Anhang, J. “Livestock and Climate Change: What if the key actors in climate change were pigs, chickens and cows?” WorldWatch, November/December 2009. Worldwatch Institute, Washington, DC, USA. Pp. 10–19. http://www.worldwatch.org/node/6294 ''' landuse: ''' Livestock covers 45% of the earth’s total land. Thornton, Phillip, Mario Herrero, and Polly Ericksen. “Livestock and Climate Change.” Livestock Exchange, no. 3 (2011). https://cgspace.cgiar.org/bitstream/handle/10568/10601/IssueBrief3.pdf ''' burger: ''' One hamburger requires 660 gallons of water to produce – the equivalent of 2 months’ worth of showers. Catanese, Christina. “Virtual Water, Real Impacts.” Greenversations: Official Blog of the U.S. EPA. 2012. http://blog.epa.gov/healthywaters/2012/03/virtual-water-real-impacts-world-water-day-2012/ “50 Ways to Save Your River.” Friends of the River. http://www.friendsoftheriver.org/site/PageServer?pagename=50ways ''' milk: ''' 1,000 gallons of water are required to produce 1 gallon of milk. “Water trivia facts.” United States Environmental Protection Agency. http://water.epa.gov/learn/kids/drinkingwater/water_trivia_facts.cfm#_edn11 ''' more: 'http://cowspiracy.com/facts' ``` Which is far more lenient than JSON, way nicer to write and read, no need to quote and escape everything, has comments and readable multi-line strings, and won't fail if you forget a comma. ## Using CSON ### Via the Command Line Use CSON with the command line with: ``` bash # Convert a JSON file into a CSON file json2cson in.json > out.cson # Same thing via piping cat in.json | json2cson > out.cson # Convert a CSON file into a JSON file cson2json in.cson > out.json # Same thing via piping cat in.cson | cson2json > out.json ``` Requires a global CSON install: `npm install -g cson` ### Via the API Include CSON: ``` javascript var CSON = require('cson') ``` Each method can be executed without a callback like so: ``` javascript var result = CSON.createCSONString({a:{b:'c'}}, {/* optional options argument */}) if ( result instanceof Error ) { console.log(result.stack) } else { console.log(result) } ``` Or via a callback like so: ``` javascript CSON.createCSONString({a:{b:'c'}}, {/* optional options argument */}, function(err,result){ console.log(err, result) }) ``` Executing the method with a callback still executes the method synchronously. Click the below function names to open more detailed documentation. #### Create Strings - String CSON.stringify(data, replacer?, indent?)HISTORY.md
file.
CONTRIBUTING.md
file.
CONTRIBUTING.md
file.