JSON for Modern C++ 3.2.0 已发布,此版本引入了 SAX 接口。虽然这可能只是少数人使用的一个非常特殊的功能,但它允许统一所有消耗输入并创建某种 JSON 值的函数。
此外,新版支持从宽字符串类型进行解析。这是将库从 UTF-8 向 UTF-16 和 UTF-32 支持的第一步。
部分更新如下
新特性
- added a parser with a SAX interface (#971, #1153)
- support to parse from wide string types
std::wstring
,std::u16string
, andstd::u32string
; the input will be converted to UTF-8 (#1031) - added support for
std::string_view
when using C++17 (#1028) - allow to roundtrip
std::map
andstd::unordered_map
from JSON if key type is not convertible to string; in these cases, values are serialized to arrays of pairs (#1079, #1089, #1133, #1138)
Bug 修复
- allow to create
nullptr_t
from JSON allowing to properly roundtripnull
values (#1169) - allow compare user-defined string types (#1130)
- better support for algorithms using iterators from
items()
(#1045, #1134) - added parameter to avoid compilation error with MSVC 2015 debug builds (#1114)
- re-added accidentially skipped unit tests (#1176)
- fixed MSVC issue with
std::swap
(#1168)
改进
key()
function for iterators returns a const reference rather than a string copy (#1098)- binary formats CBOR, MessagePack, and UBJSON now supports
float
as type for floating-point numbers (#1021)
详细发布说明和下载地址 https://github.com/nlohmann/json/releases/tag/v3.2.0
JSON for Modern C++ 是一个由德国大牛 nlohmann 编写的在 C++ 下使用的 JSON 库。
具有以下特点
- 直观的语法
- 整个代码由一个头文件组成 json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便
- 使用 C++ 11 标准编写
- 使用 json 像使用 STL 容器一样
- STL 和 json 容器之间可以相互转换
- 严谨的测试:所有类都经过严格的单元测试,覆盖了 100% 的代码,包括所有特殊的行为。此外,还检查了 Valgrind 是否有内存泄漏。为了保持高质量,该项目遵循核心基础设施倡议(CII)的最佳实践
转自 https://www.oschina.net/news/99295/json-hpp-3-2-0-released