JSON for Modern C++ 3.0.0 正式发布:包含重大变更

栏目: 软件资讯 · 发布时间: 8年前

内容简介:在将近一年的开发之后,JSON for Modern C++ 终于发布了它的全新版本,这是一个主要的版本。由于坚持语义化,所以该版本会有一些破坏性的变更,建议在更新之前仔细阅读发布说明。此外,还增加了一些新功能,修复了...

JSON for Modern C++ 3.0.0 正式发布:包含重大变更

在将近一年的开发之后,JSON for Modern C++ 终于发布了它的全新版本,这是一个主要的版本。由于坚持语义化,所以该版本会有一些破坏性的变更,建议在更新之前仔细阅读发布说明。此外,还增加了一些新功能,修复了很多错误,并排除了一些不一致之处。

下面接着看一下部分更新的内容。

破坏性的变更

  • 该库现在使用用户定义的异常而不是重复使用 <stdexcept>(#244)中定义的异常。这不仅可以向异常中添加更多的信息(每个异常现在都有一个标识符,解析错误包含错误的位置),而且还可以轻松捕获所有的异常catch(json::exception)

  • 当使用与 UTF-8 不同编码的字符串在 JSON 中进行值存储时,由于仅支持 UTF-8,所以它们的序列化不能被库本身解析。为了强制实现这个库的限制并提高一致性,在序列化过程中非 UTF-8 编码的字符串现在会产生一个 json::type_error 异常 (#838)。UTF-8 的有效性检验是通过 Björn Hoehrmann 的代码实现的

  • NaN 和 infinity 值现在可以存储在 JSON 值内而不会引发异常。但是,它们仍然是序列化的 null (#388)

  • 该库的迭代器标签已从RandomAccessIterator更改为 BidirectionalIterator (#593)

  • 该库现在没有包括标准的头文件 <iostream><ctype> 和 <stdexcept> 等等。您可能需要将这些头文件添加到依赖它们的代码中

  • 已删除2.0.0 版中已弃用的构造函数 explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) (#480)

关于已弃用的功能、新增特性、更多的变更、以及迁移指南,请参阅发布说明

下载地址

JSON for Modern C++ 是一个由德国大牛 nlohmann 编写的在 C++ 下使用的 JSON 库。

具有以下特点

  • 直观的语法

  • 整个代码由一个头文件组成 json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便

  • 使用 C++ 11 标准编写

  • 使用 json 像使用 STL 容器一样

  • STL 和 json 容器之间可以相互转换

  • 严谨的测试:所有类都经过严格的单元测试,覆盖了 100% 的代码,包括所有特殊的行为。此外,还检查了 Valgrind 是否有内存泄漏。为了保持高质量,该项目遵循核心基础设施倡议(CII)的最佳实践


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上所述就是小编给大家介绍的《JSON for Modern C++ 3.0.0 正式发布:包含重大变更》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我看电商3:零售的变革

我看电商3:零售的变革

黄若 / 电子工业出版社 / 2018-4 / 49

在《我看电商3:零售的变革》之前,黄若先生的“我看电商”系列图书《我看电商》《再看电商》《我看电商2》,均为行业畅销书。黄若先生的图书有两大特如一是干货满满,二是观点鲜明。 “新零售”是眼下的热门词。在2017年里,数以万计的企业以“新零售”作为标识进入市场。但是社会上对“新零售“存在着各种模糊的定义和不尽相同的解读。 《我看电商3:零售的变革》中明确提出:新零售不应过分关注于渠道形式......一起来看看 《我看电商3:零售的变革》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具