Boost.JSON 学习课程:JSON 序列化与反序列化
课程导航:学习路径 | Boost.System | Boost.Asio | Boost.Beast | Boost.JSON | Boost.MySQL 前置知识 课程 1: Boost.System(error_code 用于安全解析) C++ 基础:模板、if constexpr、可变参数模板 JSON 数据格式基础 学习目标 完成本课程后,你将能够: 掌握 Boost.JSON 的值类型体系(value/object/array) 安全解析和序列化 JSON 数据 理解 PMR 分配器如何加速 JSON 操作 读懂 Hical 的 MetaJson 反射层——自动 JSON 序列化的实现原理 目录 前置知识 学习目标 目录 1. 核心概念 1.1 Boost.JSON vs 其他 JSON 库 1.2 值类型体系 1.3 构造与访问 2. 基础用法 2.1 创建 JSON 值 2.2 解析 JSON 字符串 2.3 序列化为字符串 2.4 访问和修改 2.5 类型转换 3. 进阶主题 3.1 PMR 分配器集成 3.2 增量解析 3.3 tag_invoke 自定义序列化 3.4 错误处理 4. Hical 实战解读 4.1 HttpRequest::jsonBody() 4.2 HttpResponse::setJsonBody() 4.3 HttpResponse::json() 工厂 4.4 MetaJson.h:反射驱动的自动序列化 4.5 PMR 与 JSON 的协同 5. 练习题 练习 1:JSON 解析与提取 练习 2:HICAL_JSON 宏实战 练习 3:安全 JSON 验证器 练习 4:PMR 性能对比 练习 5(挑战):扩展 valueToJson 参考答案 练习 1 参考答案:JSON 解析与提取 练习 2 参考答案:HICAL_JSON 宏实战 练习 3 参考答案:安全 JSON 验证器 练习 4 参考答案:PMR 性能对比 练习 5 参考答案:扩展 valueToJson 支持 optional 6. 总结与拓展阅读 C++ 类型 ↔ JSON 类型映射表 API 速查表 拓展阅读 课程回顾 1. 核心概念 1.1 Boost.JSON vs 其他 JSON 库 特性 Boost.JSON nlohmann::json RapidJSON simdjson 接口风格 Boost 风格 STL 风格 SAX/DOM 只读 PMR 支持 原生 无 自定义 Allocator 无 增量解析 stream_parser 无 SAX API 无 编译速度 快(header-only 可选) 慢 快 快 可变性 读写 读写 读写 只读 Boost 集成 天然 独立 独立 独立 Hical 选择 Boost.JSON 的原因: ...