##JSON
ご存知、JSON(JavaScript Object Notation)形式。
JSONオブジェクトは、標準ビルトインオブジェクトなので特別な準備なしで手軽に扱うことができる。
###サンプル
{
"browsers": {
"firefox": {
"name": "Firefox",
"pref_url": "about:config",
"releases": {
"1": {
"release_date": "2004-11-09",
"status": "retired",
"engine": "Gecko",
"engine_version": "1.7"
}
}
}
}
}
###使用方法
モジュールのインストールなどは不要。
// 文字列textをJSONとして解析し、JSオブジェクトに変換
const obj = JSON.pares(text)
// JSオブジェクトをJSON文字列に変換
const text = JSON.stringify(obj)
##JSON5
JSON5は、JSONのスーパーセット。JSONの制限の一部を緩和する。
JSON5の拡張
- 末尾にコンマがあってもエラーにならない
- 文字列を一重引用符で囲むことができる
- 複数行の文字列を扱える(改行文字をエスケープする)
- 単一行および複数行のコメントが使える
- 空白文字を使用できる
など
###サンプル
{
// comments
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}
###インストール
npm install json5
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
###使用方法
const JSON5 = require('json5')
// 文字列textをJSON5として解析し、JSオブジェクトに変換
const obj = JSON5.pares(text)
// JSオブジェクトをJSON5文字列に変換
const text = JSON5.stringify(obj)
##CSON
CSON(CoffeeScript-Object-Notation)は、CoffeeScript記法を基にしたデータ形式。
###サンプル
{
"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"
}
}
###インストール
npm install cson
###使用方法
const CSON = require('cson')
// 文字列textをCSONとして解析し、JSオブジェクトに変換
const obj = CSON.pares(text)
// JSオブジェクトをCSON文字列に変換
const text = CSON.stringify(obj)
##HTML/XML/RSS
cheerioは、コアjQueryのサブセット。
###インストール
npm install cheerio
###使用方法
const cheerio = require('cheerio')
const $ = cheerio.load('<h2 class="title">Hello world</h2>')
$('h2.title').text('Hello there!')
$('h2').addClass('welcome')
$.html()
//=> <html><head></head><body><h2 class="title welcome">Hello there!</h2></body></html>
##YAML
YAML(ヤムル、YAML Ain't a Markup Language)は、JSONのスーパーセットです。
設定ファイルによく使われています。
###サンプル
--- # お好みの映画、ブロック形式
- Casablanca
- Spellbound
- Notorious
--- # 買い物リスト、インライン形式、またはフロー形式
[milk, bread, eggs]
--- # ブロック
name: John Smith
age: 33
--- # インライン
{name: John Smith, age: 33}
###インストール
npm install js-yaml
###使用方法
const yaml = require('js-yaml')
const obj = yaml.safeLoad(txt)
for (var i in obj.items) {
const it = obj.items[i]
console.log(it.name, it.price)
}
##INI
INI(イニ)ファイルは、昔から設定ファイルによく使われています。
###サンプル
[section1]
name1=value1
name2=value2
[section2]
name3=value3
###インストール
npm install ini
###使用方法
const ini = require('ini')
const obj = ini.parse(txt)
for (const name in obj) {
const it = obj[name]
console.log(name, it.price, it.color)
}
##CSV
RFC4180準拠のcomma-separated-valuesを使う。
###サンプル
"aaa","bbb","ccc"
zzz,yyy,xxx
###インストール
npm install comma-separated-values
<script src="csv.min.js"></script>
###使用方法
const CSV = require('comma-separeted-values')
const csv = new CSV(txt, {header:fales)}
const records = csv.parse()
##Word/Excel/Powerpoint
officegenは、Microsoft Office 2007以降用のOffice Open XMLファイル(Word、Excel、Powerpoint)を、外部ツールなしで純粋なJavaScriptで作成します。
###インストール
npm install officegen
###使用方法
const officegen = require('officegen')
const fs = require('fs')
// Create an empty Excel object:
let xlsx = officegen('xlsx')
// Officegen calling this function after finishing to generate the xlsx document:
xlsx.on('finalize', function(written) {
console.log(
'Finish to create a Microsoft Excel document.'
)
})
// Officegen calling this function to report errors:
xlsx.on('error', function(err) {
console.log(err)
})
let sheet = xlsx.makeNewSheet()
sheet.name = 'Officegen Excel'
// Add data using setCell:
sheet.setCell('E7', 42)
sheet.setCell('I1', -3)
sheet.setCell('I2', 3.141592653589)
sheet.setCell('G102', 'Hello World!')
// The direct option - two-dimensional array:
sheet.data[0] = []
sheet.data[0][0] = 1
sheet.data[1] = []
sheet.data[1][3] = 'some'
sheet.data[1][4] = 'data'
sheet.data[1][5] = 'goes'
sheet.data[1][6] = 'here'
sheet.data[2] = []
sheet.data[2][5] = 'more text'
sheet.data[2][6] = 900
sheet.data[6] = []
sheet.data[6][2] = 1972
// Let's generate the Excel document into a file:
let out = fs.createWriteStream('example.xlsx')
out.on('error', function(err) {
console.log(err)
})
// Async call to generate the output file:
xlsx.generate(out)
##PDF
html-pdfは、開発終了のPhantomJSを使っているので使用は避けたいけれども。
###インストール
npm install html-pdf
###使用方法
ar fs = require('fs');
var pdf = require('html-pdf');
var html = fs.readFileSync('./test/businesscard.html', 'utf8');
var options = { format: 'Letter' };
pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res); // { filename: '/app/businesscard.pdf' }
});