CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • JSON — 对象、数组、原语

    C++ SELF
    等级 65,课时 0
    我们把 JSON 看作值的树:根节点、 object/ array/ primitive 家族、字符串和转义规则( \"、 \n)、数字和字符串的区别( 42 vs "42")、 true/ false/ null 的行为,以及数据格式的关键点:“字段不存在”和“字段等于 null”是不同的情况。结尾有一份常见错误的检查清单,方便用肉眼识别问题。
    可用
  • nlohmann::json: parse() 和 dump()

    C++ SELF
    等级 65,课时 1
    我们来拆解 nlohmann::json 中的基本循环“文本 ↔ JSON 树”:如何通过 json::parse() 解析字符串,如何通过 dump() 和 dump( 2 ) 序列化回文本,如何区分语法错误的 JSON( json::parse_error)和结构正确但“不是期望结构”的 JSON(类型/访问错误),以及如何通过 std::ifstream/ std::ofstream 可靠地从文件读取/写入文档。
    可用
  • 模型映射:to_json/from_json

    C++ SELF
    等级 65,课时 2
    讲解为何在 C++ 项目中将 struct ↔ JSON 的转换规则集中到一个地方:对比使用手动序列化到 nlohmann::json 与通过 to_json/ from_json 的做法,学习如何降低“魔法字符串”(字段键 "id"、 "title" 等)的风险,讨论与 std::optional、嵌套模型(如包含 std::vector<Task> 的 Project)的配合,并演示通过 dump() 和 get<T>() 进行保存与加载的实际场景。
    可用
  • 校验与默认值

    C++ SELF
    等级 65,课时 3
    我们来讨论为什么成功解析并不意味着数据正确,如何形式化 JSON 合约(必需/可选/带默认值的字段),以及如何在 C++ 中使用 nlohmann::json 来谨慎地校验结构和类型。练习使用 contains()、 at()、 value() 和 is_* 检查,区分“字段不存在”与 null,然后安全地把数据读取到 struct(包括 std::optional<std::string>)并给出类似 "tasks[17]: ..." 的可读错误信息。
    可用
  • 版本管理与 JSON 迁移

    C++ SELF
    等级 65,课时 4
    讲解为什么要在 JSON 中加入格式版本,以及如何在结构变化时避免崩溃:将字段 "version" 放在哪里,哪些变更被视为安全,如何构建「读取 → 确定版本 → 迁移 → 验证 → from_json/ j.get<Model>()」流水线,以及如何在 nlohmann::json 上实现分步迁移(示例 migrate_v1_to_v2,通过 dump(2) 读取/写入)。结尾给出版本支持策略和常见错误。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym