您现在的位置是:首页 > 文章详情

JSON for Modern C++ 3.11.2 发布,现代 C++ 的 JSON 库

日期:2022-08-15点击:547

JSON for Modern C++ 3.11.2 现已发布,修复了 3.11.1 版本中的一些错误。此外,库的结构也已经过重组;所有的改变都是向后兼容的。

具体更新内容包括:

Bug 修复

  • 修复在 3.11.0 版本中valuefunction 因字符串、大小类型和nullptr而损坏的问题。#3652 #3655 #3663
  • 修复 json_fwd.hpp header 使其 self-contained,并将其加入到 single-header release 中#3656 #3679 #3687
  • 修复在关联容器中用json_pointer作为 key 的回归。#3680 #3685
  • 为已弃用的 JSON Pointer overloads 的 contains 和 at 添加缺失的约束。#3658 #3681
  • 修复了 json_pointer 和字符串==!=之间的比较。这些比较在 3.10.5 中有效,但在 3.11.0 和 3.11.1 中被破坏。#3654 #3664
  • 修复了std::vector<bool>::referencestd::vector<bool>::const_reference在 STL 中分别与basic_json::boolean_t&basic_json::boolean_t相同时的to_json转换。#3677 #3678

改进

进一步的变化

文档

Community

  • 将 Discord chat 的徽章添加到 README 文件中。在现有的沟通渠道之外,这个额外的沟通渠道的目的是为了快速协调贡献者之间的关系。#3651
  • 完整的贡献者名单。#3662 #3670

CI

  • 从 CI 中删除macos-10.15image,因为它已被 GitHub Actions 删除。#3612 #3615 #3626
  • 删除 Ubuntu workflow 中的硬编码路径。#3626
  • 仅当相关文件已更改时才触发 AppVeyor 构建。#3626
  • 修复 CodeQL 警告。#3626
  • 协调 GitHub Actions jobs 的命名。#3661
  • 添加 labeler action 以根据更改的文件自动添加 PR 标签。#3671 #3674 #3675
  • CI 中的 Lint API 文档。#3672
  • 添加本地 LGTM 配置并禁止对第三方脚本发出警告。#3643

已弃用的功能

  • 此版本废除了通过 operator== 和 operator!= 将 JSON Pointers 与字符串进行比较的做法。要将 json_pointer p 与字符串 s 进行比较,首先将 s 转换成 json_pointer,然后使用 json_pointer::operator== 或 json_pointer::operator!=。#3684

以下功能在早期版本中已被弃用,并将在下一个主要版本(即 4.0.0)中删除:

  • 函数iterator_wrapper已弃用。请改用 member functionitems()
  • 函数friend std::istream& operator<<(basic_json&, std::istream&)friend std::ostream& operator>>(const basic_json&, std::ostream&)已弃用。请使用friend std::istream& operator>>(std::istream&, basic_json&)friend operator<<(std::ostream&, const basic_json&)代替。
  • 通过 initializer lists 向解析函数(basic_json::parse, basic_json::accept, basic_json::sax_parse, basic_json::from_cbor, basic_json::from_msgpack, basic_json::from_ubjson, basic_json::from_bson)传递迭代器对或指针/长度对已被弃用。相反,传递两个迭代器;例如,调用 basic_json::from_cbor(ptr, ptr+len) 而不是 basic_json::from_cbor({ptr, len}) 。
  • 从 JSON Pointers 到字符串的隐式转换 ( json_pointer::operator string_t) 已弃用。改为使用json_pointer::to_string

所有弃用都带有HEDLEY_DEPRECATED_FOR注释以报告使用哪个函数来代替。

更新说明:https://github.com/nlohmann/json/releases/tag/v3.11.2

原文链接:https://www.oschina.net/news/206664/json-for-modern-cpp-3-11-2-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章