流式解析Json数据
由json-to-ast的实现启发而来
import { createJsonBrook } from "json-brook";
const jsonBrook = createJsonBrook();
const sample = JSON.stringify(
{
a: 1001,
b: "hello",
c: [1, 2, 3],
d: null,
},
null,
4,
);
for (const char of sample) {
jsonBrook.parse(char);
console.log(jsonBrook.generate());
}
jsonBrook.end();
console.log(jsonBrook.generate());createJsonBrook 返回一个JsonBrook实例,JsonBrook实例具有以下方法:
parse接受单个字符,去解析Json数据end代表流结束,仅针对某些特殊场景,如纯数字形式的Json字符串getRoot: 获取当前解析出的ast根节点getCurrent获取当前正在解析的ast节点generate生成当前解析结果,其中字符串和数字尽可能解析合法内容,对于true/false/null,只要识别开头就返回
该模块主要是token解析相关方法
该模块主要是ast解析相关方法
该模块主要是默认生成方法
本身库为0依赖库,以下列出为Playground使用的技术栈