JSONforModrnC++是一个由德国大牛nlohmann编写的在C++下应用的JSON库。
受权协定:MIT
开拓谈话:C/C++观察源码?
职掌系统:跨平台
JSONforModrnC++是一个由德国大牛nlohmann编写的在C++下应用的JSON库。
具备下列特色
直觉的语法
周全代码由一个头文献构成json.hpp,没有子项目,没有依赖干系,没有繁杂的建立系统,应用起来特别便利
应用C++11准则编写
应用json像应用STL容器相同
STL和json容器之间能够互相更改
谨严的测试:通盘类都通过矜重的单位测试,笼罩了%的代码,囊括通盘非常的举动。其余,还查验了Valgrind是不是有内存走漏。为了维持高原料,该项目奉命中心根底设备倡议(CII)的最好试验
示例代码
假定要建立下列的JSON目标
应用这个JSON库,能够云云写
请注重,在通盘上述情状下,不须要“奉告”编译器要应用哪个JSON值。倘使想要精确或抒发一些边沿的情状,能够应用json::array和json::objct
3.0.0已正式发表,革新实质:
在快要一年的开拓以后,JSONforModrnC++总算发表了它的崭新版本,这是一个重要的版本。由于保留语义化,以是该版本会有一些摧残性的改变,倡议在革新以前细心浏览发表表明。其余,还增加了一些新成效,修理了良多过失,并清除了一些不一致之处。
上面接着看一下部份革新的实质。
摧残性的改变
该库目前应用用户界说的反常,而不是反复应用stdxcpt(#44)中界说的反常。这不光能够向反常中增加更多的音信(每个反常目前都有一个标帜符,懂得过失包罗过失的场所),并且还能够轻便拿获通盘的反常catch(json::xcption)
当应用与UTF-8不同编码的字符串在JSON中停止值储备时,由于仅赞成UTF-8,以是它们的序列化不能被库自身懂得。为了强迫完结这个库的束缚并升高一致性,在序列化通过中,非UTF-8编码的字符串目前会形成一个json::typ_rror反常(#)。UTF-8的有用性查验是通过Bj?rnHohrmann的代码完结的
NaN和infinity值目前能够储备在JSON值内而不会引起反常。然则,它们依然是序列化的null(#)
该库的迭代器标签已从RandomAccssItrator变更成BidirctionalItrator(#)
该库目前没有囊括准则的头文献iostram,ctyp和stdxcpt等等。您或许须要将这些头文献增加到依赖它们的代码中
已省略.0.0版中已弃用的构造函数xplicitbasic_json(std::istrami,constparsr_callback_tcb=nullptr)(#)
对于已弃用的成效、新增个性、更多的改变、以及转移指南,请参阅发表表明: