0.0.3 • Published 7 years ago

pull-json-parse v0.0.3

Weekly downloads
6,912
License
MIT
Repository
github
Last release
7 years ago

JSON parse for pull-streams

The primary goal is to parse ndjson (newline delimited JSON) in a simple and efficient way.

However it also supports opening and closing brackets and commas which is useful when working with an API that maintains backwards compatibility with JSON.parse while allowing newline delimited parsing. In this case, the format has to be strictly: [\n<item>,\n<item>\n].

See pull-json-stringify for producing either pure ndjson or JSON.parse-compatibel newline delimited JSON, both parsable with this package.

const pull = require('pull-stream');
const parse = require('pull-json-parse');

pull(
	pull.values([
		'{ name: 'Juliet', age: 22 }\n',
		'{ name: 'Romeo', age: 23 }\n',
	]),
	parse,
	pull.collect(( err, json ) => console.log(json))
	/*
	[ { name: 'Juliet', age: 22 }, { name: 'Romeo', age: 23 } ]
	*/
);

pull(
	pull.values([
		'[\n',
		'{ name: 'Juliet', age: 22 }\n',
		'{ name: 'Romeo', age: 23 }\n',
		']',
	]),
	parse,
	pull.collect(( err, json ) => console.log(json))
	/*
	[ { name: 'Juliet', age: 22 }, { name: 'Romeo', age: 23 } ]
	*/
);

pull(
	pull.values([
		'{',
		'"name"',
		':"Juli',
		'et","age"',
		':22',
		'}\n{"name":"Romeo",',
		' "age":23}',
	]),
	parse,
	pull.collect(( err, json ) => console.log(json))
	/*
	[ { name: 'Juliet', age: 22 }, { name: 'Romeo', age: 23 } ]
	*/
);