JSONLines for Node.js
Parse JSONLines with Node.js.
Installation
npm install --save jsonlines
Usage
var jsonlines = require('jsonlines')
var parser = jsonlines.parse()
parser.on('data', function (data) {
console.log('Got json:', data)
})
parser.on('end', function () {
console.log('No more data')
})
parser.write('{ "test": "This is a test!" }\n')
parser.write('{ "jsonlines": "is awesome" }')
parser.end()
var jsonlines = require('jsonlines')
var stringifier = jsonlines.stringify()
stringifier.pipe(process.stdout)
stringifier.write({ test: 'This is a test!' })
stringifier.write({ jsonlines: 'is awesome' })
stringifier.end()
API
.parse([options])
Returns a transform stream that turns newline separated json into a stream of javascript values.
options
is an optional object with the keys documented below.
.stringify()
Returns a transform stream that turns javascript values into a stream of newline separated json.
Options
emitInvalidLine
If true, instead of emitting an error and cancelling the stream when an invalid line is proccessed, an invalid-line
event is emitted with the same error. This is very useful when processing text that have mixed plain text and json data.
Example:
var jsonlines = require('jsonlines')
var parser = jsonlines.parse({ emitInvalidLines: true })
parser.on('data', function (data) {
console.log('Got json:', data)
})
parser.on('invalid-line', function (err) {
console.log('Got text:', err.source)
})
parser.write('{ "test": "This is a test!" }\n')
parser.write('This is some plain text\n')
parser.write('{ "jsonlines": "is awesome" }')
parser.end()
Output:
Got json: { test: 'This is a test!' }
Got text: This is some plain text
Got json: { jsonlines: 'is awesome' }