File: D:/HostingSpaces/RImmers2/portal.photomenu.nl/wwwroot/node_modules/json2csv/_docpress/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="assets/style.css?t=615badd5">
<script src="assets/script.js?t=42463e55"></script>
<title>json2csv</title>
<meta name="viewport" content="width=device-width">
</head>
<body class="-menu-visible">
<div class="doc-layout">
<div class="toggle menu-toggle js-menu-toggle"></div>
<div class="menu toc-menu">
<li class="menu-item -level-0 -parent">
<ul class="submenu">
<li class="menu-item -level-1"><a class="link title -active link-index" href="index.html">json2csv</a>
</li>
<li class="menu-item -level-1"><a class="link title link-how-to-use" href="#how-to-use">How to use</a>
</li>
<li class="menu-item -level-1"><a class="link title link-features" href="#features">Features</a>
</li>
<li class="menu-item -level-1 -parent"><a class="link title link-use-as-a-module" href="#use-as-a-module">Use as a module</a>
<ul class="submenu">
<li class="menu-item -level-2"><a class="link title link-available-options" href="#available-options">Available Options</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-1" href="#example-1">Example 1</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-2" href="#example-2">Example 2</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-3" href="#example-3">Example 3</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-4" href="#example-4">Example 4</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-5" href="#example-5">Example 5</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-6" href="#example-6">Example 6</a>
</li>
<li class="menu-item -level-2"><a class="link title link-example-7" href="#example-7">Example 7</a>
</li>
</ul>
</li>
<li class="menu-item -level-1 -parent"><a class="link title link-command-line-interface" href="#command-line-interface">Command Line Interface</a>
<ul class="submenu">
<li class="menu-item -level-2"><a class="link title link-cli-examples" href="#cli-examples">CLI examples</a>
</li>
</ul>
</li>
<li class="menu-item -level-1 -parent"><a class="link title link-include-using-a-script-tag-(not-recommended)" href="#include-using-a-script-tag-(not-recommended)">Include using a script tag (not recommended)</a>
<ul class="submenu">
<li class="menu-item -level-2"><a class="link title link-building" href="#building">Building</a>
</li>
</ul>
</li>
<li class="menu-item -level-1"><a class="link title link-testing" href="#testing">Testing</a>
</li>
<li class="menu-item -level-1"><a class="link title link-contributors" href="#contributors">Contributors</a>
</li>
<li class="menu-item -level-1"><a class="link title link-but-i-want-streams!" href="#but-i-want-streams!">But I want streams!</a>
</li>
<li class="menu-item -level-1"><a class="link title link-similar-projects" href="#similar-projects">Similar Projects</a>
</li>
<li class="menu-item -level-1"><a class="link title link-license" href="#license">License</a>
</li>
</ul>
</li>
</div>
<div class="body page-index">
<div class="header-nav">
<div class="right">
</div>
</div>
<div class="markdown-body"><h1 id="json2csv">json2csv</h1>
<p>Converts json into csv with column titles and proper line endings. Can be used as a module and from the command line.</p>
<p><a href="http://badge.fury.io/js/json2csv"><img src="https://badge.fury.io/js/json2csv.svg" alt="npm version"></a>
<a href="https://travis-ci.org/zemirco/json2csv"><img src="https://travis-ci.org/zemirco/json2csv.svg" alt="Build Status"></a>
<a href="https://coveralls.io/r/zemirco/json2csv?branch=master"><img src="https://coveralls.io/repos/zemirco/json2csv/badge.svg?branch=master" alt="Coverage Status"></a>
<a href="https://david-dm.org/zemirco/json2csv"><img src="https://david-dm.org/zemirco/json2csv.svg" alt="Dependency Status"></a></p>
<p>See the <a href="https://github.com/zemirco/json2csv/blob/master/CHANGELOG.md">CHANGELOG</a> for details about the latest release.</p>
<h2 id="how-to-use">How to use</h2>
<p>Install</p>
<pre><code class="lang-bash">$ npm install json2csv --save
</code></pre>
<p>Include the module and run or <a href="https://github.com/zemirco/json2csv#command-line-interface">use it from the Command Line</a>. It's also possible to include <code>json2csv</code> as a global using an HTML script tag, though it's normally recommended that modules are used.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'field1'</span>, <span class="pl-s">'field2'</span>, <span class="pl-s">'field3'</span>];
<span class="pl-k">try</span> {
<span class="pl-k">var</span> result = json2csv({ <span class="hljs-attr">data</span>: myData, <span class="hljs-attr">fields</span>: fields });
<span class="pl-c1">console</span>.log(result);
} <span class="pl-k">catch</span> (err) {
<span class="pl-c">// Errors are thrown for bad options, or if the data is empty and no fields are provided.</span>
<span class="pl-c">// Be sure to provide fields if it is possible that your data array will be empty.</span>
<span class="pl-c1">console</span>.error(err);
}
</code></pre>
<h2 id="features">Features</h2>
<ul>
<li>Uses proper line endings on various operating systems</li>
<li>Handles double quotes</li>
<li>Allows custom column selection</li>
<li>Allows specifying nested properties</li>
<li>Reads column selection from file</li>
<li>Pretty writing to stdout</li>
<li>Supports optional custom delimiters</li>
<li>Supports optional custom eol value</li>
<li>Supports optional custom quotation marks</li>
<li>Not create CSV column title by passing hasCSVColumnTitle: false, into params.</li>
<li>If field is not exist in object then the field value in CSV will be empty.</li>
</ul>
<h2 id="use-as-a-module">Use as a module</h2>
<h3 id="available-options">Available Options</h3>
<ul>
<li><code>options</code> - <strong>Required</strong>; Options hash.
<ul>
<li><code>data</code> - <strong>Required</strong>; Array of JSON objects.</li>
<li><code>fields</code> - Array of Objects/Strings. Defaults to toplevel JSON attributes. See example below.</li>
<li><code>fieldNames</code> Array of Strings, names for the fields at the same indexes.
Must be the same length as <code>fields</code> array. (Optional. Maintained for backwards compatibility. Use <code>fields</code> config object for more features)</li>
<li><code>del</code> - String, delimiter of columns. Defaults to <code>,</code> if not specified.</li>
<li><code>defaultValue</code> - String, default value to use when missing data. Defaults to <code><empty></code> if not specified. (Overridden by <code>fields[].default</code>)</li>
<li><code>quotes</code> - String, quotes around cell values and column names. Defaults to <code>"</code> if not specified.</li>
<li><code>doubleQuotes</code> - String, the value to replace double quotes in strings. Defaults to 3x<code>quotes</code> (for example <code>"""</code>) if not specified.</li>
<li><code>hasCSVColumnTitle</code> - Boolean, determines whether or not CSV file will contain a title column. Defaults to <code>true</code> if not specified.</li>
<li><code>eol</code> - String, it gets added to each row of data. Defaults to `` if not specified.</li>
<li><code>newLine</code> - String, overrides the default OS line ending (i.e. <code>\n</code> on Unix and <code>\r\n</code> on Windows).</li>
<li><code>flatten</code> - Boolean, flattens nested JSON using <a href="https://www.npmjs.com/package/flat">flat</a>. Defaults to <code>false</code>.</li>
<li><code>unwindPath</code> - String, creates multiple rows from a single JSON document similar to MongoDB's $unwind</li>
<li><code>excelStrings</code> - Boolean, converts string data into normalized Excel style data.</li>
<li><code>includeEmptyRows</code> - Boolean, includes empty rows. Defaults to <code>false</code>.</li>
</ul>
</li>
<li><code>callback</code> - <code>function (error, csvString) {}</code>. If provided, will callback asynchronously. Only supported for compatibility reasons.</li>
</ul>
<h4 id="example-fields-option">Example <code>fields</code> option</h4>
<pre><code class="lang-javascript">{
<span class="hljs-attr">fields</span>: [
<span class="pl-c">// Supports label -> simple path</span>
{
<span class="hljs-attr">label</span>: <span class="pl-s">'some label'</span>, <span class="pl-c">// (optional, column will be labeled 'path.to.something' if not defined)</span>
value: <span class="pl-s">'path.to.something'</span>, <span class="pl-c">// data.path.to.something</span>
<span class="pl-k">default</span>: <span class="pl-s">'NULL'</span> <span class="pl-c">// default if value is not found (optional, overrides `defaultValue` for column)</span>
},
<span class="pl-c">// Supports label -> derived value</span>
{
<span class="hljs-attr">label</span>: <span class="pl-s">'some label'</span>, <span class="pl-c">// Supports duplicate labels (required, else your column will be labeled [function])</span>
value: <span class="hljs-function"><span class="pl-k">function</span>(<span class="hljs-params">row, field, data</span>) </span>{
<span class="pl-c">// field = { label, default }</span>
<span class="pl-c">// data = full data object</span>
<span class="pl-k">return</span> row.path1 + row.path2;
},
<span class="hljs-attr">default</span>: <span class="pl-s">'NULL'</span> <span class="pl-c">// default if value function returns null or undefined</span>
},
<span class="pl-c">// Support pathname -> pathvalue</span>
<span class="pl-s">'simplepath'</span> <span class="pl-c">// equivalent to {value:'simplepath'}</span>
<span class="pl-s">'path.to.value'</span> <span class="pl-c">// also equivalent to {label:'path.to.value', value:'path.to.value'}</span>
]
}
</code></pre>
<h3 id="example-1">Example 1</h3>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fs = <span class="pl-c1">require</span>(<span class="pl-s">'fs'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car'</span>, <span class="pl-s">'price'</span>, <span class="pl-s">'color'</span>];
<span class="pl-k">var</span> myCars = [
{
<span class="pl-s">"car"</span>: <span class="pl-s">"Audi"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">40000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"blue"</span>
}, {
<span class="pl-s">"car"</span>: <span class="pl-s">"BMW"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">35000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"black"</span>
}, {
<span class="pl-s">"car"</span>: <span class="pl-s">"Porsche"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">60000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"green"</span>
}
];
<span class="pl-k">var</span> csv = json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields });
fs.writeFile(<span class="pl-s">'file.csv'</span>, csv, <span class="hljs-function"><span class="pl-k">function</span>(<span class="hljs-params">err</span>) </span>{
<span class="pl-k">if</span> (err) <span class="pl-k">throw</span> err;
<span class="pl-c1">console</span>.log(<span class="pl-s">'file saved'</span>);
});
</code></pre>
<p>The content of the "file.csv" should be</p>
<pre><code>car, price, color
"Audi", 40000, "blue"
"BMW", 35000, "black"
"Porsche", 60000, "green"
</code></pre>
<h3 id="example-2">Example 2</h3>
<p>Similarly to <a href="http://www.mongodb.org/display/DOCS/mongoexport">mongoexport</a> you can choose which fields to export.
Note: this example uses the optional callback format.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car'</span>, <span class="pl-s">'color'</span>];
json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields }, <span class="hljs-function"><span class="pl-k">function</span>(<span class="hljs-params">err, csv</span>) </span>{
<span class="pl-k">if</span> (err) <span class="pl-c1">console</span>.log(err);
<span class="pl-c1">console</span>.log(csv);
});
</code></pre>
<p>Results in</p>
<pre><code>car, color
"Audi", "blue"
"BMW", "black"
"Porsche", "green"
</code></pre>
<h3 id="example-3">Example 3</h3>
<p>Use a custom delimiter to create tsv files. Add it as the value of the del property on the parameters:</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car'</span>, <span class="pl-s">'price'</span>, <span class="pl-s">'color'</span>];
<span class="pl-k">var</span> tsv = json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields, <span class="hljs-attr">del</span>: <span class="pl-s">'\t'</span> });
<span class="pl-c1">console</span>.log(tsv);
</code></pre>
<p>Will output:</p>
<pre><code>car price color
"Audi" 10000 "blue"
"BMW" 15000 "red"
"Mercedes" 20000 "yellow"
"Porsche" 30000 "green"
</code></pre>
<p>If no delimiter is specified, the default <code>,</code> is used</p>
<h3 id="example-4">Example 4</h3>
<p>You can choose custom column names for the exported file.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car'</span>, <span class="pl-s">'price'</span>];
<span class="pl-k">var</span> fieldNames = [<span class="pl-s">'Car Name'</span>, <span class="pl-s">'Price USD'</span>];
<span class="pl-k">var</span> csv = json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields, <span class="hljs-attr">fieldNames</span>: fieldNames });
<span class="pl-c1">console</span>.log(csv);
</code></pre>
<h3 id="example-5">Example 5</h3>
<p>You can choose custom quotation marks.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car'</span>, <span class="pl-s">'price'</span>];
<span class="pl-k">var</span> fieldNames = [<span class="pl-s">'Car Name'</span>, <span class="pl-s">'Price USD'</span>];
<span class="pl-k">var</span> opts = {
<span class="hljs-attr">data</span>: myCars,
<span class="hljs-attr">fields</span>: fields,
<span class="hljs-attr">fieldNames</span>: fieldNames,
<span class="hljs-attr">quotes</span>: <span class="pl-s">''</span>
};
<span class="pl-k">var</span> csv = json2csv(opts);
<span class="pl-c1">console</span>.log(csv);
</code></pre>
<p>Results in</p>
<pre><code>Car Name, Price USD
Audi, 10000
BMW, 15000
Porsche, 30000
</code></pre>
<h3 id="example-6">Example 6</h3>
<p>You can also specify nested properties using dot notation.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fs = <span class="pl-c1">require</span>(<span class="pl-s">'fs'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'car.make'</span>, <span class="pl-s">'car.model'</span>, <span class="pl-s">'price'</span>, <span class="pl-s">'color'</span>];
<span class="pl-k">var</span> myCars = [
{
<span class="pl-s">"car"</span>: {<span class="pl-s">"make"</span>: <span class="pl-s">"Audi"</span>, <span class="pl-s">"model"</span>: <span class="pl-s">"A3"</span>},
<span class="pl-s">"price"</span>: <span class="hljs-number">40000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"blue"</span>
}, {
<span class="pl-s">"car"</span>: {<span class="pl-s">"make"</span>: <span class="pl-s">"BMW"</span>, <span class="pl-s">"model"</span>: <span class="pl-s">"F20"</span>},
<span class="pl-s">"price"</span>: <span class="hljs-number">35000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"black"</span>
}, {
<span class="pl-s">"car"</span>: {<span class="pl-s">"make"</span>: <span class="pl-s">"Porsche"</span>, <span class="pl-s">"model"</span>: <span class="pl-s">"9PA AF1"</span>},
<span class="pl-s">"price"</span>: <span class="hljs-number">60000</span>,
<span class="pl-s">"color"</span>: <span class="pl-s">"green"</span>
}
];
<span class="pl-k">var</span> csv = json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields });
fs.writeFile(<span class="pl-s">'file.csv'</span>, csv, <span class="hljs-function"><span class="pl-k">function</span>(<span class="hljs-params">err</span>) </span>{
<span class="pl-k">if</span> (err) <span class="pl-k">throw</span> err;
<span class="pl-c1">console</span>.log(<span class="pl-s">'file saved'</span>);
});
</code></pre>
<p>The content of the "file.csv" should be</p>
<pre><code>car.make, car.model, price, color
"Audi", "A3", 40000, "blue"
"BMW", "F20", 35000, "black"
"Porsche", "9PA AF1", 60000, "green"
</code></pre>
<h3 id="example-7">Example 7</h3>
<p>You can unwind arrays similar to MongoDB's $unwind operation using the <code>unwindPath</code> option.</p>
<pre><code class="lang-javascript"><span class="pl-k">var</span> json2csv = <span class="pl-c1">require</span>(<span class="pl-s">'json2csv'</span>);
<span class="pl-k">var</span> fs = <span class="pl-c1">require</span>(<span class="pl-s">'fs'</span>);
<span class="pl-k">var</span> fields = [<span class="pl-s">'carModel'</span>, <span class="pl-s">'price'</span>, <span class="pl-s">'colors'</span>];
<span class="pl-k">var</span> myCars = [
{
<span class="pl-s">"carModel"</span>: <span class="pl-s">"Audi"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">0</span>,
<span class="pl-s">"colors"</span>: [<span class="pl-s">"blue"</span>,<span class="pl-s">"green"</span>,<span class="pl-s">"yellow"</span>]
}, {
<span class="pl-s">"carModel"</span>: <span class="pl-s">"BMW"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">15000</span>,
<span class="pl-s">"colors"</span>: [<span class="pl-s">"red"</span>,<span class="pl-s">"blue"</span>]
}, {
<span class="pl-s">"carModel"</span>: <span class="pl-s">"Mercedes"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">20000</span>,
<span class="pl-s">"colors"</span>: <span class="pl-s">"yellow"</span>
}, {
<span class="pl-s">"carModel"</span>: <span class="pl-s">"Porsche"</span>,
<span class="pl-s">"price"</span>: <span class="hljs-number">30000</span>,
<span class="pl-s">"colors"</span>: [<span class="pl-s">"green"</span>,<span class="pl-s">"teal"</span>,<span class="pl-s">"aqua"</span>]
}
];
<span class="pl-k">var</span> csv = json2csv({ <span class="hljs-attr">data</span>: myCars, <span class="hljs-attr">fields</span>: fields, <span class="hljs-attr">unwindPath</span>: <span class="pl-s">'colors'</span> });
fs.writeFile(<span class="pl-s">'file.csv'</span>, csv, <span class="hljs-function"><span class="pl-k">function</span>(<span class="hljs-params">err</span>) </span>{
<span class="pl-k">if</span> (err) <span class="pl-k">throw</span> err;
<span class="pl-c1">console</span>.log(<span class="pl-s">'file saved'</span>);
});
</code></pre>
<p>The content of the "file.csv" should be</p>
<pre><code>"carModel","price","colors"
"Audi",0,"blue"
"Audi",0,"green"
"Audi",0,"yellow"
"BMW",15000,"red"
"BMW",15000,"blue"
"Mercedes",20000,"yellow"
"Porsche",30000,"green"
"Porsche",30000,"teal"
"Porsche",30000,"aqua"
</code></pre>
<h2 id="command-line-interface">Command Line Interface</h2>
<p><code>json2csv</code> can also be called from the command line if installed with <code>-g</code>.</p>
<pre><code class="lang-bash">Usage: json2csv [options]
Options:
-h, --help output usage information
-V, --version output the version number
-i, --input <input> Path and name of the incoming json file.
-o, --output [output] Path and name of the resulting csv file. Defaults to console.
<span class="hljs-_">-f</span>, --fields <fields> Specify the fields to convert.
<span class="hljs-_">-l</span>, --fieldList [list] Specify a file with a list of fields to include. One field per line.
<span class="hljs-_">-d</span>, --delimiter [delimiter] Specify a delimiter other than the default comma to use.
<span class="hljs-_">-e</span>, --eol [value] Specify an EOL value after each row.
-z, --newLine [value] Specify an new line value <span class="pl-k">for</span> separating rows.
-q, --quote [value] Specify an alternate quote value.
-n, --no-header Disable the column name header
-F, --flatten Flatten nested objects
-L, --ldjson Treat the input as Line-Delimited JSON.
-p, --pretty Use only when printing to console. Logs output <span class="pl-k">in</span> pretty tables.
<span class="hljs-_">-a</span>, --include-empty-rows Includes empty rows <span class="pl-k">in</span> the resulting CSV output.
</code></pre>
<p>An input file <code>-i</code> and fields <code>-f</code> are required. If no output <code>-o</code> is specified the result is logged to the console.
Use <code>-p</code> to show the result in a beautiful table inside the console.</p>
<h3 id="cli-examples">CLI examples</h3>
<h4 id="input-file-and-specify-fields">Input file and specify fields</h4>
<pre><code class="lang-bash">$ json2csv -i input.json <span class="hljs-_">-f</span> carModel,price,color
</code></pre>
<pre><code>carModel,price,color
"Audi",10000,"blue"
"BMW",15000,"red"
"Mercedes",20000,"yellow"
"Porsche",30000,"green"
</code></pre>
<h4 id="input-file-specify-fields-and-use-pretty-logging">Input file, specify fields and use pretty logging</h4>
<pre><code class="lang-bash">$ json2csv -i input.json <span class="hljs-_">-f</span> carModel,price,color -p
</code></pre>
<p><img src="https://s3.amazonaws.com/zeMirco/github/json2csv/json2csv-pretty.png" alt="Screenshot"></p>
<h4 id="input-file-specify-fields-and-write-to-file">Input file, specify fields and write to file</h4>
<pre><code class="lang-bash">$ json2csv -i input.json <span class="hljs-_">-f</span> carModel,price,color -o out.csv
</code></pre>
<p>Content of <code>out.csv</code> is</p>
<pre><code>carModel,price,color
"Audi",10000,"blue"
"BMW",15000,"red"
"Mercedes",20000,"yellow"
"Porsche",30000,"green"
</code></pre>
<h4 id="input-file-use-field-list-and-write-to-file">Input file, use field list and write to file</h4>
<p>The file <code>fieldList</code> contains</p>
<pre><code>carModel
price
color
</code></pre>
<p>Use the following command with the <code>-l</code> flag</p>
<pre><code class="lang-bash">$ json2csv -i input.json <span class="hljs-_">-l</span> fieldList -o out.csv
</code></pre>
<p>Content of <code>out.csv</code> is</p>
<pre><code>carModel,price,color
"Audi",10000,"blue"
"BMW",15000,"red"
"Mercedes",20000,"yellow"
"Porsche",30000,"green"
</code></pre>
<h4 id="read-from-stdin">Read from stdin</h4>
<pre><code class="lang-bash">$ json2csv <span class="hljs-_">-f</span> price
[{<span class="pl-s">"price"</span>:1000},{<span class="pl-s">"price"</span>:2000}]
</code></pre>
<p>Hit <kbd>Enter</kbd> and afterwards <kbd>CTRL</kbd> + <kbd>D</kbd> to end reading from stdin. The terminal should show</p>
<pre><code>price
1000
2000
</code></pre>
<h4 id="appending-to-existing-csv">Appending to existing CSV</h4>
<p>Sometimes you want to add some additional rows with the same columns.
This is how you can do that.</p>
<pre><code class="lang-bash"><span class="pl-c"># Initial creation of csv with headings</span>
$ json2csv -i test.json <span class="hljs-_">-f</span> name,version > test.csv
<span class="pl-c"># Append additional rows</span>
$ json2csv -i test.json <span class="hljs-_">-f</span> name,version --no-header >> test.csv
</code></pre>
<h2 id="include-using-a-script-tag-(not-recommended)">Include using a script tag (not recommended)</h2>
<p>If it's not possible to work with node modules, <code>json2csv</code> can be declared as a global by requesting <code>dist/json2csv.js</code> via an HTML script tag:</p>
<pre><code><script src="node_modules/json2csv/dist/json2csv.js"></script>
<script>
console.log(typeof json2csv === 'function'); // true
</script>
</code></pre>
<h3 id="building">Building</h3>
<p>When developing, it's necessary to run <code>webpack</code> to prepare the built script. This can be done easily with <code>npm run build</code>.</p>
<p>If <code>webpack</code> is not already available from the command line, use <code>npm install -g webpack</code>.</p>
<h2 id="testing">Testing</h2>
<p>Run the following command to test and return coverage</p>
<pre><code class="lang-bash">$ npm <span class="pl-c1">test</span>
</code></pre>
<h2 id="contributors">Contributors</h2>
<p>Install require packages for development run following command under json2csv dir.</p>
<p>Run</p>
<pre><code class="lang-bash">$ npm install
</code></pre>
<p>Could you please make sure code is formatted and test passed before submit Pull Requests?</p>
<p>See Testing section above.</p>
<h2 id="but-i-want-streams!">But I want streams!</h2>
<p>Check out my other module <a href="https://github.com/zemirco/json2csv-stream">json2csv-stream</a>. It transforms an incoming
stream containing <code>json</code> data into an outgoing <code>csv</code> stream.</p>
<h2 id="similar-projects">Similar Projects</h2>
<ul>
<li><a href="http://papaparse.com/">Papa Parse</a></li>
</ul>
<h2 id="license">License</h2>
<p>See <a href="https://github.com/zemirco/json2csv/blob/master/LICENSE.md">LICENSE.md</a>.</p>
</div>
</div>
</div>
</body>
</html>