JSON for Modern C++ 3.1版本增加了对Universal Binary JSON(UBJSON)规范和JSON合并补丁(Merge Patch)的支持。
UBJSON是支持Modern C++几种格式之一,它可以减少编码值的大小,加快解码速度。除了UBJSON,CBOR和MessagePack也同样支持Modern C++。 每种格式都有不同的优势,选择哪种格式取决于你所需要的数据类型。在这三种格式中,UBJSON是唯一完整二进制格式的,这就意味着所有的JSON值都可以转换成UBJSON,并且所有的UBJSON值也都能转换成JSON。
JSON合并补丁格式的作用是声明两个JSON文档之间的差异。这种格式是与HTTP PATCH一起使用的,它能够对资源进行部分更新,而HTTP PUT则用于对资源进行完全替换。JSON合并补丁允许你只对JSON的一部分进行定义,并且将其合并到服务器端。这比使用基本的JSON补丁格式更加方便,基本的JSON补丁格式依赖于一组操作的规范来对原始的JSON文档进行修补。例如:
JSON for Modern C++库旨在提供一种直观的语法来对JSON数据进行处理,就好像该JSON数据是头等(first-class)数据类型一样。例如,你能通过以下语句来对一个对象进行初始化:
同样地,你可以通过将__json
附加至json代码后边来对JSON代码进行解码:
JSON for Modern C++另外的优点是易于集成,这要归功于它可以被封装于一个单独的头文件json.hpp
中,而不需要任何外部库或依赖项。除此之外,它还声称能够通过100%的代码覆盖单元测试,并且不存在内存泄漏。
查看英文原文:JSON for Modern C++ Reaches Version 3.1