json_compiler README.md
这是一个用于解析和转换 JSON 数据的编译器项目。它通过词法分析、语法分析和转换处理,将 JSON 输入转换为 JavaScript 对象表示,也可以将 JavaScript 对象重新转换为 JSON 字符串。
- 词法分析 (
tokenizer): 将输入字符串解析为词法单元 (tokens)。 - 语法分析 (
parser): 从词法单元构建抽象语法树 (AST)。 - 转换 (
transformer): 遍历 AST 生成最终的 JavaScript 对象。 - 导出方法 (
parse): 将上述所有步骤串联,提供对外的 JSON 解析接口。 - 导出方法 (
stringify): 将 JavaScript 对象转换回 JSON 字符串(当前未实现)。 - 测试方法 (
testParse): 提供对解析器的测试用例,包括正常和异常的 JSON 输入。
该项目使用 TypeScript,确保您已安装 TypeScript 和 Node.js,然后克隆仓库并运行编译:
npm install -g typescript
git clone https://gitee.com/DoyoungDo/json_compiler.git
cd json_compiler
tsc使用 node 运行编译后的代码:
node index.js该代码包含如下测试用例,以验证 JSON 解析的正确性:
const stdJson = `{
"null": null,
"int": 123,
"float": 12.3,
"str": "123",
"arr": [123, 12.3,"123"],
"obj": {"key":"value"}
}`;
testParse(stdJson);parse(input: string): any- 解析 JSON 字符串为 JavaScript 对象。stringify(value: any): string- 将 JavaScript 对象转换为 JSON 字符串(当前为空实现)。
项目包含多种测试用例:
- 标准 JSON(
stdJson,stdJsonArr)。 - 错误格式 JSON(
errJson,errJson1,errJson2,errJson3,errJson4)。 - 简单 JSON(
simpleJson)。
测试函数将输出输入、解析结果或捕获的异常。
欢迎贡献代码和改进功能,尤其是完成 stringify 方法。请确保提交的代码遵循项目代码风格,并通过已有的测试用例。
该项目遵循开源许可证(具体许可证信息未在代码中提供,请查看项目根目录的 LICENSE 文件)。