开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

RapidJSON介绍

最新消息

  • [2026.06.30]:发布字符串解析与序列化快速路径优化,提升UTF-8内存输入解析和StringBuffer输出场景性能。

项目简介

简介

RapidJSON是Tencent开源的高性能、轻量级、Header-only C++ JSON解析器与生成器,支持SAX和DOM两种使用方式。RapidJSON不依赖STL和Boost等外部库,适合在服务端、嵌入式和性能敏感场景中进行JSON数据解析、构造、校验与序列化。其核心优势为接口简单、内存占用低、跨平台能力好,并支持UTF-8/UTF-16/UTF-32等编码处理。

核心模块

RapidJSON整体分为解析模块DOM模块写入模块辅助工具模块等核心部分,其内部模块划分如下:

  • Reader解析模块:提供SAX风格的流式JSON解析能力,负责词法扫描、字符串解码、数值解析与事件派发;
  • Document/Value DOM模块:提供JSON对象树的构建、查询、修改、拷贝与内存分配管理能力;
  • Writer写入模块:提供SAX事件到JSON文本的序列化能力,支持紧凑输出与格式化输出;
  • Stream流模块:抽象内存、文件、字符串等输入输出通道,支撑解析和写入过程;
  • Encoding编码模块:提供UTF-8、UTF-16、UTF-32编码转换与校验能力;
  • Schema校验模块:支持JSON Schema校验,用于检查JSON数据结构与约束。

对外核心接口函数

以下为RapidJSON(以C++为例)对外的核心接口函数,覆盖DOM解析、SAX解析、JSON序列化、Schema校验等核心能力。

模块分类 接口函数/方法 功能描述
DOM解析 Document::Parse 将JSON字符串解析为DOM对象树。
DOM解析 Document::ParseStream 从输入流解析JSON数据。
DOM访问 Value::FindMember 查询Object成员并返回迭代器。
DOM访问 Value::GetArray 获取Array视图并遍历数组元素。
DOM修改 Value::AddMember 向Object添加键值成员。
DOM修改 Value::PushBack 向Array追加元素。
序列化 Writer::String 写入JSON字符串值。
序列化 Writer::WriteString 将字符串内容转义并输出到目标流。
序列化 PrettyWriter 生成带缩进和换行的格式化JSON文本。
流处理 StringBuffer::GetString 获取序列化后的JSON字符串。
流处理 MemoryStream 从内存缓冲区读取JSON输入。
Schema校验 SchemaDocument 构造JSON Schema文档。
Schema校验 SchemaValidator 校验JSON数据是否符合Schema。

目录结构

项目目录层级介绍如下:

# 文档目录
README.md                          # 项目说明
LICENSE                            # 代码许可证
kunpeng_opti_v1.0.0.patch          # 基于dev与master生成的优化补丁
docs/
├── LICENSE                        # 文档许可证
└── zh/
    ├── api_reference.md           # API参考
    ├── installation_guide.md      # 安装指南
    ├── menu_rapidjson.md          # 文档导航
    ├── quick_start.md             # 快速入门
    └── release_notes.md           # 版本说明书

# 代码目录(dev分支)
rapidjson/
├── include/rapidjson/             # Header-only核心头文件
│   ├── reader.h                   # SAX解析器与字符串扫描逻辑
│   ├── writer.h                   # JSON写入器与字符串序列化逻辑
│   ├── document.h                 # DOM Document/Value定义
│   ├── stringbuffer.h             # 内存输出缓冲
│   ├── memorystream.h             # 内存输入流
│   └── ...
├── example/                       # 使用示例
├── test/                          # 单元测试与性能测试
├── doc/                           # 上游文档
├── bin/                           # 测试数据
├── CMakeLists.txt                 # CMake构建文件
└── readme.md                      # 上游项目说明

版本说明

基于鲲鹏优化的RapidJSON每个发布版本特性变更详细信息,请参见《版本说明书》。

环境部署

基于鲲鹏优化的RapidJSON编译环境、依赖获取与安装步骤参见《安装指南》。

快速入门

安装RapidJSON后如何快速上手使用RapidJSON请参见《快速入门》。

文档

资源名称 资源简介
版本说明书 提供基于鲲鹏优化的RapidJSON每个发布版本的基础信息和特性更新说明。
快速入门 提供基于鲲鹏优化的RapidJSON快速上手示例与编译运行说明。
API参考 提供字符串解析和序列化优化相关接口说明与函数定义。
安装指南 提供基于鲲鹏优化代码RapidJSON的环境配置与编译安装的详细指导。

免责声明

致RapidJSON使用者

  • 本软件仅供调试和开发之用,使用者需自行承担使用风险,并理解以下内容:

    • 此代码仓计划参与RapidJSON软件开源,仅对RapidJSON部分函数在鲲鹏处理器上进行性能优化,编码风格遵照原生开源软件,继承原生开源软件安全设计,不破坏原生开源软件设计及编码风格和方式。软件的任何漏洞与安全问题,均由相应的上游社区根据其漏洞和安全响应机制解决。请密切关注上游社区发布的通知和版本更新。鲲鹏计算社区对软件的漏洞及安全问题不承担任何责任。
    • 数据处理及删除:用户在使用本软件过程中产生的数据属于用户责任范畴。建议用户在使用完毕后及时删除相关数据,以防信息泄露。
    • 数据保密与传播:使用者了解并同意不得将通过本软件产生的数据随意外发或传播。对于由此产生的信息泄露、数据泄露或其他不良后果,本软件及其开发者概不负责。
    • 用户输入安全性:用户需自行保证输入的JSON数据、文件路径和命令行参数的安全性,并承担因输入不当而导致的任何安全风险或损失。对于输入不当所导致的问题,本软件及其开发者概不负责。
  • 免责声明范围:本免责声明适用于所有使用本软件的个人或实体。使用本软件即表示您同意并接受本声明的内容,并愿意承担因使用该功能而产生的风险和责任,如有异议请停止使用本软件。

  • 在使用本软件之前,请谨慎阅读并理解以上免责声明的内容。对于使用本软件所产生的任何问题或疑问,请及时联系开发者。

致数据所有者

如果您不希望您的数据集等信息在RapidJSON优化仓库中被提及,或希望更新相关描述,请在GitCode提交issue,我们将根据您的要求删除或更新相关描述。感谢您的理解与支持。

License

  • RapidJSON采用MIT许可证,具体请参见LICENSE文件

  • RapidJSON项目的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件

贡献声明

欢迎大家为社区做贡献,如果使用过程中有任何问题/建议,或者需要反馈特性需求和bug报告,可以提交Issues联系我们,具体贡献方法可参考这里。同时也欢迎大家在讨论专区展开讨论交流。感谢您的支持。

致谢

RapidJSON由华为公司的下列部门联合贡献:

  • 鲲鹏计算Boostkit开发部

感谢来自社区的每一个PR,欢迎贡献RapidJSON!