Skip to content

Instantly share code, notes, and snippets.

View alethea's full-sized avatar

Alethea Rose alethea

View GitHub Profile
@creationix
creationix / jsonparse.js
Last active December 11, 2023 15:37
A streaming JSON parser as an embeddable state machine.
// A streaming byte oriented JSON parser. Feed it a single byte at a time and
// it will emit complete objects as it comes across them. Whitespace within and
// between objects is ignored. This means it can parse newline delimited JSON.
function jsonMachine(emit, next) {
next = next || $value;
return $value;
function $value(byte) {
if (!byte) return;
if (byte === 0x09 || byte === 0x0a || byte === 0x0d || byte === 0x20) {