JSON for Modern C++ 3.2.0 发布,C++ JSON 库

来源: OSCHINA
编辑:
2018-08-25 07:55:00

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::wstringstd::u16string, and std::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 and std::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 roundtrip null 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)的最佳实践

展开阅读全文
点击加入讨论🔥(1) 发布并加入讨论🔥
本篇精彩评论
不错不错,非常好的项目。rapidjson也很优秀,不过这个比较简洁好用。
2018-08-25 10:21
1
举报
1 评论
10 收藏
分享
返回顶部
顶部