# json_compiler **Repository Path**: DoyoungDo/json_compiler ## Basic Information - **Project Name**: json_compiler - **Description**: No description available - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-29 - **Last Updated**: 2025-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```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`,然后克隆仓库并运行编译: ```bash npm install -g typescript git clone https://gitee.com/DoyoungDo/json_compiler.git cd json_compiler tsc ``` ### 运行 使用 `node` 运行编译后的代码: ```bash node index.js ``` ### 示例 该代码包含如下测试用例,以验证 JSON 解析的正确性: ```ts const stdJson = `{ "null": null, "int": 123, "float": 12.3, "str": "123", "arr": [123, 12.3,"123"], "obj": {"key":"value"} }`; testParse(stdJson); ``` ### API - `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 文件)。