‹  技术课程

JSON for Modern C++ (nlohmann-json)

课程
阅读量:1077
技术范畴
你将主要学习到三个方面的知识:一是JSON的基本概念(比如本文中就有不少)、二是如何使用nlohmann/JSON库,三是在C++程序员使用JSON表达数据带来的好处。
JSON for Modern C++ (nlohmann-json)
在C++程序中如何使用JSON

JSON (JavaScript Object Notation)是一种通用数据的表达方法。

每一种编程语言都有自己的一套表达数据的方法;但一旦它们需要和外部通信,就必须约定一套用于通信的数据表达方法。JSON是其中一种,并且是当下比较流行的一种。

除了参与外部通信,JSON 在程序内部表达数据也有它的用武之地:增加系统表达数据的灵活性;提高程序使用数据的便捷性,特别是像C++这样对数据采用严谨的静态描述方法的编程语言,融入JSON可以让C++程序如虎添翼。

C++标准库不包含JSON的处理模块(这很正确),但存在大量的第三方JSON库,比如:

  • json11 : A tiny JSON library for C++11. 来自 Dropbox 公司;

  • RapidJSON : A fast JSON parser/generator for C++ with both SAX/DOM style API 。来自腾讯公司员工miloyip 。以速度快见称。

  • JsonCPP : A C++ library for interacting with JSON.

  • [cpp-json](A fast & modern C++11 JSON library) : A fast & modern C++11 JSON library. 作者 Evan 看起来不像是一个程序员,更像是一个特种兵。

本课程使用的是 nlohmann/JSON,流行度极高,在 github 上直接搜索“JSON”得到的结果中,截止成文时间,它是横跨所有语言的第一名(被赞次数)。

注:nlohmann 是该库作者“Niels Lohmann”,取“N”和“Lohmann”的简称。

又:本站优先开辟它的课程,除了综合因素,也因为它于本站开发与应用 C++ Web 框架 da4qi4 的过程中获得好评。

依据官方说明,nlohmann/JSON 的特点有:

  • 直观、直白的语法,和C++标准库整合的很好;让你感受不到它是外部引入的库,仿佛是C++语言的原生功能似的。

  • 简单地整合。nlohman/JSON 所有实现在头文件中,因此很方便整合到你的C++项目(代价是加大了编译时长)。

  • 严格的测试。

  • 内存占用小。

  • 速度不错。

在本课程中,你将主要学习到三个方面的知识:一是JSON的基本概念(比如本文中就有不少)、二是如何使用nlohmann/JSON库,三是在C++程序员使用JSON表达数据带来的好处。

课程目录
第1节:Hello Nlohmann!Hello JSON!
Hello JSON!简单试用 nlohmann-json库
一行 include ,轻松在你的C++程序中处理JSON!