From a87fd638da6b6d2dfae18c7164b96cd901c48f2b Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Tue, 28 Nov 2023 22:39:22 +0100 Subject: [PATCH] Deployed df962081 with MkDocs version: 1.5.3 --- api/basic_json/meta/index.html | 6 +- api/macros/nlohmann_json_namespace/index.html | 2 +- .../nlohmann_json_version_major/index.html | 2 +- examples/meta.output | 6 +- examples/nlohmann_json_namespace.output | 2 +- examples/nlohmann_json_version.output | 2 +- images/json.gif | Bin 1644689 -> 1652796 bytes integration/cmake/index.html | 10 +- integration/package_managers/index.html | 6 +- search/search_index.json | 2 +- sitemap.xml | 448 +++++++++--------- sitemap.xml.gz | Bin 1653 -> 1652 bytes 12 files changed, 243 insertions(+), 243 deletions(-) diff --git a/api/basic_json/meta/index.html b/api/basic_json/meta/index.html index 49e30069e..909e12abc 100644 --- a/api/basic_json/meta/index.html +++ b/api/basic_json/meta/index.html @@ -14,7 +14,7 @@ "compiler": { "c++": "201103", "family": "gcc", - "version": "12.1.0" + "version": "12.3.0" }, "copyright": "(C) 2013-2022 Niels Lohmann", "name": "JSON for Modern C++", @@ -23,8 +23,8 @@ "version": { "major": 3, "minor": 11, - "patch": 2, - "string": "3.11.2" + "patch": 3, + "string": "3.11.3" } }

Note the output is platform-dependent.

See also

Version history


Last update: July 31, 2022
\ No newline at end of file diff --git a/api/macros/nlohmann_json_namespace/index.html b/api/macros/nlohmann_json_namespace/index.html index 41ee9fb87..22f49a8dc 100644 --- a/api/macros/nlohmann_json_namespace/index.html +++ b/api/macros/nlohmann_json_namespace/index.html @@ -13,5 +13,5 @@ { std::cout << QUOTE(NLOHMANN_JSON_NAMESPACE) << std::endl; } -

Output:

nlohmann::json_abi_v3_11_2
+

Output:

nlohmann::json_abi_v3_11_3
 

See also

Version history


Last update: August 10, 2022
\ No newline at end of file diff --git a/api/macros/nlohmann_json_version_major/index.html b/api/macros/nlohmann_json_version_major/index.html index cbac2b5d0..46a9b7754 100644 --- a/api/macros/nlohmann_json_version_major/index.html +++ b/api/macros/nlohmann_json_version_major/index.html @@ -13,5 +13,5 @@ << NLOHMANN_JSON_VERSION_MINOR << "." << NLOHMANN_JSON_VERSION_PATCH << std::endl; } -

Output:

JSON for Modern C++ version 3.11.2
+

Output:

JSON for Modern C++ version 3.11.3
 

See also

Version history


Last update: May 17, 2022
\ No newline at end of file diff --git a/examples/meta.output b/examples/meta.output index 9ceb5e201..90390f96b 100644 --- a/examples/meta.output +++ b/examples/meta.output @@ -2,7 +2,7 @@ "compiler": { "c++": "201103", "family": "gcc", - "version": "12.1.0" + "version": "12.3.0" }, "copyright": "(C) 2013-2022 Niels Lohmann", "name": "JSON for Modern C++", @@ -11,7 +11,7 @@ "version": { "major": 3, "minor": 11, - "patch": 2, - "string": "3.11.2" + "patch": 3, + "string": "3.11.3" } } diff --git a/examples/nlohmann_json_namespace.output b/examples/nlohmann_json_namespace.output index 1a1df5a3d..5565deafd 100644 --- a/examples/nlohmann_json_namespace.output +++ b/examples/nlohmann_json_namespace.output @@ -1 +1 @@ -nlohmann::json_abi_v3_11_2 +nlohmann::json_abi_v3_11_3 diff --git a/examples/nlohmann_json_version.output b/examples/nlohmann_json_version.output index 043b9b234..75dbe8478 100644 --- a/examples/nlohmann_json_version.output +++ b/examples/nlohmann_json_version.output @@ -1 +1 @@ -JSON for Modern C++ version 3.11.2 +JSON for Modern C++ version 3.11.3 diff --git a/images/json.gif b/images/json.gif index 8219866317ea21d2e5e07a4f7ab224a45b9b8bed..8b86b0375717850620cdbb13d424a247b0513587 100644 GIT binary patch delta 1525478 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

y*GY{1ZH{qQc{w+{E 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ɪZEyW-lK;^!ZUiLV+X87FGI(t|U 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

ka&=R8wdm_= z6z@WR4rSI;a zmJ<$+M#v^T9+ACV|1YhLu$F)*R8dg*8fb`SS{y*J$3;=92E^CE6*Zyq!SE$N%KgfB zD{tR@=X(Ft@cpMsmN3otdzH?yhwq^`H$%*F-(7w8!Q>sp?cM&1_n~;opMO`NyqiBI z<7x1e_BiNw$#?dLo6TH-D<+bru?*c-&!PBbim@3OZ;mszt&kPJ4!XdVhaf+O?J*Os zvi$X2=c|&f>VPy4XF1$a@|%6C{!c=2w}1m#lW5c?RBKSa_Mj$)MYds(S^a5nh%?xA zn;p6)*8P@ce#a$H>D_6aqm(3xd6}9wCxvS#&5J?wR-@|Fqc=O-0q*p&8{3@*EZUtr zUV*Y*o3;O8-zMPiDIKTSB)*dvjo+XFKcxUK-bn<&fXjO9>we8fV?$)XC=kT70m1ui z`7t=#AGn1$t7YvY^C_ikKDFIjx;^}<}R^*z|}x#FAy+CFDB2#r(m^qpvH8=5psfr?(`k{X}pki&yu)3is?o zLSBL9zLh=fL!xV9Y|Ek=3}6m5EeO!o+46~!o$pO*$m+rQH*{`-FfcSKkpB2{LiV51S1kEr&L-NgPNoo2%(i&xJ(4tiri{Pc)*l!;8X^SBmOApW z?{~)Ul?DCx;5%~{xpV$4gRB6LVGupU?7v2yrw?jR)#jOpe%*qARx*|uNB?7c{{9F% zX!`d}HhZ1RI+;_jO_rT#b-IQ<&^V%Uxlz`@gKX&jj{|R&S##R!;oRTzVM+Sphv}fz zreM>cee@9(ZSaM5h)5~*?|b(T0afho-UO3ez*Q7Y=0WAF92+uMSNKu2um24 z`Y-A*!##?QC-J|Sp9gQcmc@{lfmcU6ubN*y%7{B>wvQY8o@kT+f-(kU$)9h9n1Ue; zR>9~i;JC&Nsh@2JqyK<5NVnw*@C4a%+J13}5@Tl!(WW=L43IiumkH5fb_|~vqJSui zfUX489X_G{%Lj#U^LA^}H>+Rzs97@PkM#vA^TtO+^TLk}L|!?$UhA$v$QjnU$Ij(4V48Bhs*#9xsNOUf1y5X|*|>m~7TO znQb-Gpt#yiAffE&hg92%JRh>gOi35 z;4#?!uJw%+V>APV{)*Vvl77Xfk2VOYmT4RLFeV>c`M5h%fcHqd?W2CAurBTT6Nsc`!SqUm5F*bofKo7nwnFfWvf? zbJRv`u3s`D;_g0Hlq&2_tjeX|!P)*@hH6^W4)4=D`@5AHhcIFEJuZx6a(U#L@Q8jX zi;Y)5U{jy3Tg;8aQ7yM z^{%g>F&0&SCbFCFZzMaUsRxa-sg9qa%AW0K`=^QgjZc1X3gAA?MO`GErah#`E#G-) zZGul6j9}=&e&f-{${)S*_}1fiTRj8@6EefUbzC!7@6iZI`z|Ekw=^VmOnzh#%&XdN zgH%671I)aXG@`cfi#bY6{C5X_0sW5z8Q6_;UdqJbC1K106}!#zl%tPsEls~`#eSKQ zv;_DhcWob+t+&CTlutU1=WobMnxjm#Uo%jUXk@WvMh(Uc|f%i+vHH(h4dwmdW9&O=F@#GiR&rBB-gj*g_VX%jo4<*53BVtZN1SI^K}DGe+>P{u(`~m{hnGPcAe?8+FA6CKEK)q^3f!J zpXD0#lG%0~>=?Ri_k|yb*Dj2QX&ggBD8%7e9(F9WmgP6X!Th?5$zP|2Mt-Y8A z2&7C@s~?YPz6=&Ol4_^|4sq=N3}!MUezkdZr`eQ?t@s5z<7Js8bhOuQ(u%DEk( zK{;u>ENV6DWz$!_BVkH%SWM#lg)*3&g3tX-!k28>TrKs3>;5s7lhz8$*^c2uVVTbz4#&(z*=#%GAREZh>fqe1mVa|tIz+5NkkACyD~ znSGT^!aY`Jm(fj`t>>fOp3*QpK4h(6q`09xZn$+gPy}*rkyq;V(GE0Od^GkE4w>x7 z38s9ER;hG7X}lWq5jm~^<2%RJzUY_H#&SNrtu5>@pJBr^hIy;nu)B?Pr$ERLl&ZF}biFooX1iIxx!c9kYY|NJ7f(HWaWq>a1*8zIy~XSv-GPDTC>X z)9?mvFV@F!U~W?ov~uaSh;O+QU;EWfG!JRXjX1MV- zM|Z*l_FFnOF& z#fVp;-S>ZBL*5w8Pi&T-T*@CDep>!KgV^&+%uDU#9csqA8G!5UwcsS=VeBPo*YY8Q|;x4A}F?9F8aASpgCrsla;Lr61{;u5gmY;7mX}@UFIi>#^CjI_zgu7JzlwmXjbsaJHsHyu# z1EOz>pwN<|@P&=+Fpglc;DkRy*UVk3zzHd~Q#y&L7f?~curv_Yj0(zgO`!mca6E>9 z7)xPAHXzY(P{s~F}5zGNE<|+;4 zmxX&NcCCU$jK;dw^+zLtasBTy&xCplBYe)HG!EhevL>eyH4xgwB^5ON8u;&(Hh1Q z9scG|Q^?n;AF1pkpZOi>I;iV~8|$6)P9~Fe8V|AZ2s;w&Ba#mEboScyvWJf;R`e3T z=wa9O9*Ct22Dgm3>3nZbyW;eu0vNQnK&5KeeC^TAv=ilxzHT@3#NDC7w?ngnoGeLC zpmJ37cT-KVgF%(2^E=ohoD7Nr40zr32*J-9aC&sXP(u<-22`}pj?mKtSDzc0{)ekR zpT-tgQt5ios666EpXS@l^`Q_t1Q4c=qwGeDVf%Sf;X-k{z~lY&QJX=-_F2Pj?LHzW z0qr_-p^4zXH(Mn`n8B9}p+H7M0i{GnLZ7xos(5u7ZVVD^@c7(_Jj+?ai73^kims4D zO1!Qu<*nNrjU-^$>O~N%B(nhBXIK3d%spBMKz|)}F*<*``g(1)J zfIymAE;-(0CDX);%@{8-Td!>V4>B+rVEim#Y$|}J*{Rg<(Y1gfWBk5x%{*nLf9>qV z1pj*J*155N+Rb6P7s)jvAALtsG(jgdOsnTN4{2U8)td01m7%wDsmUgY7F->6-Q*o3 z_mukeDgBv3S-q5;nFAWiZKvWp>w+%>Zj#@!eVo;0&mT4EnAn_P&h$XsQ$Z{tO%Zp^ zE-2x^DLv@V2gr{S1Nk119j@GQ8fVClcpCqTJ7%^HmHk~4`G=VK$f=k=crs;Q={uj^ zoYl*V^@)F9h!5+f@&ZVdN#+DB`T8W=O)fb58%D~L{pXa<7D9I{zCMOnr!>N3>*23COZq%1K&Y6MStYMx}a?9T`UB1Q0cqA#`#C5#`!S6pUYl zpxMVZ^u@Bf-?ScT)bz*jhNP8dW1przgiiz_s1H$_6z^7Fz|SRPB(YXQXGCS^MLuQ7 zjhdS&c9zTG7Uo>m7I4}t`be>eYzf))R=Ke;JIiw)OQ8nBHwkOU5o;%fyJk4x;#MPs zM9#Km8mptSsq=X=j(hVyeB82-MDfDfJHf^$nZ^Mw=^yv#A8M&q#%5e|i78IR8 zsyn}y>s*Nr3UL<@*y_LbHCG*Kxg6>w9qKh4 z8cZA-ogJF)I5a0XwA^)Qt#oMXbZ8%O=y>7Kx#4i{t3%gchwiJ6JzS2xlNuL{l62pv z%KCKPZlN6y=bj8mX7^S)K7?Q8FtTgkvLSZc{uUSe?tvN6K#X=ej!QcAMdu)f(uNC3 zc%2gRU&%?XCG7lk&ei$MXNA^JUO2rNNoOt1W$&?Zoh*BPcm0>IQ?rT)&q3uB>&A;a z&dUSoq9Jr~<(TO^2*ra-4K#z4`RwVSvox4NcFXytsMu`hi?uiO#?Lo48|e(l^0hJy z7rfN(ze0EJGGw}LygXz?ZJ-d_1G^w-_E4YtaZXB=tVvTIp0 z%*%J8iH=y`q;i?fDnMbAH-jk!$Nbc-_mj=cpom}T{Fj4K`?t4fv)qL?*jKujP#FTN zyc~VCboURC501>Z&7CuI+<@OB1JfTKtbX7eWs>QnXxiLc)Bil(g3j7;8Zb#A-Esica8u4-oOXLU?INAI zZyRPAu;1j9AFFnJ$FsY#&F%X!C;ImDO-~P-mh(3>g0v7JubYi&wQS=>+=ZS&Pputp zAq3sAe8O$nAysvuMZ1)=-UMZDhnhNW-&Y^aytv)GGJ|(#g1w`6kuggjT}L@87)-*3 z>L0#-8Fbyp!gCKF-Dy#mZ22iyeiC6B3{wD-uI)n&S=&=`1Ps%~?4pV3x00-A(@cVi z3d%`x%1H{*#0&NZSwbW;g0JB?!q5kLt$QD#!0vHo6K+33NwDPPkwfxGW6Rq>>jr@oa!h^i)m>MNgexP341pvLy!pGs2T zR;LY$gN4^Xjio|}JAe0kezOj~{FJe|Z*c6B!|d0)`(6^8cQhiH2{nN`o={Wz^)_Yd_`GdX^uS)_b?B1UmNVz&EDBnO$Y2-|N(fYn85B5erUsJwxJk;oo!4@3joee=+A-lF{O56CZy$%P-gXyy)X5kZV*ued0_amO6-?d9$SlB^YP zeG5DijcQ{JLI~*13VI{1q<+0L(M&RvWU6~*gGfTy(0}R2LaCtM6!^ZEiqWT_i(PNf z$t34V;3~#gC%{F1>`3_;DRmcnsah}9{2tnUc6_zkt3g@(e%sG}!{z$@j~r#%zSL%F z0i>DnY;oNX3sZHb3xHX=^K_|G%PNfLJ95kV71jbODJt`>fbRl7CjnGk|3-Gb z1ikYxRnn82XoyJhIj&rnglm0z`t7Zx?XUM<5t1~&-GW|Orr-{~{X*?x@3;jSyPHPd zu9ovqYH_r;=U4OAc>klWAi`BNN_4La9d+V}Kf!Bmo=CV6%ziKWMOh@e=#d@96uN&b1oE4QVij_~@S zW}ldyr76q1#x*=GOIWKG{RC{NDKO zp=yOwdP}n;0q-`N6HiOskBtxleg#(90CSK@zIJ#=-aZIl^5gLhyo?Nfxy?Ie<-hQ~ zUhB9>x4V(NS`4Enab#h{s~b^sEC~z6XUR2pD5uWkzyE!G_ILg<)9YsVVln8AcY>>% zm#Nk{p4DBVG18FcPyrGmB%b_HXfvUDfc#3E`y42UFpL?ZoC+L?OIigO?@Fy<^;$~%)Z}e`frR-HBvk3OIO;NxeD?h9G>xmZiZOZ$#Yu=lw z9Sm2->)0b)OFF_Re@{D%ZzXpCBD}wH-uOMa?2XbIxBdJeUS%cr&x&=i?$QeBD=Kx? zeQ!M_ruCcTKEHoCHYKk&-Dm30!3Ms%Iz?(lNqlpH&`KZK`JlF}3(4i_Y>D(=>VyuT zRYjMzv87G4vNtDJh^-LXD`RDJg7aK@X~j8o+QK_0pHlJEcZ`SqJ);l`xk|}*;WA3b zS7vTL%cj2F{O5vGFaHvCbMMq=VPve-&k<) z;ShWhv<8}Q5Vost%mi8##0l7e218=*H6vSAz6?9s@ zB^X%4XstnkT4Sn$-so=_kTiNjRYAJ!X7by)LDQ>h0ND)bVQ9mqzqn&LZf^CZ2PW7q zsFQg8jgvOBTES6KfAp^cIGv7W;LzQ*wQ4LTUe&Dm-=w;^xQ>VFMB>Ba^}bg(pj`cP zSS<$U{&~IS331G*A=_(F|C}QzU}<{UP!fs#Y*xgdy;}@p%RGF-rh(aZ_e;lsuK4$Z zoMa>^)P6z5n&zBO#(_)`4r`P;QTn}jDK+TfCEg4)EIM`-zaDn6JTkoz!vNE^*+xJ2 zMyE;NdLWwR4gaGlg*iMKiBsB^x#aKw@=Vqq`acm>Owav=ayh(rWVKVN9(DA_GMoYX zl+BE%n?2*jz6r1w=Po)*-t0sveJ!4mpRX-lMt&{dt{$1UJe>IXP}&^R>|)E|*R|wL zFK~2fYG8)B1HUVyMy8kch5UgEj*hxiy@tfrULDvGt)u3CUbDzsv~7yD+N#E$p*E8i z(+r%boOmwIPjW!2o;YZ2ex(my`u4!L2nLmcxADYLQt+(k{Y!1F=L0o@-5l>Jgxip~ z+-r;+tMLs!lQeBb<- z_g+2Kq^{3(v#c+?0)XT=Tq2?USdajJl|$au(5I_yo@zG`@~Ggz1QX zO1sf7$JaG$B@uBjpN%ERH}G+Z8W>SA+`{zuN{rPMzTCXh=%G_`BH$&&5J3ngG@*Wk zQ?1=xR6w+JWu*;klG6RGkR4$K>+&L7$1Qoa+zM?80VviYHZ&!@Xq%o%8;44$lK!R< zBtgPhJxIxtVTqCNzYc*hCsspN`o-)J1p_71I_}?_OrURUmp-uaJzH+SMMSr}s2jEa z$`d}tp7arJ!`C}j1)B732^DTPF4)Y{YCa(S0VvfeQ#YZ4ASM!RXl>oB+$M4@q~owK`p1eU9?dr|T7@0|9xTPHdUW!ri3_aZJuK&(FCgea=d;F6Ac?*HybozjS$Z-C|P@;qHkO;+$g-5tr8 z^-S##Ni2P3MOAW5%P{dM=rk)3K5SB9#ln~T->v~-J(p)rD5Rm_vnAE+8Z<~d-U<)X zAyR`sNG*@rhu?GXw{?2X9M=ES%EZ_)Z!_14WteKU9jkvf<6MS@Q6^bSXUBc{$OBcG zB6@Zac;e`ouubbFjaOqRY}5+u5!~175T{z&B(T(ck*2l2gnS%<@(4E4Ffn>hcqgkN_fpCw z=!@-l?7|0x8naxZ_?-iz+p4c`@E>b2&*u4=3)0a3Y3&w^d!HgGY;Hd!C#nCJ(S`=5 zry@!EySM<@JGnw0R^bGq9P?S!CSFUl{<7T8`0V^cm5=Sma})t3eAt=dqj3#R64rc8<)ZwAp6n&rZIO1!z$Y@#LQsXL$4W?ru`AjKT4O?`G8yRiN5n; zSnR)wUHhIPk>R!6&t{(V%((-WBCZfdSFX=*c$ve%4#s*O8lNZ6G*@~OJKT!Y=4>Z~ zU@Ioe6(<3y8+Q;*Whbe_A2q&XF9}8NG&qQ+`XPZweT(|BU7C{iig;}-St|IBWgXXZ z{@2|U7AVNv2qG)-&wJSsQpb_Tbyt@EoUjAft0xoR*9D&Io}BW@#8!Ti-UaM6U>G{^ zGFE(+V>Qx7UIbZmuZx&_66;_|{@tvf@O8WBk(MHF=$vV>z_+Es^*E7Wz5kjS=tDrJ z?5?NZlWv@U;CcKTZ~-RUJ>~+6502AY z^6wz~--~x=@^7OMn`gjg{FuES$<%*w6-Mc@?97a2eSd_;{k`e}zel+XpJnq%duzUY zVD6%eocQHd9q;3!jRKhlga3@V(#&kqEY!4@@Stm|4M8q8b|9mk_sVcvWB=0U3BGT|G>-V&euBu z5g~$p(z8fl1a#dEy9w>c8BtEE!;TAk_VL>Jm?9S^+?Tsqg~*AlFRPK=*ouDK3d_q0 zaea3I?s0Bf?Jdm@;`b&58u%hR>eTOMi`1D(VQ>^*_zn)<>5`YzJhXY{xPgUnAvyjZ zOfZh#%D*c0AqnO870T)EzZI9lNc?u0`{{7pqV}<^&5|-<(E{(u#(6WIb^sKnW99K zRYE{Apa?zA?!>x{7NcM#;V5u8iUKm-RIyeC9`lmOGPQEJ&l$N|Z>SH^PZuyK6VS~; z>!pL)bSI2cw)Km)4GfbFV=svE7~G!cgg`&~W@Li`lQx=40E?j)M0+&cbZA7=(pz0= zu+nYR)n75_7Kj}3c-2pM_mu{{Pk7h5<8aI+N%X`-SF6qJI4yWO({e+@c{Gl-nfgCE zet2V7#~pd(sh`X|=)uV#``S`H$KX^j4kRRHj;CJR@v!jnbZBx<#<2J_d0F5Y8OgCU zLIFG0K5e&eWA8n?ZCLA?ZZ#vh3yeX;$wC2T7y%skAMcKSNt479{Uza%_ttI@#5y1(S~bn__xIvHEeK)p<-g3DU7Q;9CYlrO2`8jmfkd>O zvb+gm`vkd`&s^}iiy`s~Xl8xdhvShK9Fy| z>I3U6_#s%rJ#g3W+iqy!UhKC$Lg0S-xBa}pgR*Z2b%CGSzJ2Nq{QU6S=kdTVGvB@} z1Qxrkv07p;g8qB>{lD>`^O^7G3qgO^zW@CY^zYO6f5$-=XWuU%!652G5JNDS;}Far z3=uzsTnmP(9YVE&VMd2A%V4Sx-elTVEA!U6qRr?`T zUoiFXA@!4Bn&*c!uY>$k?Ekl?bkC<+UF#8`dhlQ}j9kC>Zux1>w=7+GAAFhd7MP#mZrRE9sSCe#H3_{gb+RR}8$t$YYKxHMK{EYj*CL{Yi0B(cJ^l$}r3h;^1&lIT%PCw@dcZpFmnXe~6~lx$ zf`n0Dw5|UYbRC2N$ba5keiXtTo=14Tlf#H;LX|;=pLd;pMDR&rl>456STQaP_nq?y zP>>>qRa1#2^7eB<{%AA{Oah{yR$RhIf1T>T-$Br*;9_k}&;zt6wH8E-k&%&;lT$!I zKwMm0US3{ZU0qvS+sMes%F4>g$?5j(+y4IkVPRqM@s~k(qEJ?0+j299N=uh&yW4e6 zUJb5(O&)hzyaQW&LfZTzJ40f+!s5Ck5_@AVgHPeyS27-^WIakRrY(eH1d7OcrQ?NF zlV!C}E9T zh{*>sngmv{DO56N=xMHJn zILe-QRe{RcO`@mM*`Sfy;v+T3h5iXAd_`K%3+0}hMJhTeq~nWKo(FmAPl|a>&|HSV z?n<~r*b_Qrf}fj#!w=P(%mB1!htZrvM1zd39`;TTM~d+YCIu*-D2EGzk;R|N;iBTI zr(<;Chlb20D5azVKJo0{DcGuvRDdf>;xS2^rfiSs)T7Pf!}i>MA+Pv)1zZf#Jyx=7 z-kdR899#h(f@HE4i&w%W!Q;jDm2f^L%tbii?sT^3!L#SthNvx?cO;2iubu5frCevD33i;Jgre=Hl4P0Qa70d-06{{NP_@G5sn zdapIDiNzJwaMsIv8K{O!OOK~qk>8kwv3(As9|pwb$)Cdn{-7mlA2w4HfvYP^pl|9< z6zl3{QhQU~aA`oin4t!)47H$BExuU;XHlzSDthQyZubG!{Ge@yiLkUsPlPvS-MoNQ zb>)UJOoO(iNwL?q6OsV%;j0)mT?zb8nz5|YSLT1wh~k(DE#CE4j-s5e$sDMsa;tmI3v{LNc^hal##G<@#F9wj1H|a>hCx&{oyF~iT2GRflo#4RT#gRK9%FZcif3O#GYVHyN_u$B80 zcbSe#Pw+Sh@7>*=1}fgFg?Z4e3;K$k`B;cs{X%Uq)x3GPFC?+7Snxp|2-kA2RVP8D zMXQ%UliM(lq|zVN7-jY(iJeq<>A$v)#HFe)vS zc_50lPP(Ix)2-Gn)gHgvF3?=nwcKubdgb@3O>l6y&}9pNzGEI7fdz(ze%J$Jx5b5F zHT6@#=u8tlq)UoHR`|l7dlBA+u+*I;xupA9fZOTWGx(&b&`&56%;i8g3wcGK*K37> zJYkuG>{QJD7VKwkKm7PTpWK@VY7m^s$SA3M|;wiX)p8TejTb-cuywFv(L zO8u}-(R`b&fR?zm@Q(rN&xv_uZqj%irUskR$)Lew+uHhLck@4ooYAw*CPCd2EiZg>?Y$~7aTVPzgC)#nu6*)wjW{|WK z+Sf5Z+3JB@)Yc%}EkCeTQf@s+n7o5h6BtmwzvJfm)~^89-uy}y6ywo0ha7QAQK68n z3>6#wZ=#upH*cS45m-9ByYxtrVAwy^pml6i%HD51Y--sKpmh0}Xvkkvftn1yO*McZ z)>Da%<9om`99`DVv~%z2P#x=YV7836({Ds>ovDufiInV^Amt!&8~FBFy8d`P{wYxR z@KKU*+nlTygZcybR_`lty01(??|N2A2{}zTzzogE1>?^QN)>sYupa|tZ(4*@%!Mi;s(79U&@O?8qx&A9 z(D4b-h1sO64S%NElbi~s*w1Qe_{W>D>d$Y0;?ME0+7?Mps{QhjPX+>z>8Ay2W2W`e9`E*v;`RwlY$f=xkOM!$st(XToierV_&emZ&&Gw$06-Nv_GLMq4%i}T zhfv*fPI0?J!_=8Dk2Hrbg;()UPGl7_MEa74O>M(oytYF=l;9fWoZgRTN~|bQ>%lET zvA62_2oI(){3@F3HW*`m3V-04c-WGz0Bq$6NV9<)aQCVKzo8Q#l!=1G#;flqv9p1w z$dHKhDb&_WcPl@aD_F`q6#~N<*x>(hbe3UJKW`WRE-bKgm*no!-O?;evxsykAT2E= zARxQIf=fw*@DnAaI|YO#rIhZFmQX}OvDiP)^KPzrIWyNaGxxdA=dh0f4R0Y%qk~^m z=hjjwOyNXQ({kPe02Lq_)`cUCXxn)YOp2CKJIzc<|0mh}V(700PYSf7YGj{M$8z-j zVfUN~bSi|BQTL@nPMKDgt<=J{WwEtPE1|KtXI<3zjeYO^djMbNo(Y1X~ljM0KaCK!&_t)B!vx0hWT zYRf;c@KL%2WT6FT^u8ofd}*L};I=+qoo?)QvR7tpUFfh~(h5w8@zRL8pCsU*EXU5U zkplgh)$oU*#+}*7O{SxWE=IGUyY2;DdmgSW$(n3ytBknE-Xxp;_S*hdY+ee_sCdBh z3A$!`JsCnPmTP51^>_N_8hvv`lN z>o}a9WdwR>SXILJ)fXdZH{yn~FTqt|rIH#RJ}mgf=ww*U(4|I*{{8qOReCE8YA;v^+89iii4IUT!tRB#xpk`?gi{{KX3f6Ziy81tvZe_ zRM|~8@*^08@BY}QPF~vUaOAXtpeibi@Sqdujz{ zNizP-PxHMGmy~rBn78aDtX3V9XVQbtm~X$Cl;FyGyG3fX^M$KOF5`^2=(swChxwKkwESYZ2u=o_KTomy_bPm$r;qvv}{eN?F&sB{=m#I?pFDr;BG}w&Ml& zCFT=ooiZQVwpPEXAP+4!N1fLEyw{E9x&5kj8C_Xj`L0)PCV!-$Liw+}n6*|*%Jn4+gY zE0Uw1N^XROj}CpAZW_JS`}ooIzkdX>n>KJVz6Jy_t+tfr&As)ZZ11--u}t1@P=oMG zxun!8;72AzJy%goSS6QA3YGfTivc0DRk%GNNPC+BpHY+%D+0=k(yEuKAWfr(%Yrdu zMX5q^Li`EEtDZd@+QA75bz+s0S|wqe;}~?l&>zVA0*Fv0C2tCmG}A0wqO?rK3?oXa z1adGf$mbnsCNQ0q>0hzWX<;fLZ|@Z#gknlN6D3~B^0=Ez2uB`Q#w}C}ca!kM$(b1l zmbI9nB!}e8?`T!ly-`0$ZlSg2}BDy0Icw z$sTqG;A9+==TalndV=-qO=e+?DypeT;L%%|$K_}K+jYn$o$6EYH@;>#C zcb^xMwAlnvb&^8Br@fHF5GM4iPeR{QpWhbxZL$THmuSGURE+SDmKUcP~QP ziKOUYpg`(4=jZ=LGxaW2>m`ErMS&d-ZZH>!$3b=C8tlyOc!$&(or%rL+8w7g(z(y>-cj=s7sBD5WC11LOCl5+8}pFVvZGU?N~4!tkQMl z>nU@66Ptvdb3iGo%_d{-t#;J-%CsojGs|s^fPLyc7tI{pfbq6+H8Ivqh^w+mXZrQf z`!Pm?-e)!?a0*%`ygh@AHhFrud`&6 zaYtk@SBAXgz*Sx=X4qX&3}40_F87hR?hH!)Z`owYWSnQ_OO~LHr=ex1S&qAL0afL} z{SBqGBh6h`cTaa6uUm;P{Yvxcp$>Nf_Ze{suBlo|pOGP~w-%`OUNb9+=)Q!g@y8^H zy4yK|O7ko_(I2v)&Bv+M%w~6A2T${hQ|f4=6j@r4Q=w}1g`mRC>$GIZqAB%zm027Zu+Mo6YLVBFbSsfL zLA(Xz-kmml3>|M|&s+C1ZiclOR~D%&4jgP0xfn;q0IRikv4wP{#p&+0+0A+xB#P1v zd!nORf_=x|nCWlx~3xOR*0$kT@BK^hlaiPD|aei<2?eYe#cqd;rB2|CW zkKAi~)}JAm2>wG)!Ma<{a~PmW#3?5kC91DDif(9)H*?IL2<)TnoHk%OwIlzzJc%X^ zF67zM^4#M8NXi}{G*KXq1bMZ9Rnn|qmsrKT@yI-p}k+fB0R(y4UXAtYFI`W#np|UZKzz+uv{-|*VZDN(^f)&*-;8z(g?+L%Xo)4T@#IYp1V?q=0~G_4v}G@ zf#>=;{4`7XCbv39o`-1vrtUlab+6Jz9nGM5{f-4CTH0Oqp_+q+)0EM-wqcwLKdYTF&sKus^o^cNh1M__uz zo+0&+rd<0e|Md?088Ny$8vj98xWRNls3!#h*BzDPaOIi_pEs2I4319m+gLwc+vT}nsCOp z!YTi$vO!M&Q{lrgLj_&$zLM%on~pLH z`NT7Fc1~RU9|*k#&c-R0Ob9_BwowX+Q0cMlkEUzNL)>~Vlf*Z3gGOiKlTB3ki<6H2 zFT=kt2E$2)uOmJk_;llvL#M06RJ_ZRQU}5YpGgh$ictHlDlGy7W1DRsBQiEiIOYdx zmpg^(5GrwOfah;SblRKH3=LlFkWJQ*twkEGt7ZpA13-w9aza2tNnh^c(4zP+x0-eN za7tL5;g_Lix}lgb9o!W0xt2zPKQabrrIV%*iiB7s_4=CT;2O|GOg0!|UI0XgA+`Y+ z8$hm9B(etrb2|zoyE0#cDBI0dEje_fJ@UN7AP&UjUdm08s_JvfAd&`o5L-#G-Fvx1 z0jEUCo!=U_4H+v&1_?M5T_rJrl8O<-pkBs{`sRejY8%D7S>(q-?=t8{K6~+Jln&(t zkLF?xdT;|EESl2KRi!;3ff1z<+lMnZlK)xJmGBbY{6amZK?{e|ib;F-ENlcNS}nYl zXleJZQK&8E#h`O|VS%V2;HXy@^tPQ&i@`{@q$79zKE#lS}QFw=<+P7gX-LVs% zV&v#GCP>c9_dXNZZ$0_Wb`wigDVp?+>MRs>x8XN%KaS=%g?LEow(-Zo$-i@V?}3Li z!6?7`O8-qDceUur1B_$vs5VaApNRyd45hFbZsR}lXrsHY8{W4wCT$YmO~4rgiiU4W zO-PfHUb|2@XG+!`pbmp6A#PJRDcxl3us#}$(FW^P*pzu-6CWmbzRFBkT;UX4Y;p! zDrb!-GEV3Hh@;aFF`7i+*I_`2bw<3#)GM7kJ;u^gZF5$ zMrtmxcs4T{;=)GAo#;Y13D*!*rmp~t@7UD&aNN-pX4+|y8W`}QfNd^S-zYf=GVi0% zM5kte6+gF|xx<_^l{JC$H#sC1kQ$n|o1c$pHrPw<`ZR#kxb1{tFazdxc5*g;Q%_dI?Hv}i}JcV$Io20u?F8DL6xUXMk(G5H z!nQU~NGMxMbQ2aN0UiWXUcBs>og2-znGatvOn3?b@0vvgm+dDHrrO(d@u6+=^%ER!g|>J_UnpZ}&Pti4+?rSNU7xBb+>e8>jS?=Npe z0WW6ReA>sPG`hjdsQG&p2j+qt73J{4yO%}_F_Rf|_hKF4YPh!|txFx*t8Yn)Hn#7r z<`-t;>5g7oBR`ch?-;8>1~Uq#yPd)9c{x}ONau~vVKvBwqXBzhuUbY`f6gn`c#H? z!k!?SeK)v^0Woil3!MD5^?I~yb=PuZZ=Q4buieW+04I3{vTP*>qR`t$a5sE|TI>O{GoFg=Zsk9dtUS;+o!>kP9kf_AZA6 z1R~fuiRz2sADBiR#4(0Vw%1=-)oM+Y4(o< zya_lc+f1u)!&x51=+_8iX|m#2I8rz;b=?bbiet;ZROIVu*9yhG%R#Y5eoEp zbtl7@N-heLL)xdYd$>GEjcM$(50xEuD7VeyNJUlg26TOM~2ct|1*h4-{RfBA?dOvq_M~%MC{GsS~%S z===D`Wxthp?!Ee@YNzsRqz@c0Y4UifSvDb2dHK2O_Ap$>)ySgbh ztU+I{n5VE_I&lZQBKTHh5~bW!-!`l<=pC!rsIZ_+e4TjGxUH9I^dMe_z1u6fVk=tc z&b1n9){fcE>MPj#l;m~7h8aehk~urR`_XYH_S_9jC$`R=q{wIdTLDLC^NB@>9!t=a zpqq*09bEWJDI_dE$I8T`F%62qnr;ySZz?XLQmrqYo%BqP7WO8 z*o2CLJvb{ll|~YOmI)H~D1-D=*n0X^a;o_GDU5ZE_$X#>dpj`ua0WX?D2l?ZqAY|B zL0}DMM8gUGtN8PM6JgDF8l!1$6h1o` z8m3R}BJYDfK85tE$ll7OC-L?At`t3P2pH6xCJ6YXZ=QE5&iuFny|VI}DOj|i0GOnR zIU3GZeEUckfqtCU01FRehuEw-57vpt*8%nmeUNzsNbm%M)Y8~Qk z#F8BdV85^=o9G6#gyxc;MDwyZe)fU6LBLWVQj_hYf^p{@h)eK^$w3U!M9@1bV9V(z zZRpQ{pTFzNZD9VvRr&zOgPg{Pkc`)9C6Y9A0@X91YqETPZ0E)$rQ0;G}%>m z+VhUZX<~(+lM)a=mK@u>XSfdQ^}oKkRZhe#`eW~1l4dy{a~;&?zE8@OWV;+z*!b(0 z*B(fZ* zymHvtW+Lu9tfo%P`?3ptFV*d?C&uP=%MRI}!}2J}+VFh_fL+k8MG}UdXd;{ht~+5! z*oJHL+^8b}SVJ@^;!80(6R`=sLoq_M;g79oo9{!6#kF&b$p;cdG${Zf0!SIe^cyrQ zuoPO2QU?u%AQEyKsxS|FfEY!2JMc?~$>vZrF`E#;9=HiYqPeY`eDcyvqBCWL9+U5&F1E9An(RkKJ6)&NZKuiXhTu0yD%vcga9Q{`__bN zk$1Q*#(pOPl=7meSOsY#^QnD4gRXF{BHq)E|+}#UWFT!+F-Q(jw zS4Ii_$)5d2%!UA8gze@v(D{yi&q*WRSZ+<@ClMiY5DHIw_!6z>>L!SP@|2%$#yOWn zpBu?(o6d;_YqD`93RiW&lEgc&V9C;BitrTq6$qSS;7KSVsHm*`B|4iP>8uGdva)s9 z;Oa=T8sqoBj|}gS&w9e?TXB=K$&Y0uJPx*P!MINfTVvS8{}sA~P$CYOpAC|b{}*9% zgwJ>($UH?)kJiqynF6`Bl@jOA4YB4wLfmUKb?Kz{7m9W0T;4%qjovcnQSj^A&J>oA2eW zTimUdQnws`1J2a#Lj}ZBPX6C7^10|?U#ut)?B#xt7ij29ohaw{wOIVy()Zc43Jp~r zzUnM^V!h7zIzO`DBYF-kw+?!aiW71Suy8ph@y;am5lS~%E%%l9 z9}GU0=dA1vXUA8d1YA{TF}Y>lbcB)Iyy#j7>YCAXewK}&(slByk+L6^j=N)rO9a$pc z%{a1vhweDFOd=C4H{x+6Y7;rH6Ph8+n$Xc{n+~{eGh;%A3!lMHlbpOqtlO^LUM%QC zy%Hs^^2&tu@qH{}jB}5CxmbLhl31CRUjr=)^ zeV{O%_t>{s2v=+&rOrd58Z~Wz0uj9<79jJ@Gae$=q7VAG$d3BE35sqR0q8bwyrhkC zR{oCqRGS!z;R7;C0&eL%c_afm1_ovQ>H~P-T2}7ybQ=D6K^}%N%N%ruoVFvL*z^pe z-h`zSP~-!s3JvZ`pTT%bCwM|VU?dn{ek=kcM+U=yUphu-PZLwnnMfA~%gVM)q&{2% z^z*;~NZ<=UWz}|O_$x$?#a}@LvB*?3LrWp)Qv=qTDG~*ypa@zM#E$O3D5=mUK*ELq z(KP^MOZaDaan{t-=W>jZTuFzE z=>tT?m%1E^0En3FBLIsbLdNLQx;Mli*^gifHhrW59(ZCC$5^R;Lt6VQO+$2p8FYE- zwZtJ2fr16284KP7szmPx<6Bl4OeJWvBX@;r-TR5 z6=FzVZju?P3Hb$8udbi9wfFq{s$m@=x<%Bk>y=5q>h&;=X9+_h=<$V!p#i9Qg&=De zuk%9VlGeWlws&p(lL#9S-T0o--re1*EyLw(b>7te?&PUt0}qG{F4c^_JB-}^z)#a9j^0^_v#Xo43aV1JdAHg zbk$`tGHZ7EWv2v-oMo~~#P)>E-;P-ge-F4Tvnv|(cHH4w=EZ=R`zNC3ymz@}^Ji=J z<(uDr@Qa!+cWv6cJ^S`!NRRBR^R<0D^}(F*YuQ3#@dHi9Tko-_zu0s5Ps zUkScJU8@_{ZQr+j(t!r1wSD#5owKzkOa|!R;>S_9yLZIDJqguaWJwTvcV7GL>G^-F zrsZ_-e&3T_>YoIJ2|L(hnvumb=RMM zCAxc8KtpNlezI?Di|n2RT4}0{9KMhG#YLYbg66)SNOdyju!OG9}E zomm&Web~N-LMzXeNId4?7nd^sDG%={d|cbbcYL4FKR+N5vKG<@p5RoeMgh^S^#v5- zHz6$0&5)MacPAnBfB5<6Ldor7_@8`=_(bVLF2w6Z6RM%Q%}8(&8ssA4_aNWdxxOM2 zB|wRM>M>kQ^}jv@sSj~`bhF(%`_=Ib{R*Em6|ts;aW{&zKfVEXx2Q<|S-u}ZpVEs! z`S66UQO+?ukbLLeGZhAL#SHd*Qa&{;`Lo5yLmpkIc2V;Bginr}T)Zf1tyXeMNiOQ7 zwsGK86XAUFe*I6mt@=5XH(Efy_uomo0_iP6WX_<*$vLgiuVrqMCI7sJC1{DCLJ_s|x&@WE8Sv`8*cSdVMA5`WWLP94;Zh{;v=+^UQiQK+x_Cu` zAT}GP*?3sTAfpd(?uKWm0h14|6C*WAlAHTLn-8%7Dv??hdV~vY?rwbDEV9gh!sK71n;H-D!iIIZe{lWK2 z9=T(SfRdJZ+4W1mc>wl!peNUVz+Oli=`8ee7p)JA1{uFXHte7jHdG|ATs5U2Lk#1Z zi+a4CWn4cVsJH_b@yLI*1(f=3JC*z%azyuU72XfjCIz;>4&hI~ze4Ko zkt#-mytXXe`OkgJtn0WeuDMo8iX7$KzyB(Ab9j?4uDLTxK%hL_*8<$VaIPvMntFCf z^n)H(lBFHwl$*M`laOPXbKSa?z#weX#i}2sxAX>-QKr}6uG0Ai`NG}G3hyJLZCCX` z-PqLwBIw2P*>iY*C85xObeHxPucv@OaMQY#h~|zwpPnOh6)Iq{TMBl5^W>Fau3EWE z8#Ww?zaLNf!_5u6x$iaX{)9##*a~lsHqs37`mBpZ_&8v?58Qu$ch|exryiq>k>R-$ zI2h1VO5#}hQ0(ATz5>}&?i_`9I_wUv5bzn^w^BeFTOss-16c~vP2 zrz*V4E3V96*+o`-CbJRiLVLc4Gs^U3mSlv2!w-~AI;7S3%*R<{+0Crf|(`^vo64Hi$5d!1! zh9jCg!h*YpTe@E&Jp z3xHdP3tAmKas;q`x`f;tmmiBzshV5tZ@eKA}OYmwzV$u@@nnl3yDNi>M(bcEkLKVj=39t3| zwhWCxke6RZDO`}drAMt;BL!j9RN4C&F)*$MiQ^*;#_ChN2{=1MPSx1^4U-Mpe+(S_ z_~S-LERwSlKnnm)T}X`Cm`FMjnDhgW)@i#))F5~FR_w*}cB?_U;{DIXmlJIYo7N#M zgUfaHD{n~c$HvDEy>AwMSOTlxbUZ7A^c%KczxS0gJU)E5LT}KwV%TR#$w%lW9`!FH+1GDd&rJRrd{uN17u~My|yzR3*Urf^a#9 zPk!Jfnb*BJ;$Ig|;`4-7^ByD^dwJaR@^m0NtrE*@`=X0S?2wmOc%2~qeWybP=UKLy zq%?0f{nAV_lfqAr&aa94urmaF?g!2sMsUdV!^DuhMqko71%Jf%Kd*b_j{SC(^X-?y zhB>;Te5U{Cv$FX6{1aWwk)i4%y%vcS0Wc%v*bpmv&R_CXLW)?!rp!* z>n2qhCITL8T6fjwCwU}1eJy!}jN`I%vFenxhE;DNr6A4r=K|nN5%=H21s^1||HSB0 zJ#_mQ=qD8BCxr3)dGd`+l7J<=@>~1rB8OIZ#eXESEusC6Xp8K?kNB=MGnozOr#H$@ zdiBGJr;U`GqraZd>B{4VZ*8Y5?;1XF2R!h1^(po*sq(iqZul5~irhU#eUw_AZ$Jh^ znJ%RN^NZ*DyhGEx{;!T}_DJ$45>F?pO|S9|(gpTW;M?*NLV+Dgvs{@UHVN$Hk_w>% zP{Dy~=`gRbMn{aa9!?sZCQZ32&ZW|Hs|(AC@Ko;%FzOF@lp`(LC3W>fko%dBH#ks* z<}Cb&)b+I#OpjkeHgG55RP-lFbVkL|hPNI@O#D%k{Dbo_u4AAct8jkcl@|Em#hGql zlgN1EbeoJGaH{JsJ}*P)W5sE*4Wea}JF!3N8kGK%1{X?aI^)SMnl%W`8r5F{j-8Tl8{S9e+5ZuyU)uUL>qX zB=7B4{jgM1kGdpew2qtTt>sX3C#3ow$hC&?m9uDpAftNwc^OZ|d&3AqAbO3u)lp1N znj`Q!{^Z&ap(huptZ@eC7O7<^W^`?3^f=TDZMAl>9*_~EQwZ?fJki?mA}@V>Z_?eR zPSSp%>aOG^yLk(MY?}1L{+^M&i}ute$j$p{yNF1+G0A&_L)?T~X;oUzdc^hgkF+O) z?afJZGd8TP+uSkP zm&dah{)uyAy&5&qGq1_Zvy2@#x*uNtzI&Zu=i3+3vwJ)|f<~g+#62Moa3O1DKiux# ze(aL#(#&NYG5EONKBPRJrM_VEUVrQYG-qs2H?p0$|M7$I$LjTi1?c{&u|TW`PhZ7K z$enMk;h%ye&fAb#x4{jSo>mx)HNY}oU|Q1TQtZQ9`F^P@ATx>Pj0AaySCV}T ziKqt`Ao1WV0^$;F_N{p#a0mLB_v)vC&&ASotkw#s2fxvfhG&$<~0aLkwqw zEb9P2b-QlPqbIqc<*~Fu&OAR)J%L*@npB9xT*<*yvbUM6PuR*oMM!8fy>tg-0f9`# zLNeva!L}y@Av@$hyk1d~@Cu8m9L$+-st*otCGh zSvjAh9jih>M_4gj=oNdC+1AmwJ{Rt0M(PN8L8CH7n`MbAcHz?{!fNZODeV2tZqWjGQlE1%% zZ$~yfmnXMA=y~5gv8a#Yd5oGqH%OTt93&4DR==j@516>X2Rc+blKMf=MDl}Al zV?|b*O4*8HH>&mX69F?0$S`3F@ z^{#ghvO{U-5#sPYp66TjmlDXy@%72iD5U=O?kfE2r(z@l_Tw9N-d&~kdQNn7Nn(E~XmC~x#3$^i{OZ;CJ3wk5@^5yAfUhNZ z(|NB!!~g#5CDfB5Y!ZQJUM$56B)>(6iKAvLgf&-ck%WyZnUB*-iajt^3le0NE8#=T zkLI#{Pe9IBNlTcudV#7f>L2vQf5kNw8Wx4vIn#CJ_}*`Sv^AWqlIv&R75aUDzAN|9 zgI+XH5!r&ulV4ywVtV9(id({ihK z`H#I9>u+*!3g`_XtI$qT{s0wl@^Wu9S?<*$NjTbch}qU>dWh92nP581?pZTE%n_h! zNXsNv1R+rfq%s?UCWy_9oJ5%b0MPjYm&Q-uQ1l*NSu-;x+Q>AO!4vf&LzR)#CU8`M zKitd+bn8@RTz=VS_QUPwAYKeVv7@6Zl7`OQNCqxrK1pT7oVG&pO^|7<>_~c zMFTqTgBi>K(#`WJl=KIS**k|aATvfqSuG1$4AmF~NPq;NoFHZ(59lhTST5Ll*3JvE z@U}WNYhUsa38|S_24fhB%5Zc{6fc4;@8|h0EI%x=huEl*K`c#eo*Du(B#`M5kUlle zYAs+?{O1Q3Mtva8FZA6HK^U)PVF?+U*R5|Y;`;~dPfxSA36@4aPiCy{63xwx06LVL z)?0DxeoI@=|Ju(9s`0jN!xi@DX1AXyohB;9%9 z1~VKIat43}a%(jni04D;hz(pCkKuFn-I8?Ud!CECRQSX4qIhLNQI-*#NpLW_P$;^b zvH>>1PYb!YFU>5}0jk)WCkE+Ik0>#T7Qd1^Dleaddp!{j=RHb+J0qs^)x0e4f)!@^ zyZ{rMd*6rHA8|I3m=#-%!$g@{gJ55B2USWNb0_tm84PJST>m<(=c(8&YfsoXnScK-LWdR6 zNiZElt#R-IChiFX{6?_(`wX983^n}nj(mb9b6*9{Vhu<>L~&hglA$#Z=>H1W3s6|h z5o225bL5iYZnC_94MIsR4h5xQGAH830~ZMf5k(!#1eu3gD1Pl2V2Mk|STSP?g!f>E zKBz;o=?ELAC(?hP6@Z-dUK6V0g<{CL&{);*tK0LVD{nTC9IegETOA{bK)i_5uo+bA9&x z{>YyOn+bldpbTQVhz#?Yv3uenj((Y^;7I9RN=Ldq*6yLgC6h^-7<~?z{GowqXC-#V_1Suf>lf~o zk0$zZXedq10aC*7Zlb<9Jj5>J=x-LGC&@#W@2{PifqA|~nS?w_w7>v$zGxD1PqKKh z<`6HCVJ>?z_v+TNQ-6;BSRCi`Sh%l%`E2M`!((8&Mbdv{Kr|&@wc! z@*d;7z13yQe8Q;(e1IvFUA5CFiD^0#O8;3Ly?D!Z)ObPLH)WLOpQqG|c%tG6`wVBT zEqu>Cxd!%sta>pNn3qIADzkK%x{jHWGt{yNTM)7v?n^Q{uG!S~b2n0NuO{;ZDbipD3uwr1H@FArw^ZmjAe z8aEQ>q~~x|o;<+_^bnEXy5!q9CY&tV`JC3H(|^+=|1S3abu$eS+#V*j({6kA_zj5H z2eWXkP~UgyqgpTWDej61pj5~yb{wa#kT57^o-R2+I&0m%@d(q$`{SrNU65Q7S$qL5 z7`HD_u-@)7#p;q`2>!O3+>61`e?kw@ZieO;B8DIY3{06=aW83#1|SK;kT)dnG2hjG z>D(WHtP>UpVxcjsY8hdG=DEnXCk#u!{hp6%*@4O5AowzZeozt_5HJEN@lp%*OWE1*T^{OMYuOBM+Z zJ+9)bQAnunbs;4IBHAc;_h`{;T>jCtYwLGfkoa~k3j5aqW}jc-wz3viZxo%;$hdM) z@`pvqQ1%g4CFufQN*ky3&ZMv?7rkQ66Kwro$uK_&oeQax5n;qU!*t&(b2m(`%i!+p zJWlT^H$#M8CW+9}FXZWm0)=Z@P?ep>ZeYA}_UABcVJnWBQ ze@i1`itHT;{Yn`6#jE ziCR+BexIq}TN;KDsA!j&iqGm|>7-K4giP*^3=*+=5fqYo9pX_P*q=rc%?B_bE@m-j z5Tso^PD5uVkP7#KTyRT~FT;pLVJC{uNbc>A&ZPipQ>S=cGQ%M%AIGnS-#(h{5fD?` zD|g@Q(+-NEiAZX9@;(k8FvZaMIIe*UEiP(;4$^2!#DF6yS~A2tb;;q1(LgUBvPLhV zxl>}L7|1J6$fF8S*`04$r}R59D=MM9elFT>W`58!ZXu4&Wv6Z|sIs67x@= z=nNLq0|3K(MAVhU*Jr3b96qRD5`Itvd6r1{ag3&gfBv=+LlzBdC8Fnh&Tku^1{f9Y zi){Pj=@f$9uYIEGb6}x!X)9k z!R5DN19jsw`k$4Nip8|l$*fR*Ahuoil=NK@#k^s%y3V1p@a#FTGB8Wvm#y5-1o z-;}S~CE*2Dz#H?4$*OHK& z;B|qG`8pP(G#Nzk`&PjgjV&RdAaXhMkk)HWkpzc$xRa zvRXwG&aj>%8LCTd(49(v<|`LUTB_hoPOn(11U}a3{~zBY{)hewwdcwyNLu}2s!lwq zv4FZ%CZDv3fQ7WsQxjRy?P>=c05Ydi%Ahhm&u$@BuFx zexMSIrt8FzbRuq__cMqD@k5FPe2HW!1Hb5RKdT6UAB-QBHhw`yvog1+DSiI_!kkYm zn9q<&$i_lPV_V-7=^x)L@I{ujno;|vnJm|0E($}p#(*M|lMn-u(4i4|6nGH$>>nGZ z>)=K@!0a-Ok!aLtY4taBQ}Im&NG8cL_4^o%$uaR=z;zqu&4T!r3PDten9Uzc(>uq%!dg*SUib zhce1QWqdIZFi4oG?4AM21$*{oSNA@=pVZMmH6-TteG0Uaiu207Z1^daq}G=4Q+-n+ z-re6!=FjFvf~#N@vkXRcSGYow1QUT86F=w22@1N#K{UG3{U`p7^0zPLRW9v4S+vEs zv}-rT4IXPxwhH`^hg%(+&Nn;;D?k+`0;gmI!)D_#GknE09@0d|VmDW_(@LT|RH6+o zG4GMfXZk4N$shCaxi7z*R3Pc*_{U7sZBffxKj2ssQI{X;58K=cUllZN)ce3$ z@$W4f2^hD4?T6AZ5A#4XQpcPtU*T!fCrfjDVdtuvnS6tcY8uY1OF_vOC#tV4p-nmP zwvcVZV=7|iz+ab8T8Ni?e@f|R$#aie{CC1J^H6l3j^ARo`Rb)#z)$5n7Y?l!4{ftN zj9Z1k?WYSBFbH&vqR_1;7(h|Dw7FT-I(m=*{+cnj;cX83upZ}j*lEB~g#uHBkFZK8 zT>W;qOp8c~Jj@|C$l^KO4>3>;0@cO4(~~_h@)e}dgpl>S`v6BGAq;R9QeNPxjDV#L z^aA{iq+*hnU)jZR;Lm7iqxL0&7E%-QubMI#pm>^V(FM%w55*7&DB2b|!T4NoQZB6F zB*dsaG}8jjyKNmwAaLR!{j-o442cB~4hQd~u}KqW5elbk0|pnwDR*DMYiM zq4>R>FU@0zkO5;{y~UyIV4&T2ghH8584ky- zq?1cGGZe#$w{M6%m>*a{*ccVPAJOJP6pnc4Fmb)gI!?AXTmjl?&A06>+#4FmT(F7X!rR)X1m+A&>Ba{`LqZ1 zq0jyM!?m1re;s*ABHfZGlb|HOdsx3DQe|Y%%H_$!CfYM}&i>fs_Pi>GeUXUw6##e@ zn7*8R3$N+f&8yJe4inS?q?Xa}Vy4pW7diCd9}MTg3;@U(GI5pj2)ZIJTl7eHrT9}* zuBH3Uj}0_(CSYjOb;>5f9QU6jtQ9d08#GAb%1sj|3Z(Rm2uNJh?N3j7^is#x`{NU& zY+KPs)_b2@s4K-@iN=hLWqqu80@rUur#v#F>Cn@v%hX$9hF#euP`fs7S{q1`mKn2U-v4Pw3;t_tNHAclxyw*XVBnai`yOE3%^QJZx&qno>%cH;;d^N>akQ_ zUpHUXM+MiX9+9Z?yGHyU+4sW4tXkeZo@+Gtu>@%axT!{L$CW{p#*iR;q{-4xPCDd1 zHCcZ;c{RIpUVys0)yw4?_u@@h;q2dB|HieNH;Z+TYFqkqP0dtuOhb;u>37|_|Ca67 z7gyT9TRswV@+$C%>{V@gf4kX(t61tZi=PPz+TqWD&-7#-kKY=|5Fou=4tW;A_wufF z<|k4M8wqq}Xy9EqW%S})bB&$RggWQ2#kku)sp=jKa zd50sjFb3pgYH;-HLqlLz(4EK@5@;zNM693D5__SYJoz=5-DNz znT{OY73J9KHkeeucJ1%l&Xq$r%N`dNq{B7nlb3at*GPcs5$Ytt{?0k# zO0t|ZD4u$P4`MYg!FH-N-g$|}7 z0dt?l4drKg)~FTBMvwp2okRgJl^#LE^JTKgvx#MPy@YU4G`!=6kj#i5Hb>rZDS3tD z_*$hX&NHb@GH*D;FA*`3vB+oO>Tjd{K!p{ThKComV!Fl*o+UwQNYFj&Iwa?Q<8f>c zhlBhDIaC8y3-9nwD)utnjarNBM6m7qgKPmQ8Ce^)OD}+AxY+Hdb16yJn9y9hlbvZp zOU-CsatXuq?~=^1C1!3)f`t1zgcbiJ5+UhR;+45RkXl>a-lH&4W+7^o6#ug@k0Alp z>=8S4-n~w;6KT0M2C`;m{bScqcyL6ghkU>ML!-K;{oQv)j$p4WZ0vkf7Eo}a-<2Qg z?vgR)#>(wa2Ym+7m+;xz-F$>YSm2UDV9>Q0Z;s;6_Hj~qv96SO*{WXG1cf%JTjKfQ zvNXwd^uZ${dBe;yz*CXAh>uWBiV0M(y*97)4VErMAYiaofUy)UGtyni-^xzJ_Pi(% zCSQNeQrfFt6wp^tSw4-wx^RJ*C85AQ!6Yfv9XKPDPK7`2n|y+7_b$E`;6#hGfn?Ej z@Fj4|LOc%zk?!JZ71Ycgk`^5+>SJ|J+pRS3K8sJ;vt$FG@{+vx7l|~K3!bNkFPc*T z|IbVNWn*xABv)=NP2!rBG0co7oP|J5g)ZN@X5OzbP|24bKOq?=eDak(S;vIqdkp3e z>T}Za=JuRK{snzr#0E!lJ#rr4l z&?V#(7luI0`+glB1Sg3K8xF>GA=B~`@u?r+YhT_dITHw3W+z`0Q3dp=wbxk3yOx&$ z7wL(rYX#PXopv_Kopr4Y=u()BKjKB|>74hhdqYwFE$?ffp7TXcmb$M3)xF_Q6jii* zJ|;EHDu}kUY6YG%N?BTl^!UQH@%w$Yj`XRV*ogDAYq zaEOY3oB;!go9kbhL@>iwD=pcLb2KBQ6XbT^G~}DYPMn@thNY^+X{lS?sz%FN_2Hwyc13A;X5G zca!&Gpf+P7ce`Urif8_VGGl;}u|b;n?{;ZmT#6QxzVI}v5tmVPpn<%V!l+!=8IiOv zX$YqCqwnYn-|Uag-7b>83hO7vpN|z#$Mt1-F>&hk0x&Ns%xIJfAszrFoN0&{_vqDP zf)AfN)VfCxT|RbzkvmNl`m(nhM-r$n+a;UgZHAF1C_@HL03==A5nwfS{!#kLuyNS&y3YREtGn9K&o83AEdyVtPJliX zG1S;<16)A57$k~<7LDAie~m8xry$z?NJ11IU=nz_DCuk3S3N-(kanI{<`pGzW&M(V zX0rtbN$&lnQ)Cq36I9`_^TPTa%T#m`lJV*&1Dcz;kTDC(?6@B%`D2t(Ad3Wo$^anl zf+!JmUztRqBO8Z#Uj-SG%(`sw$td7*iS7C;J{MV)_BzURzCB)xk4rdO}u6)ff;?@pypY0$v->(^ku0 z-(erB;zKYhCsa1Un1>&=8H)A!ng(9s~ zgl(QfVPS+`Pi5@Qoa^?{oW_{_TQA0`eJPi2zZAtWQXiu6v9cb?qQ@6zw30PY;O%Bs zb8b1p4*|4V$(@`V2!AMZWy*Da<$fzOm%FO!)Su=>k@J%0tTEvz7B_qGjE(?8Q6H~S zH-FcBPW{`xq`mO1zZH69ARro`tg>EDWkjBq3{QV#cVvy7D1>gSaO`Y;v6XxP`&1Xf zA31*zGZq5>q?|7xMrTl*%k^Jf?U_xtS5~<@%^IOfP)%IR4XE=0$84H%xH?;jbWN1h zT>=WoXm~GbZ$ydogD=FusDTH2U`|sf? zd?9ZOqyK}>1>5O(#;bE;{}VI#30(9MgAD(a4bJNqX7Obpf!@f8e|8GJDJ4$WJ3w$} z!wPOAFaBLY-?~KD9#D;-rGG2@^~q8YPhZ*AH!(< zmJs)-EN1p0BzPd{+gf{)u4DQcGv<3cvsE!+1XU~oY zQ7a=P+OpkCpsnJsPCP~2eG7{N*_J~dccUUC0cny%2FAB613hR-31uo|hSdV*QDN~V zVHbIf-O#6n=V!HlUvWhPhCD3h%;<<`b{+2{?+AT?gXOTJL=q}Dk5|P5^j0Z`VkP5Ouj?1Vemz;!O-Xw$W%-MK4~ATRBA06y@ApfGise?o0Q@Y(@TAqlGWVbBh{nG~X=m z;cAu98kLdR_d;jvr#c5>Lcs~Y%TWIHF{+j;wIwQN6 zQBULv_?qowab`=lrDP^z9NYyaMM^bfVkb~iVji>u{a@^m*fa~bM;r$X=5d#_;}osp zz=D4Q0&O4X@EQl6ITeF5Rm-nfm1llrtH3>qzb{U(g;{gjjlZlPa z>|sWSk-#4Mo>5;>hVntsNn$Qc`8@!<08ohW|66ngSq(f1&XKN> zl}R~U3lnH|1+%39r|pD{A|6*fy5d0!0+QTEJvb_f zw<~+dQl2VXUbzg4m1RPjmHUO2W9*no{7jLzVZlI&!wgh)to(WW$qVY`@(N1-3-}vo zY#0c6@WPM3LfR8XdQ;A+1@^N8QI#3_sAYcqr7FuM?MEd+RHdf=;@2}ThBhk;(jl?& z5G4Ag-{qIms?4#ME7|KRd}b={-G&L0Dm#2Qx-VCusFggAUalQg?rc_R(Lk~MP$c@5 z-{n`+@nvR2rTOfV#r}&5{*)@8H!sh-RIO%Lao1J(ym+i= zI)D)DYn3bNUCuTlI2dCMz(})3zpzHRF{m@ZXh4Tpl9-XVU`eE=q=FYkAx*&*sGz$| zF4D}V1rQ6xCirqw_zhGBsyWKO8I6WoESK704s*Xf36$Ger>g>T=_mfjU$sjq-E z-bFQ6v?Q~>o=s?l-Fg#}@H)E!k~@pa7kJ}$`Aw1i$qNb`4GjPoUk^acu+0C|8<`X7 zO)hW!_)8`e%HX-|&Hxxqs+6pTp89+~Z$PXybnkc&OU>yeWGJLV?u5N1(ov$7CE^Yp zv6n$I+bENQj@WpRJ{87RQ^U^6$VDyVQeyZ*Lk%S#g|(mP>B*^ z1Bp<=QOXV=BDUSz2NdWJBesGxZ=l`^ummX9hp}`jX>|J8bzaQv5HsqKsw_Dd&Ti`8 zpEVGwLs{q@3_4QOmgZQDw&^FLK#4_iI=AK_9bGBKswL z^meaG)X(e^h3cBv%`#Z~0BULA3;!T&47$Q!&4+y}&;rsU4Z>3UvU5vv=g`A!L#ttf z%q|0gxdT43-AtfLpRjJ9Fpv_p4pvjcvjiC%MD?-N4i2I^9R_EN*ppJqzr3J;CUQ`r zt?c`)gU5*|N^VKS_Ur!es&Bcd)!dTx+>$T3!^}b>Lxa7a9NNc?hGKn&*42A310WxA zzo`7ULJcHVmH}xt?iV(G2Gk9zfUt}WdB+c!Rt|JjmSXICn3V=^YE)f%`i4!YnyY%O zaR0P{N*$BZ(1gYWzu5%n?gV8n{A6HpyB!Len3#h=YiiK+5A9)-_v|NEWhYo`KB&o` zUX#flI}j5YRg^P=@&_GPObNS8;RUAHjXd}a6x6*e$Z{WEE3!W`Avnu&YqouJ=K0gH3OM`w zq%v;xZa$&fq4^o)t&dEabNJl3ck=VzvU8s_YiEros^w?r9fzRpWfS3jsY44pPthU+ zy-3g^e=d6#vF{OujX`1mq<8k^thrEki(n-h3)Urq?cpH4gc;D4B}U;&s4%phg&_pR zl0b(b;GpLk3+)DAy(RGPmnHT$P{E|-c;k8g;bq~x5)5K;!RW)1(WKuIC_|Akb_P;y zRI&83L=?lI0QAQmjYAKXV)>UjoR*PnOR=&`kef?T$}k$YTaQ@+i;dRD_J3kJ=*4SP z3oNhsTwde6xy+k~`Upqc=ao1*t+5@i`0%eP|5tKBc;Jph8%kl>>E@bRUWvfMa{G%F zv6~B1a^P5gFj29ENF9BkatHCiE6WB@g97Efb^9#2PT?U3srKiVC2XT`^|Y{45 zy?-SJbE_y6DE#tb*Uc~2?!%12zrb#7`sQs`++XvXY0g)8iE$Y_@3<44R|dVcE}pZ_ zpSptrrkM&i{rWfIqMwmUyX(R%U#d#JI(_nyrEIT}w@ngG0nMF_g-yTgtwPd{pX?SJ zZp+VSixo7nBE%x(SQEFqk9>s^76#oCIxsOj5I@)!sY0zftrwBC?*zZcUjF`cehc&N>-W5p=-GDVB-o+TbZj<+ z(yOs5tbt3Z*(?x`G0#%?NE)kvx|t@|IJ=DnF-#(GQxQEB7A}o#Pj<9~;V50w?zd{vLj+s+`!8MNJ8i=9Q>Mx__$g3Dm~lAg%^;j?irvjxJTZ+sn_#e7v}5XI3o5W~kg zqZDdM8Y5;|KFjSN*Va!EU=BW}@CLZ|Jz^K_>5{2-HK}K6U|~aZ==2$0e1K?8nNk>T zKsBp^&!iP~R4e7DS4OGsEwnj!7{Q^RvJGmfE9{(oS=Sx7PX|pS!+5nfr5lW31S; z)M@_c=gC}>m`r7gh5GOHRMCl-n!n44+WM3`eggKmT=KZm;8Xo>}=C zVXnTb41KeDPO~r;k1Q+7@bM|=dvQJ%%OG#(TTr?GVN~KLXWEF^(eR4=Id<2};L4mX z@xA6&)j?Cm4z}9|ZFGK)4N6U~SmkyB_w_a6y9ilw*}EKo6B=KiI6(xX!R@>HGSAZk z3}h?nzZuBYO#~P!wEXyHsMy&W7nkPR8)uZ zUEiE0weS2uYhxJMzhT6D&CRi^GPFmSggILOGXlI84Hgtti9J6`DPuWb!phk1PaHmU z9~n8(_z6iSaKP@R53Pjd)+i@1S(H`hx(C(hFpGXrk%eiE1$7P!YNp_{4e{sY(M*p? zEK1KG2iy5nH2kt7*G&f7-)#B$OCRpqb!N_fvS>h6U*zYx^h;ay74tJOlhxDzWVAc~u9<=^`7yjXmI}Io9|II%4_SBv0d3S&Pxn2;(9p<&TDWgxw zNW5=)iEHdywX2?S@dwpV?*Y~*WbM@D8wibk%vLjtJaJykO}LukL2x$V*&J6Gns7I< z|2{!HA=cDBtbf_Gd$fh@2yQn0EY|3?V(#n1|GMJ4mEd;HW$umD9Cl|7zjyNre}*2Z zb8(jSoyosTZXD1_YCNOY%NxlaXLT=V%0A>@(6n3TyFg^>vbx$1<^F+?(ChVc4`-YgquzZCa9&om5ru79dAUH-N{^Q5T>PR^d=Ak^ zE6XX1L${!qroMYK)zWIWUti?W3!iy5a%Cw?Zc{a>K#MbNDbmn8IhfU*#2|Eth3XI^ zIa;lp#71Ks${|q$FkCfaJeHlNNK5e2t0OXrJSz0}X;5;a*eMjCcw~^i(Kb4*?gntKaj5e$q1Iu&Ef!WI3TjmkE09+VHWU{ zIK2K9QYyQ@xyjmD;j24orqRu5N?aH(#@#=!wZ`_PB4qTLj;(S%+bZ)|E^Xj|%PFT3 zCz95j6FVGyHN?>p18%Uy!QYHX%jy={)yJwcnh#n_UN4q_Khr=j70mb;UBhrgZJ$v+7N;SueMbK8lkxiSLJ2PaNSuP`1B1a-|c<0(km=aF+{`pX$Wqaz6bYfJUGyOFEa+PC%vISsPT7nN$`rP=%UNoPl0@S4>KWBtyd4P! zQN5GI-!A^XIpQmlzT54ST8Ma_T&J97eXXKEr8t*Xmt!s^&I_K#aowse*L9|~9~^Dt z2|y$yd#cUQGvLwFV|SU^)GN;i`zYzSNzB<2}y+8?&6yVt{erJUo_CMIxiP=qVzpxRPgh9`W@o-vHX6DxR=PkKT^SJLTAvL z;@Zpy!@WP2o{tQsv3%Ue+!X$%tiL`h^T2N6xl~ZOvF6L6{|2PWO$u*+_J6}lp*M?K z9#+MO0X|$h?DCI{SUHcvMP^F)0!=4>;GhrkVOvrklnNUXZvOkA|M1ssf&EvJ^Rp=D z5t(VKlS!jvy4hKN{!0rBqm8#ZHjwtTIsWraMWq8{9Q^L{hu$F;58k@6BC9@3OI+hM z{pUwzc35JNZuT25Mg8|_ZHYm@nR1)I&}3IK;sv)0q>K3*Nbz@2wCh5s@3x}H$umWk zLid3_9%7~Ef?UfBZXRflTjVM+a6&G_=BuHHv2}`;-rDP!;rAD45ifVyoBIzg-9KOb z{kC+Ygtfxaz2yJCd5LsIWe@$aNV(~U3CWa{`Z!AKOj%2F08$yH|87DHqc|wX1=}~S z-<>U;c$O1|1mE%-7R$nb5o8PlCN_d&W0?JtVmsrVMJy~GYeAO69q8L|`{q`M_H0Qt zV5YI_+9-yuS=6^AKRsTI>BenS94y6JWADE5gQ3+Q-_>BpOK1HK2Oq2)BrFzu;o6)1 zBn_G?bJifgTM9$aso&L}gj3cp`u~|0kocYYFj*)?5sV;Sfhc8lI+9<7j!K`D9%j7P zxVepDluB_r2weQ{pvCXe`p354%zc{8^5*x~R%yTEMcQyx`LyjY zt&8EEAIG93D1p>3)wENakAbSCIj41HTkGnv7B&!ZsR(yD93gO0fCDK;VI2rMWP)xu zLC>fY$JUMyPgV#$B}qW|Sc1tm!St9wWb3xb>0+uRm}zKR8fjm1(6*AhU=9H+$lA8K z+IE%N_O05`ux^_!ZKrK*=VNUWTaUt+wu_vO8%0CM-AKn{4({rpb3I(gD^bTgP+O`9 zj-Mv1VYFtwdSCM`RWPtWF83DJtV4S4>hpjMG8S3-Fexf47>3#-!&*_;) zu=RuY`%gub=Mwr+hZKGOz=8B!!#9y534qUl0-oatHGW35ukWU`nY#RIMw|@2_xV~ z>nP>I1Oq1t&q>v1`$rT@9Q`8!R>edz$M(|`VP7kWXPb4zs!cFpTEAY>X_|3^)`S3`q=BvOZr!+!r!-HW8+(*TI}Jh;j$cjxs2# zfhGg{>TS&M+h9WsO@uneBuCASH3uk)QRk9$k0553rc-zKZjskIxPiTWXHwo4n{7Em zT(ZY8+VsrNN!D5LC)&(-S@H{-K6^ToQ$3OC@k!!`O%&b127;IjcaWK!HS*PO^^Hxs zhJR;-@BBGS8PlB0NOv3-T3Eo&p;{ef?%4A?*q$AWvKFFpkR0*Yh-YxzfTYv*$&ReL zQHR4@Ru%1q7_1FIa!RP4sAHUwXkC~JvR;(2`zC*F#v@Ld6R4+u8ZX98`8sy7QFGMB zQG<)ya8ji3J}~+pf7(Qb1CiAoqey+iH~^sZhc`if((M+YK8de(5A;wWWIYpn+9W zc$qjowwn}phG}s?-esYA@@k$V|C)7zqJ90o3IC57<+hK8jd6lHD_Di~OFl;0!S-85 z9u_y(r*IZS#c);Q`CTJ?pl__uwYezD{-Sh@k^VxG45Nc#jEPD~yA6C9jj&T~jMe2{ zmrx;DCws1rGMpU+-Pi?-X0RJ7GMsvPBJ|HKS*~^^@LP>NBKw{|hG$Sl#-@iy4#tgN zVl4;ik~2R>R)sqKYIina)g*y9yZ}Z;0L%+CMt^q680XUIs>gb!N6*&#Q&ySMuZJgp z3UYFIAY`7{v$2YaOpDfKvhif-^-4_k$RJv$Uh%ei3p;BAY@Mil(n*GeBHBGZ4=pyZ z3SkHBtGu3ab2L8v%KzD@1vM}ClN4%{5Z)H2=%mY0wost5!D+G@leHXe(t%zW6KV6Q z9QJ7x`V!YR_VmA*g2(+UdK42nc{z&YQ_u!09~vSzKui$*kmfJxT%L1Ov!nGd8B*)7 z7Pe%^R%S=t(%N8J!nhnPv2=G)V%sBh=6Vh(!uoN4=kP31!BbJ2H6|I>cyFYzWOZTf zMhbkZKn|gqVNj)WgP*q6P%=c;w#b$P{0YR4VfdxSuNmoHBW=DE*-Kh;GPaI4p^}L9 zM;@?F)y=M{FR!%|vWACxV;1|`;*d-(FB;=Arna>{llf2T-RAzY7%kCXIrN?MgnhWO z0J>+2_gyJS+{q#u*Hys}E?C7Pa8<)M|MVnFwBDF4bISiUC8@9tmb%GrNoK!tGndzw zAV+2B?fb7S&a^R(@@2u1?BTx|Y2|CRr68wB!B*I zmSfa*)p0kiB-QAoJ>`B*3gN zZEzDRKxz9Pb?85z^}R(61W^RUKYu48gBK3XFE>Fo?|bX!nLgWH5@Y@;ZW?$&hwxL| zM(>_|E6-=>O{X znZET|=!}-%$na-Byl#TuZx62rrT>gQpjE;8Ba}6A{&iWN-91P$wJC&+>-Uo49$1gc zgpCl9`PC$My9GLvo(zLL_R_llohk8lKuJj4iSwN;`X`+c7@QeMzYe>Uyr(S{kQ;jl zly>DdjpxeP(B1_{rF_e3CTASpiVX?Q$Pb+mOrFp&WX`e*EKQO^Y)AFZyj8jLBtPWX zkrMXmVRC`*&n)8Y(~q3Bo&yi(VZ8J0)z5cgGDmZ5mJ0lCLXquC*J00fo!@+cKRpSX zE;?LN`&%GEUD!SRU~;E8CuBLojvdVbZ6e=`++;Y7 zL{P)Y`4sDiNQbSifI%b?I7(nO> zyW{+qv7AsOH%V_4(*a`Vn+b(tm%E7>Dwj8S`{`N?Vp<;IUNz5QNdyxgg1`9^Lz0z3 z?HH6gI+zEx5L?^0Ei?8^ClkTL#6!7J#=+mfUhCQki2`4?j-Plwremtfpdz)QuT*GW z2VIr*-B$!Yw%tDgBjiFAmpfvR;wF`$N-M9KMFfKi%-W40{GuU&iB=NCH$qphIAFd} z`ya8W+&uA|{JA|0=oNMdl(BWU_nWt!xpH2wjA-!sks8F+vbQ<#+FG~|7?yR+TO6+zoL&}k_o#^HK85WJiCW5}GK$W- zDdi!Rq4ngTyfhR&^P=Ka2Y*FnhewFZLsoPoPz>RdrN4xHMFYPPm{>UNVQ7ec@e^t2QG6gJzS(5Y>In1{Px~#fHvZVjTjs~;6t}uJNXzqT1`|0R@ z;+4v-l=YG<<}JuESeW%j{JMHhZo`!Q?H$pU9v{N3;>)lC3YCFPg7gE&EazTc@5fN^ z9{XPhTtce>jHQE?h2NgXv1{3-3!h)qPJdSz{Iq!`L3yFsqQNn?BS>|Si(RX~-Fgj~ zay{-lZY3!pNH;J<*nmfH@h++dT;uWyM-{R2jr28v<}`{G=bdk5cv2{i*LrZjauNcXkO1SQOmr6LdX()S4L>qmRCgMH5{sF(rgsMq$eo)Kk>KTzVYzGT#n5*xj&VvcJF40 z^jGi#L5s6vnU#hY6hkK*3Pis2xBl5rnrB+N81rM#N3hFro(xrQjyCW$Ws4s73Q4&b z2YJBCy1??iu{-~GB-Y14T;S@Os?Si7kMnjMS3r}bBnu(zEP0uAnOkdN^3`R!dYlj( z^E!btO%Ip7B(4QLs8PkAPfN=!y4!#FJ|Zw8Zk!)@s}Uml)Od_$;{a_gX}XFTerT<5 zAO_GwJ7HB{X$*SniFo}!`<3&V5oaXvzdmwsp4QMaZwL#CqyVO9tRHJA9diPE7DdG= zXMYfj)+^ZbJcvB{MCV=`$>+76zWOA6R-} z2EN8p&>2lMk%p+fKt%eC6RSnbinn4dA8u-vmwcB9^T!fG(#-*bpfY)(v$m6E4@3&M zUdkwf7Q#2xv_P1mLf)@hV4w7)&vlhy^Jks=++e5CY!J&S+G&$=GMN_`!HBS-pSQ(W zccUUt`!aR72%NFywh?``E=uWuakl^*8`#QwLh|094o8|!A6&v|=WohU3M9Nix{bls z`^Jsg*%j5MH}mp-lsg^oxshd_sTJZdQe;27wy)5R{Oz2rxi9#OZ^q>pyuYqa{fNuJ ze9~lrfl#wwBQLhD2%Wn#aARS`l1H!C*ISBtX#rIEyY<`CbN9AxEdGVBd}M)5pQBu@ zV6a=c*d!&y#0jE&>UUDD%h}n!uBARRo~PPS;k$FgO?`G|LA9x6XU8u}eQrhg;_Ct5 z-P_OA=Qo`$w#@GAhIFbge9OD|cFT9~?yCC9;?cszcYk;GC=41);1Fq1vOl;2p|Q;3 ztcHeO2Zj_hR@fh2JcoAu80V(3`rYY^lgjSF!=_ocAD~Np6hj4H0X57zqInmqGkNP# zr^e^rj0NAu_p(n`HNL#fSg>Fg`!)iy`GOZYs<@Lp&8)ZtK}lc!AmkfY`n&b3Yv-{N6o$X zMj9V^p8>ytqcE$+zWR6}GUTmz+i0ps1RoR^+ZDXLAAKv_U&fEiQ0}d4*17)A#R0)x zHvgT=z=T`ikz5~GnSK(??pj%1eLRwR<$K&o{@bXUs;GBYpTe7@|B~dJT1B66n-oGzH zkQu-|TZpc;G17)%54S`}KnEOaotCeEfW#<&&!PXPPdE_D@07^5sLXfFN|&6*elMqi zr|JLI2w!V;1~FklGFY`U-A8=XZYUkJ)?=0hiZAN|6;QXwoLJaxY}B|Xq8aC4OIF9& z|1cB+2*~8)#GaS@APFx(NPQU6Cv2&hnOurTvIBJ}(Au0fTRa4DgrQAit?wc5|EN+R zELgD+rYD+$b>QJ$CjJ?)2*RCU?p(XJ0lJ}|0C0{P$xxBCEDm?x^CO~B9Ya91ATG2J zc|PHt9!*jWYa~PiP=!Aa3(WZn&%r5OFkY7*@&uvDA#=3$_phYis7T>E%!m3AL2fpV z7bNNN%$={mN1TwrG=MI^SS^jtLI5-q@$b*B5uvVbC7On@DN9_})u9-vjIJ{VUEc%= zk8Pgm7;#M+jdY?JMSmD^xI7z~H~AL`VFgySP#-L8BDmTzJm(F4Bv)s9S14NA;&{1_ z%Bs&z6bbBAM75cxa!NGbKZLN!QKA|;CUBsQ5n%W#Uf>I zNGr*Np`3{@<7#2E_9M`cV(RW@U5Ppk2gsQqb%JTiagJJ0>z6(-ZxisGuDab~NwfW4|ykaa=!iKxZh5FfzQ$q9@`>%-G{DSc>%`^gG z-5pXSX%it#VZ??I10cu#D4IGaK_E@h78k3X^rNUyb^BfnN1cF3Sh|u^_zAWsq zjK{cM0t07}u*72>jqAFB()^d%GUZO6?(1u|9X_c^I0eW8ioSH|B+NyM1Lr<^eCsJ!E(Ob^FTntzC(24C4VOi*cbSEm9t%>> zxJpO#!%os^I%0HWb;Rx`vynnJ28Z{C-K&L;k&quH5Qj)T!q;@G^4B(CPE5NXP)c*j zI}zS!PfhcFBJ9nx0j%2Mr9x?}!624nDqmLllg;*6PwkgbY;dtyM|t-EE=i~0IX0Za zDLf{|5=Z;11`U^|Io~(82(+H0J=BkZxAT?+`yvHB7Jso}gF#<~-i*L_;W2@b6i*Hl zFg2Pxy8J)1z`ik{IR5t7Ni%s&cU@Y`0WJKG{;S?y{JcR~2`4*@&ifVjkKo8F=8+Ol z6Yg^%imhn7Gc$?Ne5OX+?C=D*Bqb79F2LdZ@TZFpU5&p=nz9qv3BXM&s!+K1PSTfz zbVs|_6)oo6ft6<_o=okiQUC&aE_D;TuaH?3nKyi|PlZqzvhM6Y7$y2?mDv3UJ( z5JC?wUc+s>nemb_^&as+ zjn58pru10n*K!z-z32WT*>`2~F4;%7XgK6`%CgW|fST{|OwM3~Mp{T1!;pg_pO*m} z8ygR!`kyfSSMcUSrhb)7Wh6-IdHclxZWAEuY@Ng;{d}G%0WO&(0#{Xy?OY$y+QEOOxfx@#U-9lM5xz<`X&v@e{w?dA18)U=v3s z$d*(o!>caivx;knmb=91Z6^(@hBjmJr$_MR{$FLEv5*8U1ZIw~sQRYz9M3FHX@6TzD^kaT|a^_BN+_Dnmp`I}G8cVRcOKB)-8P>v2 zU3v-X=}q9-TOZ%$`t{+0Gb1-t++UWxUivL1}{k)|CO?! zif}zI0&$G#P-XGNd8wH1>!_UUJ84|o)%c8^h>yORZt|exP{XSG{7>S(PPpdY1>HSu za=QEgG4MR?BC8Z)e)VndkLNIzn*ntF^q;O*h_J26Pu@tT<%8=?yaLW3YtR)ECr@*K?8fNmE~x+nN2A}gcZ$#U zof63}$F+-0ytVdl1f|8mdGDP13l!z(zXa!N@7Pt(5qytT4HF=}pLdfSx*(Ucul)YZ zkqZf3EeUO!K$Edy6~7rFs{dyE`V>Kbov_f+kb8B?E(J|tr5EoGyu#eBaCy$lst~-d z&7#F|Q$l@V<0xaf*vz^-WXKtMPf}iC5qW7)7Q74=tW4L;A zGi%~1u1Ym}AHP&jY+6ye*rhMkeYjEluE1xLp!Dj$0C7;S(SDIVA36E>pD4re6OQ_(%B2RUgh8l(1qbhg%-_FX zqg1KPp{^GINoEOg^&cNnJ(iOxUW@Etfr40&9IzVjnt{*Pl$Qm6&`2o4P3u9te12kO z!fr3ltBMm2!yuQ2A>md%rn8&q5Q45V#AI>#;crNpc=xX*A=487O;QP#{O~#E$f((L zoS*#SRehp`{G?Dwf!08;XM72grdj^WP-^Gbe|Mg0gPPLl`kZ(Dgzr+WIpD?B{?0Lh zIb}dx4iEk(hMPhn1@&4^opK=(URULB-9`KiJ47nwu6U^7o4UVq@#?Q1;OkBAHaOpH zJasrj{x&^mF)g?wQ+g~l&lqLRg^2y7#RxY|;lCc_4tfl@%_qUT*h{U1m7{Yd5e{{j3y$2pv19y<0q z_Q*IC*$$4qj+sqD_6~Wgb8rsF-di$5Aw(f`NVbgZkXed~P%7o?^Zf(v->&<*@B6x6 z&&P8&QM6&oU_fz(#cXs=Q}^~|?ZC*i+sikiEg?r6S0JWOE6A<`r^juWS!%+@ablbT zZ+n-8@KdA6KtrHWN%e9XdO))#I+9g`P8a%q;dj;h-!~7b&y{4c1O3hF8#0w;!6sJ& z%Qs?zB5DkdH3I)>*!UAVwY56&YY+eDo*4n+_#h3uz5)Ks_WXqEZ-FD!<$(gy8hCC?K{`Q-wjTbxf<2;w zB;crY0tms);9MAufL(bQ9HIl`1~c;*XuFeep)v+U6ew9Y3v!KwZmRkV;6h2p}SXSxvvFQ2%Qg-s*((7JS zOIZ3b+u)oue=0rp;rT0z*}+vH4{jS&$;1Sxb%IA7^=HUby%mI%Uh9gsxYEjf)-L#h zGQIvhq>MU<_m2V1i~pYgn+Uz@N5PsY*%8VKAV}^+LMi@(-xs-ZzRbpy5);%nakiLO za1eEh%9D1QU?YMm$on$G07921Yk(3{_E=3>(l>8@7zsh_$pbV$~T5 zGuOQx{aM`L?sk~)H3347QBp(O@Jt7qH_1%yTib4<)JE}GB_?`2o9Z#o{k(aH0FiMP z#d~Ni5EWxxV5^(lQzAk=buK>5gZH!n#I0A7hXO zd6}{tTHDyH03no2scvQ7WEcNnDMV4;4P>D>S1I|M(tPoF#ZY(G>I!8gboI}VC;T2( z3w7JYFFv`=8a#g94%TgLQ~=Y;Tz^J2f9{zfdzmG(K=rFs?SO#>mBs$kKXY!SuZbHXyUxy-h1?@)Bs%%RhIl7=&uL+on zZjA9-*`M!r{cP){~?FfqkSF|{<{%RQHhez zuclYH)NMFsdDOZ*tQW7mS2%GTCa`qiPgsYauuH)C48OSP!w3qiGr} zOWc|>hEy??gT-JF?AD)HJjQ00@bYu2N$6=oGiz?7*qjJ*Lq>)bSFy&}|2zx*Ij92X z?nE)@SgX&n?s*3oqiPlDh99B5tw-&p`g7JS1h8>xBYa~@*Q&&4gi`%;*f}lrRgFxu zA+g&Iw)v7q+LRFQ3J=EwJELSbKtjlp%L>xYYSX%gXW6e<4J!HXpoFx0$wnS-xrKvWvl!E`S*wu zCmA(9Z=EB{;+ys}6|9k@Mem{aOBCprU|}hKs<26Q!{j^7P9ofou$@{yMI@p2;pQlHR9Zq)7>h z(}hEfV6WJX5F(b(j6!MPBRrY2*F-l4s>M%+jU1yh%@x287e)Qk}yBAS&}|mn};f@VhsZ-kg@vO0BIZwrnT}IUQ}Cld{3KzuvG%lNnT2J z@0p<=`P?6hFYrr{X{Jywm9lC)7c)&+Bwz%!Dm3gZ%|44-2{X2THAVg&i){DmmZ}ha z{bPvbyQh?-I0U1ot4)~=rW0SQ{HlB&8po{%E&sMJ6O*y|etrOrgslYmc5tr+@RDGk z=m1bmjoU2D`o%d!dQ>YY)O>CBmfKa6G|h9mTz&|?P?b)6H^_eFqGYtOj;7_afjfOH zXNrMUb+-egRcYp$J%pC;M%=tw93+2HLMVTV;+|od_y}wxsFGlr;Ro>$xMVM=m(E?& z8_uGFsAf(e#u_v~nkzpIc#6pUUQ$P2(-I8{EZ~UMH$Y{}#o7qpI3UCHX7m#bB*%5B zr|;u`QhTrR5ph&<)yoJ+4(%t>lm7*N_DBgOR_Hkh#*_)`%y-u-o)@Ar5(xXprJt1V zaE`kVCh@3gcb0lf=0NVSLSVn#9p9@U^ATT}q+TWLiY#=Fdp2>BDc~y&i&(mZ%>Sw+ zSm?G2MA%%;(OBNpHLr&siU>=hz>I44$p`$T%T|tQd~E3S>}(i;>CKbYU%v_#+Xg`v z)3Uy;0a@g%ca^PL*R-m8Tzws}-Fnkh$reum!8$aB;~6<7%QW*&SFrHHcsj+C$|cKS zHV!k*=^I>l$+(nqzu!lx$J_@%{Rt+ATny4t~~x}V?N&OfjgjFC=$FkymFi2Tr5k!o~cqL>&42gxxI9B4`#e)FjkJRj)JJj*Ea0VSDgCKyN`Y=$`UZrV?;gfdNL zb)B0Cx&)&7A0Br%9Z&+_;u*ovr$$f-StP{sM7uAHQ5%faw)&cm%66ln>7TsnF6_`W z57V(SVmeZME$Ev%joGHP*QUFkDIz@fxr;2&9E@6?g7eEF^Uc0T1T*OOGfo^#aA?DH zVqqcRV-D?OmY|j&Z>YErb1wjA9OZ{w{f}@GEVG8LfdEs?f;HeVG~wmvCXm-yY;UmF z*7%-i6TE_U>pZlwTU$=@S>rqG=DP-om2T5lP15lLpL&zEmwUfqdBhc1P?BdfWr%I@ z(Y;qvo5gIwXoo{l6k;t@@I^2f#EJ!l>AXkzCj^4G3>v^y{j|9msnU~UT6$XoX9qdj~(;T6{f0hFWRx%%0 z@c+tcpKtnHHp&3soMM}VJx@LeM1MlaLw`;&eDVKFm5>#91CL;0C`v#gNv@oGC9Z z;vR?17Ll1js0%WOff=reP-z3y#X#UpmQ>Opy+5ie+cQ7c&z_zF8OJbn5n%TSGS?3C z^~|sz7=X+mO^^5r?LG?b)g}j8!-$G&gzjD&!@o@taM)%sAq0h^mlrwDbd6&E3l`<( z6~XsA#K$IY_E=Vxq_^}OlT@NdWVN=@G@oOGH?PQ!V?wh$<=>VYHHZ_L70A=vVhAy_ zmaQNCE0$GP#w?W*!=f@Jgo{QXR`+#`D989@iL0GI4!yEw7BBUy*0H+uau zbu40Bvby_Lz6sf5q5T*ePtOl>0+GR5Ppc&}j$qSAqKqL=Qo%Y~7fY7nN4|tL9bhRl zrg8U?o|Ff{Fc&{BKt{9l4eK=F>og4)>_0))kjRrLfqj;C-{72l->&~(#55Yu{+9L9 zk*r6^AMJ)edSSxHGo0_@HS9Le0AM+|viqOBZddtcx;ED<8Y9P7JYkh_(FVPv=4eYR z;S~vhtH~Hd0qJaT-F)jAD2Of^5npR$4||$$HC^$Kdzr8}mdXalOMcVWf6OC|FM|jyWTaniJnoy+c;!Zxa--2{^riB)6(*ZmP+#m`Ywv=g5PFtUdyHh_tpXXqD&*6Q+r?+j7_D z)Yf>Mqb_TGIm7)~wH`Ro7xzK|?eYzhj9QGDpyetDXwTPyivb0CJOQ93fXD;}w^{04 z`K|*NY_SDa_)#&K-dG=OZlU9qFuUBu^saT%jMK_6VET_`3pzz``*)Dh-wAr~uBF*QdX!EQ3aWHSA%% z74}Rvf8Q=B?iN1y!t`uaUd1sET#~`G&$hi4m$4ZvH}O`UgQv`=U~H`S60{dC!Qp~J zlMN2a*{bTHHoP`DO%WO*g0>Pqw$IaTqggSeP|TfHY#FOeDyz4>jD1hO#HyA5{gXf| zKZmh{?=W|r=b^VhnD}<--MaKs9CZkhZ=rLCLmAHr{VW%zwFw2ng#s;}09*x&;pK}l zLAD>@ebigmKywv=;aA$t-E7#!U8dbSr422p?gwwmiACHJmnoZRR1nS=Y4+o)sJWU_ z8LkjaaiH>24_vVmye*rP=xkn?jVo2PpA0x(T;4M)ZFR^6vS1q#sVZF$L zn6aOtrT(J$5b#}*P>XBr7Lf;2)kJtNivII8pH~nunH%$hA9V_BecoO2zdr-t`U(E9 zaPM2B;P6}Dns)2AM?x+0+J_PL_U-l$GW{FL8t}>;^g5NwV!Y>9c8tx~ z_0=Du#1pLIX}s$xm39>I?o>UYpX6#sbS>PqKDQy@Umhjg=!o~U`|QMO^Hl!$hdZqS zCQx8qb7CQhCXT@$fO^!^`C~w$3;FllI`6GR&+Y5~m|f*<^?(vy0(Oawcc*TzZuLXEVLFUe2c=7nH6#s)YP%SiNVwN~q+yRf7+Y zKN5Agq|iUR_V2a0(Q{8}@av9+Z2O<01JA4V1-Df?qXXC#0wYk>U!n>e>h8;K8RUCW zy}Fm|Q2vSw>nH=JKJ>SFV-Z*s2k*~ebib|x5)ImNB`$rWIKWE0BZI;~foOidxg~pLgh5e)G(87-`gWTtp zN@zAZ6E8d*+Wzi7rSGPo-j4_UIY(5Q>zS#f#lgEXG%kf`+ zj#1ahlRmk^zbJ^edo5tI$ENJh$K* zG&~e1&3F*U@90Xh-8dnorvtb^JN+>awS)~oKsIMS@S9a^xp1u#Uo0|kE&T~M0LElJ zSm=7p-B(dRGxxZLGvY=~@sz35W9b~DH0@~+@Lq3I3xaw1M_ZQp?hC6|J@F0>gi1=0 zwJ_w&{gV33lj51YViB{f1?kFgnzNj~s~{^|qt2}ko%Al*H@Wz~H-EVs<-MDD{CAtj zae@GT*Qwy0#OeEm84t-omHcdfoDb6(p`s(h=A-foYgUX#7JK!|L zE=#M{pRFyhI;Ph0vM26~p0My3@qD%MN)4E;7yO&I=_t$=!3V~wioW4}S{s8EzIXi! zVS`&kY$Bm|-d9x}yDN8RIX%CJnK+ zdoEpk$x9kY{4%lu?!InvE-D6eF5L?Ire7K7ejl}~Is-ab(g)|Mj(>;8)rYwpJ5DNb z+F9o0*qZg)XK;d7lo7%jvAXV0gv!mi`ZWBCP}_juPv&>ZZais7-_^t7! zws`ymsA?zeOxZk+s+Ynzfckd2{F;iRU}#?GD&{x-6Nyt9dy9}ck+fZtC|B&rv~q0}6ggR77k*}w$5(Gy`; zuC~P^Abs>OIfYa}E|-!(%`EA$cyL3X1*NLpW`Kw{%46ZWcpmqYOiR$#dW*0c3w;$f z4?K0WVO!mFl|jzAr1NN7{o7hxm64~>@Msb>Bkl~X<1HbeXltkDeSo1UsmH+qyBE(0 z7RFSIP3;xdjZU4S`SKmy>;BV_NKOvVOLm{)UPMnNv|20q0G-sik{x@`cVl0`Qa^Xl zQN}IQBiW^(Qr9up$0GU5MPdp_7Bl{ORC&9l`Q|Y5Z*Y!Zxs+=8KnbG1e2UQt6 z5faJe&-^CRGE_SJcIp`3lqL1|>;XPuokoq-GF(pW(_k{|W7o;vo)}D1pT{) zBT%tLtz*vNf^F-1jQ7MhEcj!@FY)eIU~y0^11#29G7Tj}l+_j%gb2IjPV0&N-4#fa zbY8zfqW@jZLd_66_1@S_(l8T}&r`Dny`GR=V}c75uCb8w9TC>P8Ml1{aw|dJBa5nt z?4cj9cIs7Hv1o@&XE?OGsOi<*T+B*mP6qljseBM0sxtK?ePZ&PwTO(G;T8G?CidE7 z&H}IK<*J3%JfK$cWRMLMJ@?G^wh`-dUr*i^3TLC_2rVTpJuE$}wF-DeM?JPHT9RvFC!u2_V^s{+x|G(6TuJs`*r(Aw*GOK>?DLDEntqFkRuSNlt~!R-a(C&SG&bMq!@F+TyF<27 zTRqj1z>6MYzcbjx_xp%=ZNv9b%K)^HrOdT9ufi}}kLuV+!D?c@JTxgYgMk%hQOx{k zR$x+|q?9#rn=c9Prmrfbo;itKviOjArD{hElJKaysvKc490uXmYilE1djQi)zH7t) zf@3FIDzo(wx*}S(dXm>>tWYPOh5sEnU9+@(ykxQNz$ml5bV1Tr8j;`rotby$=i0Rh z_qM+y9@fForzMpr^LuyCzLJK!L~o~_FWN1}bKv45H0vVZKU(w3vSf}8W3`nXgT|f{ zPbIHM#_KNlMfY(9<+cq8=IuM2X+yXjX{VCG-S=&{xvVCiC;-lgPjY`91k7t_xU80}NaRD+dNhGFK*&7ZHza zzW5?Wm#xKV>hcjJTDe~q5X=HIpW@fVjQHVsydnb3Y2zl2jn%%S?vY)v5^ym}m6FTX zevEyo05Q42Rh|9YKndO3Ae4N@EHt6_n$Lkb-Ok!j*z>9(G4oKwRcDkrx2+Smn|SN2 zs6z7kh!Lmgz6=!x0B`nl#@=~t1NWvC@HT9v5_Y>+6T*u<^W@kz)wLTGVDk{xDe~RG zKgp*y0Ax)IbE6xfjz-h3t{5f|T<5(2`jX_v3!WXq;YRd_Vv^b}oejRAvNleBk3eanpJu{Pjmj&S4L@L5Poz8<)hjH7TU>xei&x=|F(#D%hK9 z1GCtaZ&c?))+ys=7RmE9tk?;cQ#;8tkEI1&oJcb2(%($81dom}lb9`tQ#7N`I*fXm zYca}U~Yxa%Ef2pUXztNzn=_1sg-$ex7ps* zkFxZ-yc)h1K^QTi<;Hs(o2eJNMM1BAHD;j&zOcP!Ir9H{9+cfWU5#F-LP!KgE^V&8 z{r&SLkT5&9{wNz{JPJ272xh59QbV6I_rYbVjdlqT<_p$A&;ZPOaTo#>+n_^q5)&_# zTHH^IVn%#AAYUJMm(Wt`qmMviU8FW1SfBQDt_6!*m%1TjF9L=ZZrUkJS7?}YV#OJ3 zgWsnL(uj5tsJIs|Le=XxE4!omV1}VAd=2Yd?Dm6vcfM0A0r5hYNsMxUR<0aRyd?Y1 zsFz~V|A(XNlrO^3R90=JL=hd@3E%Wq*fI|*itf&92qUz7LCyQxn$w)lHUE(P&rg-GCh9rA6gJ8< z?8r^KnNKiSYHWNEH{O2sSiDcy_DW9n@&~^1fn!S^dCKG4mc2UpY%}r_h)M zSI0nts0$2T=-wP8sGe;gGCBst%tGS!+)5rbzPCDdEUqgQ=)Kf)Eh^1<+*RV?;tR`% ze~6D8YQk?6H_=x7XgbN2nRS$bW*&r0Y626;}4x>U(fs+}XSPd{*e!&`TmT z?RmG6;QQ10M?{1u>UUfCzqL`F*DRuS&w((z{(m zdH=&_xI@J;c)E2wz#&R>qY|Y6v{Qf>5M{(1elA%-qk_XR9RO101k)Bg9RYXFPB^?l ztys?L`V%Qd2CE=q4{lJqTj1?0?n=C(Mn(}lv+!UJV$^jSHXKoR(NI#0sOJqb5GR_Q z5^)?POC^%E9m)1onoU@qpurT>iM{>hra?@#Yvv_13o+G8rF6CKN zN=IQzS4WDeTuS$83WX!JUnzCKF7-TWH)XIeb+jXOd@=RSY3ilK)G4L3S-Z6PsI7P5&@7Sg9pQayhWPDf3IELN(YL{_ZnDMuQ zW>!pIwk`wU%mnUafbBD>@gqo01dn|pf(fgsSRO~inZ*K6KYS&5=}wmDO}OR(72;Qd zts7O@HJyrD9_)1H-&ue+DNC|5dn8K5{~%jnBwJpYl`)e?uqIK3VoZa`sn&t5&;WFt zw4$8c!b&-McXADia#y{nODkf73oqIljgD=(wUl%HFSd{RT!&74p3_nuWjHJ#~#|_$&WB_*c?|B70QbWq=a%-^WO*U@+})lmQJfgtIVCxsV7a zuSMiVlg$Xfw88Cw+8voO>%wg1qFnnT|KTWjCLm79@%4sZ&Us;JW1 zp~ki=4}bZyq;zz(e@pm+i1U%n<>mo2KeEg!HlUq3Slg&T??&|>ksyUGX%Nf=%EkH% z4s=*?Cr8%AEZ5!}&9-;ob{wsVtY&5-eqIhP`)lbD)f8*imoNLDi z$=knKIB2SI({;Q>+`!M;YKKP;X)|L-IpbBN^YK8vlpFlnPmTP8aJU;7dq6c!s^&cn zpNp+hTjn!*1fZ4z&ZP)u%WSkED%FfwK=yYfc&efDqf0&@%M{FZ29r%ujZt7(%f!_83p8?z=7qI%J1Lp8-*Im!l7DOjIpp8Zg_b@QPW^WCCDmZP>OJ3kuD z@D(&@E;ETXHc(fU-$p%e2>Z}yaf{ zmLp(&LtTL5t;XfCmMlXgeF_`X7*fp5qC&ZZ z{l7MYlD5vmmXDI`wbLyK3n|K28aH+!E<0W$_p-djrmhiY^tvcgVI> zUV6uu|HuKl4oJYCnacV3-wBg)K>A%~4S3ht`{xCvB>92kb3f)TU`j3e9kb4J*GGTu zSQ_znewKt}R`6=Q*c{;mJ!0v2T+{VmXLm_wA9wGjYHyBG_g7}k!IbW5RTH~C$%%K& zeRtT4udCEMa3Oqp3=f<9r<-|Odhl_{{DOP2MLogMpANn@TPL+=Hseu zw_e$mzIKRtmG^=Y@s2X2+O_spE0Q_)FsJXyyIj$?Q2y$;Q@{2@Pk>k1{InQ3UGNMi zXKvK}I%Z|)9uH9|2FZj2Ko~&0GvGDd;OBSd2#Y7Dg3_F4T2MOR1j6qeJW{Z)a-vcb zWP)5td|D;IUh)|ksq)eQUvatWZ0J$vNiY7m&v7FD!JCEUf-j3s4`7Q@cHbRlK~y#X7C<`o6@?UjHqfn5b%U;Ei_weW_@RanG^fHQ9s@dsKPGf>fkN#JfR z1Uhw|Dw#tMFt}0C_Ds=#aT&i@%+)kTqc2lHvi%K6BAxnsiM#77(|muYD}>%iT0Gen z8cQ-6yKzQIb!s&%0BC~qC%9dc3#Ri{_@0Pe>~$CRc1#OB^U0p%YH00*!YE4L;+~l7 zpI4l(O=R1ak&%-42^8;K%3-#(DJA)k)w*%KvtZ8OZO*c%L~xavvxkj64KZENi#Tk7 zg-o3f)^zRX)vX?ld279Cw|T1R%&j$1Q#I~9qdWaKJACO^&cgAB3$3x|E< zUqf6I18Q!loAh|i0EBtT#*46nBLuA;m(uK)b-QuQ)g0Amv}*sJ3Qe0 zTTc#N^J3*j{vE$tY?l;DT^wfSxz zwDPs5?6{i^|BQH-1_#iTFG^viO0^-tM6@_C#l8w`*lTS* zNv>Ro?X+_zs}lzd65o6Hj{k1$ayo06g3s)<`i{oMAZsb8)6aQoVGjD2=#NUI^UbEo=;5I^efa9RD0 zog3f}$pRmu-W2;YXhjWunA!PoTOTqhwBxr?Vaa?~Rdtv8Ol#=N$Lru-Z-L$1z#@{% zU?SeE4k+J^_*f9~kA(>fh?Z~UkFgo9eR}Cv0Ic6FT;ng+U@c|b%lY*Qs`DB7vGIIH zp?~9fp#%42~rIr8u#ygJ1zURU;Fac%E!ZhACJ}+e>8oA zxE@eHiSRlAXzX&=Wcb$^SvT(;uxK74HA5I)E`rYAQMn%Syg%gQ_hV<`XF5kRpC5|i zzl+Q22%Pf?eM5>o_>Sg3l9!dZ{EbiA^&3d-Naf{`+IxNlrUp*U_uTJ~u&&2jB`RnS zyoxm=tLFQarQUI^_bV=czv~?yUmS|tnU@lA4R5akbmdgW=Y0NdVCrU55aNZ3IP1A4 z)0XEGG&QQ&R*HS{Hh9Jw4P7r+V(RZq1k+HAsoa3aWhZf(r@Mx*X+PPcJpk2vs>nyn z(0qytyyKPG;8zi1bb~7MN%+67J$E(m_353+UQ@`mT0qV41ZI)b{u;Ppe%kQz2JoK1h;ni4rT0vBQ9xN`&-Pl)ZxMe#o9^$_X ze?3UV#)~(U6|D9k+3{=7I4`+{P17&MK~&_a*B69`oyV!3DbFkNd0d7+%}Nmx$k>aVi$xF2*UXfdVopZETq|NVPTgT{bpgqtx`OjxuQ zl)YLqHkKA(5YmRAhv`$p(cZ$@QgU?wJjsesEi*sXgz7QCZ$3utsK~!knUHbsE2m>{(jrNigYN zwa{hvY{OgV^OLSx8VZRFbj4~944VTp-81F~3c0DxNPvl!b-~>3keds`=oS?KR&3?{Z;V zkoP4ai!EZ(D*;!9Vf&mW(?Hy*0n2wYzIH1`7yO-%HP2oC`}X>p>)kYBK1x=uRUtN8 zYBfxBS8|5UMcJaJ-WeDWzVQzbEk1K97e4a-0(&Jh#|yij@LL3?o)g`3)wA|Nf{Jf_?ZYnL z#~FC{$K^0tm7H?Bx0n4yX_Ac>t?fC>>iqykjW;NaDa-S6U)I*SUD7NyV4e+ocIx}` zoLViok4CIJSWjO{yyL)VkL(5f%QNiO9P>Ilw~nKblH7r-<8RC5%~hgMul@2mEBw-Q zK83%!eyiv9f@`9B#8O&vXZaKEM|XQ$_^R+pHp6nu&)%iC75(4?eX>_1??VHV19Q%M9wL(YVyInU2 zynp~~iepm=NDUOwrn_NecEP1FHd^PYzT2_XCetj|lc=#}wU%)rahb`ndt7T;ENHAC zTML{XM6ZWND+Nbp5f>(EVw^Fy-OwVkE8M>$M)d=J?vPFc^+md92IGq*s&nv#BO5z4N$U%%pdiyZ;1<%2$l3))p+f(srAe3}q%hg5@L zuCT}Pct=#HoBr|Okpt`dS4xyJk-V|zA}SWiqXP+4T74_DpK#ecNWj+~hFOYaRz%PP z;L}->Q`A!^OIS9?p*TQ`FP}(2NtYM3IU8X=jqpnz3#vjX;BmBdCEHw`UZb~VUYGSl z#kt%W2!YK|Wq9{ax`40hHt4UevC{le8H0d}z6Oi{I?WMC?e-a<*0vgD*uJUWlc&Y- z-L`gqt|{`hpUV~UwHML@wr$o1yJ~HS#Mm|=9}}P2vpL(qFS5>fj-|SnfsxEZ@L2(+ z%SonN#ZwcTR*})r0B>DYhZ!@5`|)X_HmrM1xa~lcSIw4_X`Jm7ceVzV7vyd9?IztsxgI@{A3dMi8T}!Y z)_n&uN#$V!QZ=?7 zG?r7OnBdp!hjl45aqbbD^Wj`q;1S$02$^fxagDEj;!|AK!q1l`f)b7rTIlS`H8_R* z53I#TxM|y+Ig}j&{WQmbX4|{}Rq{oCdpO8E5%i>XjdxMFhc>~?1POA6(T&Zc8xIxFq<9|_$ zAN3-;=1i3&G#Q`eckDV?Sl;3-fYgBlrm+vDcYXa7ALHqh>P_yx6G0TrqAIDMr?1q` z$Y@2cG9^Y0h@?MB`R6Er6ta8zLMS^&$^H>tOO4@AhAl1r4pcj1w$RAK`8Xs{Oe9Cv z2T9Mz$2bW@W3FGY2VrGDSI$3XTFL`RHxXl00N@)Rq3^Zt$-*ye7QMR+=Ar)dB!aV# zuG1T!$G>wpLwi;GUp0un<-1pNWZh97zK-R{#IhBJ1B~Z)R(3QZyJYM3#hd})$q6B} z_IE=yHmOf_7PuruaMKLt$a&nGX`|ZZ#kl^Tv&TeehG02}0da_dU_4*SM3*Dw2!N?d zX5+%@ajpK{&v%3#Wg;mo=}(nMc6Jn)R9Y#{ z4xDPHKQjJe>uxg6>i5s{A^g9SZ#kDzH8h)O74qzQ_ixI5zD%aVl};&ZtX@Go?x{OF z_Tu9>R7j}8m76bdyKzxtmARQO8RRH`;LrbF>SGq}V?m~m(-GDk$ugK&Hf-!j7d?A; zpXHUhC~iXITM#Gls(NN$Y8M^nc#oVmKb5y4TV`K2nu_zPl=0N1ioL4_;Ql-mxLbk@ zE!Vm<&@VNsy}Jh%5{|okmDac!jC6}_G*e1z!hpEZwfCpu`ISJ_=vW#z5XTw(6oi6$ z1IW{U>Frk<$FDRY0~q9hmhgb~)d3ys0M>dy*JD60d_bQ#V30dtSUq6WHeft3U{YYk z%BhKW^B~Hi^=_&qxvLGzatwNf58k4$Wg!rJO7$esaGz>DShJq@_F&+#o_ZGqKCB1t zAZEjcLZpU*tcPxU=+ni;`4b5&=%mPTy*vIx{|yYqg!3{H^ySd-d*gcevl11%!8o>46aAvOAVz-T%Y6cq!`SseA>AEhYAF`&j;y9p^VERWho8}J@u&paL( z7ZUtafy8*@PNM3|JK#1C!zd@?=f@YluXW-CeHJvlZ(Oe*nT*M#5_gLmOa-f41gX7= zBmNK~J#@5mJb_}8jWZF)fyGY2suYM(zX`D|UfcjI28*wNK_r9YguUY=GDmZU$IASZ z=3^!nOD7UKh!gaX$!dJu@67nYT&i4(>0+*FhlDAqgQy$@79oRGQSfnph$KN@wA^e| zD(Q{CiD=aLFl77yX-*FYMR^Qni%|_cm*5AZP`PAIE0T4Zfi!Bmz2MEF(rpvSVvD{!BEDx6&HRaO)h?h_L zv;is|#N*OIhAG3;4qQs=6kG&H#Q+tr1ELxT5*@HT;wZQC1yyc-W-@ZhGszE~+4F%! zwE;OCGyYOD4`4({j|JmJmjHRp2NFwCvh*#DC%MJ>pE0Yt&E)0+ViYpCW{@EmT!%He z?+w8-c38lMflpVHma7L>b4?U_rWJe0^qIzqsi2fngNbUZy0*7$yjH>lqyL;>+|F-v z$1M`+QkwEK4 z)?J@gkbaYZuwqQJEVBmR-?i3nB!hs(3SJqzQ&l~5KGRteV{r?Ph!xc^>HIGs1oyPm*dcZ!@fZzTLKoWF%{w+;Ji z9sXrL<@I8A1yz)kUH0Ol|Ndeb0u)6L5+{$pKYQyFbDe|(|D%W6c#e|D(>_Fyd-rZY@5U=&w4e{|+(+cV$k3`-^f)Sl!B1;bmU zA-kS=W`aHw1+G1zSM5wj6ZDzI;jU?;IT&Y;0NDJ5-hwmPQx|`oFO3j-w&>%uKq_3V zYFwR%uKHI~N%Gnhi@>cW^u#eqgRf!3A}gQU*P^l`zz1Q>8gOniM;@<@YYAI! z6$}0`Bk6@VeH*sQ&`#?U1Oy>g6tSxM+J2;FP^esw`nLO64_U7eEJ_Bk6FdywxD35s zkaK~(dY!bN1{(Ds>e`(XF&r*1LK~F^-1LKoIkjh0Lx$(X=79}N=AJtVy)&}EZO*uZ z=dbrjHL$1eg(>_P%}pg}{M*8$Z@DXaiTgkv*m#UsdsUPhmE{7=O4Fo{n}@gEKc)@g z>V}7%VX8pvi!T;u&L4~uhD;vXS|qr?+g=NE+41+^VM*}3oNpf?>dwf!PA3X?l}Wnw z!_r6N1D@Jjcx1-EZ8Do<_csr1kEt~r4=m%*+rpx&J_C@mvjqzVC(^;x&6;h0o{!ej zA4`VU%z1ajd&!v*vk~{)NaXeFP3w0a+B$vM{qLckOCap744mX*mB6@r|HCJ$X&~E+ z{J{2Oc?XefHVZ2}_ey4fn6tVOoUWg&IwfRM1$!+OILXdoK3VICQZ8J6@}h!Ot1blJ;K{m?-<>^ZVluT@!XcXE*Opumz0k8Q8M< zT`ybD&)=cr3z&Xp67yvjhg*;NfFH{{@S|v$yqN#8`YcU-Lhp?T{Jq9@wKqfsW6G|y zDEEx$Z#`#x;siqk!jz_upi5#lBgHu&eL-($V~1k}c2dQ$F= zSHaYZuo7J2+d;El&}{lgyxd?YONP&-2cLdD9CTDj;+{N|SPUU4efJUe;z&GF5=({$ zdBYQjRKCIW2t#p!FwTgugvFcTjHDOpZ*d1zc<7oJpJx|!c z8w5jj=ZrJsU#|YpH8Vtzw+%F=13yj$G5u73=^m^e5M}!Xhx=*c85t6ELa%X{PWbFo zdLht9ve(%saQtw`yTVkIB3!PYlAb3i(m3S=pVHCL0(@4?Ky18pXhK~ijB*?su=^qn zpa=YY&1Ww+9^|U|eG`Ezx>zxMvt)#RxGQp7=0PO0{;$HxNIJf-Y#=m+=T@?;MaocA zg4pkUfpf@((93oji^BHokO;yrVYP|BAFO}mc6Ms38H~jZle$@~xX_86hHk;AeJf9Mo_AGjVB5AQ1QMh?3EsSP4e zznq?VaHoq2ACemJ$4BZfZt=hS_>=4?@49{O;Y6bm*|YadrA%kfKIVX;!oQ`9|MOS7 zR|$)czdh_70IPVYH+{1HEbt{J5n%ErPCf{YX(t$GMkq4eEor8jSlH}UgRAb|c@{+e zPGfz1e(o-Pet@gHLkh;1jRU7*H$6Z8c_*7B3y|p$EYvK*b^^$LVnx5lMGy5lNsP8& z?TCT5U=&PGi}yJaeN(Cu`F|Xp^+Qwd-^S0z=o%ZHqem&-DvSZ6L%O6J32DI%7>!6b zNOuboqK@(dNQ;1!fYP8Ks9^2k`}_yzhx?p!-|zdnUaxP*2M>fu08}EK;ORMXzFIdw zrFpa6M5~Up;#9Qs+&2cg`v7Lx=H=d38R%VKN4tdPGUqkGE(T zDSg5(aNKY_Ek9wp8cuSQ&?|MC&;^gzvFS7uVb^Ld2-FnzYDnNc5~$ei&|T&>jKZ>g zD(UhO2^G?_swx%HE=)({O0|r@O(Heqku7SmVl>2iBK{) zojIz5$%K4^mA?E{xjfzeuc}M^LKR2ydFh!y{duYelx>S8=j*Flhq#|V&%b^p-ob&W z6deuo+5w|?2(B2xqHw+xGF2-8 zOd^isOOq1HUQ$<{xy4X9OnJwbRj7z9J}H(--a4iX>|3oQT*_(<8+0hZE+^NiM=t7^ zJi$^aBP-(BBlp8Fu$pQuys`C8Tv{j^AD2<~AAm_It0QPTz=)(mmAWBP1Y^=MHqlHZ z^gEvcbx9p}W5*k-MAGg>b`7nr6>m^$BAKXI`yiEyct@hQXihbYwJENKMW}d=a_V+C zkj%-Ym&0xU$XeWJ5{AtMdXPmi+|)7*u@29-8eiPUz3%*dW8iE;<*U)sZCewtIi2xA zyp{XshOT|K&AD!kTjeKp7elf)B0WTp%kuVO#O|`}@t#V)VH4YFeZ%$ekJQ-V3U$jf zi;^o1hKI8Z1k@R4BT2~8 ziJYOtQ~w^6hnnz`sV`+?b)qrc z0XT3sJ2h^<&!_-kAMkjO*O1<)B@i-RqXCl+7c}~Vj8Z_^e&_FhDyM_gcm51#S)x@; zDtug%K_%WJrxB$t=&?QYhh~NYjja}j!$yt?Ws`#4Y7!H0xREMmjM_~_3thK#7~xTM z=g!}2#`~RrM7BE&9Q%UN^SjKW4DzyG$m`=pZtH(9{l=-VQ5p>Q3@1;4lZzWzE)$+( z#mYD`$#Of{zBOZUgdth@f;wvSD?$;PNb~%zjMbYcD6%b!^6>2Az6c{MTL($^lLv z^DT*%8)N@@F!0E?hZx!EGGOD-z(7ZO=m0WTFD&()BZRqm0k8n0I4A|ku^3+=DrUOn_w+bPvG-KXKv_h z1ed{aBQQ@0?)*kj%Z-6n1ERB|;JV^Ok#81Oq?A)gI=f-gO*!+4{3VF@qMU@w%viCR zkso*-mKEDz%1;Z}({+cn*g4=I57O|+xR_27YdB>}zeEYEemYP*Y$wp*5oi`GK<1O( zx#}x4rM%cr25XpR08<|`)7*Ex%0K6VG2-L5JWLJJtzg;Q9U~f<^9D)x7lc?_#B1g`>iW$cGKcRL+jl%febs`w3bswRkMyh3ljd7&L-2%#1YTwBM0BuvV0utF6&}EG|d2p_f zc<-SxSq31PKGJB#<#Me!pUql!#DcnHQZz4ci(o1OAk;3RvwRAWFd8=ttNChD#Ke+h z&;llIfW14`RTN3MM#K(h%No z^mW#Zsbu=YG?no{n*dW~;`uhsBu}B~GcxEpSg&aUK3HCZ9ZQD(7Lww>1AL8#LS=U> z4nTX#Pf8^!6+Z4Nmfk_S7KMECf}}lPXtih&{N^RiWD~0_j~PxoihsBJi(b$s_)I%N zCFe1-9HY-aKh3LEavCl^m?#2uk|$O|nJfYxfIlzwXdnf%S=VSM+k8G@(%Oq&m*r z2+1wLX43iR@YX+qKD`Wa(BrPb*OWaQfv3zV0Q>A&a<*ztno3YF%H?lv{k}&UU8`*El_hfgITvMlS zBlD?V&knYZYNmNweiAfFA?aKR4q+JDZ8*nl|JQq&9W`Kfc}sOyCfO+eopQWzz65m` ztzB~IXKcv)Kg?os(1rAGPTs$_qfwLAFjcr_n=c}kGLj<%|9P!P?fyv)31Kb8mlpJy zW5Vvk=BGWfa=zy@zy*<(^Y6Y##IXhgfn*YA!qt9j>QmW9MAiX3E)u=1rLPi=)MqQFhcH2DOa9ShG~_0Y-|O$_Gt#SgAr_h+ z3k~i8G#k|nYnm4vfNLRBN&agZ!iDDM1(*K6oiweeJiwJZ@S^Nl12qRwvXz@ZaXrWS z`{6DV|%FA#F;!P{jYsY52 zb7Jq#fkblB==fIL=;o#oGNK*dz*r3(K?qdbbnUs!ea85R3g8a5kW#@^1)Jt<*|5m_2-ZSSFq8b?2FDN`lPILxjgG)c zpo+EvnZ2veu-B5c`(-k+p3EK@jAfz-NqW!43zy};} zpi2M(Eg+`+F}{3Docj}nlNpORKZ99`%+XuEQ=XJqAsG~+8h z*+iRhmt>9{(U>EzLFy$-hojs%$&j0^jwK8PbPErVu~c-6Tgwsp`qCNO&oC-!Gs0sE z;YAp|=SBZ3MQBAm?X(&<&L|#~Gac-9(!5w*yTxX*oKF-S0a20CwlH|UEcsQM_~$R* zb?Huv*k{UYf#+T`jm_NFD%n<#zh`KlwbRR|>1nwX{fVEi%3soyggKQPxdf=@P19%^ z^P!{FbwT@lC=By6r5db}q2TEz{C~v8g_T==f|eV1_mu4S*0UM4;LvnIj&i`l!9hR# z6X6zyB&iw|Tz&mq+G;DG8(ff__Zn~lg1K8q`WpuB0$L^cYUYq!Z@j)Kp6h;2j4R$t1aipfin=H^Gp#YC5iA{io5RbBVHFOv9(gKg6Fa&)Kx7aO zAv5wRR0AV$2^dR{d7FZk5?Ex7pcNBX7UvaOwQrB6b|@b4Lw{wn(O%{Z*mgtWSms{x zWA=AguiyW>mE`f?9kg%d1E)|Wuv)B~P?%x$vK`uus+zEtp6iIWdnDiv{;aw0p>B^4 zPWhyLvFa5%;#;%f_t;tIgOH)&h=;_k_Junt2?-!SYszv`TI`u%EWrO`!tYg}1p?%$ zsIKL>i`8Ae)odmLkGZ`*ZNjN=x!1)SL=?7;$_*uitFhJ>$rY`zSX`kmw+E}@WGg); z4W4{ridWrbiKN-n^0agkg+wp%c_e_@67bC5_cihEBBJ=Isah_unk!Km!K%DZ(lFvt zQPp9;-u0b*zO-J)28qw}yaso4I^qZHE44jY3@(^6MbUolBYuVu&U8qs5JX-FTO;^V zBx_@alL4rSME?U309Eby%Q~&)ij=a(7HL|o>kb6Y9HglB+_B-B{)q~95W?>;!eal2 zT?}sUYW3D_cPo%6H5LGhgwW{2ee|CdmKz@wE4A51MKA+~Dz#ol%u8L)BW1PLueUg2 z6CgD$4b*Ihnvr>k zw${6G_@@^Mtd;B3dv&*iil9GTS43kXwmC(mm4w4mTs(#BY4Jsr=Z{qIdX z+;vM*IhN*rm<;|jcSv<~J(u^F`3ZNeE-}oA&?>R9aA0EX!Up|1!swrfeYdFvSDL zPiwXAorMlw`xbw|!G8p`rd)Yo4{f_T`r0`!)*l zRC9SCzexWr*r%mt);k^<l~B}MC18c^sr7*GVQ3BV$udY1 zC{8n*)@sD;1BCd`ngbqF0z2!blndG(9=3kYA3nQW%U4j(eE+K+*v`CBeYa# zNS_~Vn9A;#;AkxIETn*yHd~>1$Xyp3<<%4R7j1%$HlT|x&5;hfA+f`P4lQB7XT4}N zoqd4AJ(MF-jGIZxsXV*c_GFue-p@cvC76(ePjx@!``4re@!Q>%bDz;+#Qw!mB5@#2 z+!EwSL_3UiPLfK3IraG7KUg=!x{4^KGlW zVTtFOW;WpwMfl?dOMquF%P6A7P0jK-G(TD%-ZQ#}4D|>L)nIr2*5vw8HtFh67YdGZ zdb-!|#B*-AUfGtseR5q;!6Y;z%@e_7>T;-FBTJ9xuXR)PE{eg+xZug-h|I!FzcEF> zcH{O+k4LGLvQ;cnOsgRWNrCBZ?15UUvXM#X*Q5$1jXhdjjp)OkB>1>{*mE#Jzn%HW zBF_y<$4iw{C$jZjuS-Ar(&yOF}2_60r_EXEw zL^w=q8Taa7_JQU3Kxen6nS!S5&m}H_*C{7x{BBLbxz^_@kQ^Z*G4?_9y3I3%I@1u| zht+9=XHob3^M0QtRiPz_{UhA$?sKe4+tr7^`2=O2{&!e0O;o*XpD14b7tD|d#XwHp z#@FsmXTIO)tI5ZXxi3x0{ww#Qu3(G$RR>omDJR^PB7M9%{(x5|{6nBPtl!V$o#y1+ zFz8Ba-v=`}CoMMetHnv0V^)hZEMBG02wR$^cQg0y&0?2l=9cIjZ0X#$qiIn{!Q1;f zjHU5LeMN0QgP-?36r)a{S8Hu+t8#(7*5Xo{_+I0KF6%*KhX;LFRI4JBJ@*hspivq@ zKN0X}m4U^;=Xpo%_oqs^pXoIJHX*ucW0bx52phN5tmaNQc_QIwS28QzX$?>dq3k&hn?}zX#~krjuD^znP!PM_n$F0fRy_Z8N6XiNf$ z-X7U%#b>>iMTj3)<#5g6k4l4W_)r5?ZN^z%rCF1Z#P-K)Wlv5vJ`0fFMZZ%}{_p_8 z>j;0&HIR5`U`r#DDQCQc%qi95&zn21*vt}tT)k<)TDA+{MZadd)u%AoL@!)@mG#yr zqz5|^5$!v@?v?dXHJiU@+5=Ju$5Ad9K4Mlu1xU@=_T}>aMgLh}C=_ky8OVEArQ5D1 zu`1nGkq9UfKL38OMYIj;?D@X$V*gpno?e@1PJYW|>))3D$VwCBK>Vnl2soS1q(T>{ zJEo|ynNcWKUYj!9Z<4AHAH%N9(7yAJK0ZPJ^#Agp;ssoR_=9*y4G&Yya8!>YXAm;$ z&2SpVxow8M@kZDq||MYQZ_9jpg87hP&Tn$$+m5{^O3)srH=u3o|w_V$3(0_*(V*5@0dvdUWC} zAv)^L!|pe#)pW>`gh)(lu5JpJ9$5BP@oOv1D^4a&3?_)gG%q_RN#@b$VVdJ>SG`5> z+x+yrJ?^Fw6-?^3V>j|nMeBi*thXos<;Jd!(|jnpXi0^6@NFZ6hS3;w-mXUdEuhjY zNgp7FcB%uTWMlJ)MJw+l#k^?_PfZya@r79p207W6x3TAjDtQ!&LD+IlQi>W(Yb(T2 z`?fmcSjsW?&V7WoC3psLmLof+dVzNt%Tln793Pd3x4d7p4V*GxvX3}|u|m}M^<>fj>@Qja z%)#ivEqqW(vPIm6Dr<#OAz$?ydP|>>ievN%`0YKXbZd7axb|E@&+w5Ma7$%+T%(`J zXmudW2I>t&$p49682R$*-D#(=N9EM>B92bi=>WkuI_-sh*e@$bZG&{S#~uF9s;QZS z5f)XBa0I~*%!pZ~5qmVdMK0!xaQ4x7Kt@%`QCb zx2=EP$IjP>l^UnUSl>#R{GUOngKza}?`3WOZ7ya^zhVRFuk29l6RMPqLWi%#I5=m? zY~;q2TsOiD-pPHjQf)crJvt)Sugz`$ksO=}x2oW`cZ}n1p2dNQjGF+3 z8V*EZ43I%%XoH`ruU|9pL1zbc1A|MOG+B~Y$Jh}&K++y1n$M?XFsj+TI{pG^@5qLv z3!d8~JzqOli3x0#EOQzEO~;2~VHfZarr|p*|55nfgpyY<7*0-uTC>|)c1d=5kH9Qy;opE%CocYZ^`{z8swwNa)SLym8i&OWUC z#JUfu#Na5SBRH3K>0-4FIu64rI`E&xe-3e9yB>18J_||}j+e6TL%5~N*^C3OEs_Wj ztz--(dj>$kU7qcZh^0%CgwaxY8cOG^Kc@qinpX%2^`d$Em{G&Ih;m~5^S)AAgUVY# zy+3bzWGRbqL&mZQ{vO5PmhQ1;uO~b9bEuJO(jhC~P(1DDP==-{S^rPH`wQgP33+bQ zfGia}p*@vGhLx40FWaZpH3=;BDKdbs`&jjEHmO{_`sd!KHwd~$=udFF#b9av=g*$H zin`t=b-uyRjMwK_*FjN#!~A-$mC2;CuVYeVn%jC|;oA2r zC5T)yBmgEWxXZO)UIyk{(d{ZIj@Ft-q}c81;rn3z+*yG%9c3zk^E25{kno4#B4{(f7!|YT&#O(U zW0bA*Yx6Y?^rt0L{a zbR?~&*|2B^lYLhsgcmMD-Dx%&E!+8z)5|5ek9CqRzjsvbOQ6$yeDPrn#hCLZSid~( z#{M8I&ohr!za4-u;sEMdb!{t0ve_S6^hrz6Nt6Ej+bGd&8s@de5agsUKgC_`&qXIfyhn~Qi4_kKBj(Wc9U?- z`+Z|m8FlvR7O|KvT*n6{&L(dmo7)uR9IB$dLe<5jcPsH&>qM{cK?o_Hj#Syd3S;zJ zNM+2fF@n}_LqWuSxGqPYc}84eC5A^^g8)tAM|Z zAz{3{OICv2e1RuC6{K)VDE-j|P)WwnPNs6et=wNx##CriSKA!8Hw^KmZCo3f%g?0)SEx=uNQB7`QWWL~0%OfkoN{BkETInHx6uh}M`ZE&Z0; zGw^|S0f1bCx~`QnO!Z=~-475i=v)En?UrI&Dt|Df$DOAm5Ok`3hyRz=w z4Hrk5RMPtZVwWAu1?% z1~3mGwQesTY6fuvq)7xC)eOXwt)6@dS9RW zxOf4|JK{C+ilnO~g_^XI=C{A#^4B9mq6jBx(j@dXMdf8^g0x!vMh;Z?at3jF6DKW5 zD&nIFZbkqZyzbh)HUaQ35|FyM^ecZvrLM}MFk|as2WxXkSJl@W8D6(tPVr<^AANwL zfK)y`NOv6M1&-?X>2=^c1s)^C8gGLAb(|X@dZ7>AvKzlIG;~`r1E89rd6f2f_X&OK z;ax_O12bBT>=;ce8NePGXaT0}YfyyF@SeIA_G4Bc<=NaB0CN_P74={!-R0$&gVpCcp?(TMFJYw;3_ya{3=!L~Ls zUb$+Hnc#!ct6258`<^5PkA$<1^8PS!N$3zXsZ8Rm#0$0jb<~uiKydD%O}*(4#GTeH z_(0-=cInMPq_i{@K;?0R!`9&MG?+J_L-9>ADYHL-oF@z1-msGv>kbn0AMK~BC#MH* zO}yRwLXrgru<8&Ly*_XnDaBaLAP2+M&zq7*nSM3<_8)L9CeuUgQ!w+-|9m6G_8}uQ zs7i=*6Viz$Ki$9Skq9*6De5J!$SS!bC@?T1saQ0>bCoUU6C-9vO*QJ@h~tIZ?E1yLIn#P^~ZBxsQWs2F(!#eo|W+2maYSOD;L1vV(6q^9EBRSV6&{($W_Yug%T~&rk zYHl?U^Vrt>Hu;*L)4Vn!sT@S-2+$zz8^%J>r<_mPm5aZuQ!K1=Z{`e9fvvZZCeHsn z?Aez26wVNmX5NG}cL}l0E5iZ-EGr?sSvY6HmG_Z2fbh&j&o607-Q)mBjd38@ z*-i3o7@IStSRl&26VJVnbtt1i_7$xGGCt5y@6kYW>9_v5FyWOmy%L7=2!5uCrI0sM zaX01lMcg$R1~RgQ^{01?hmG0z47=l~DF@qw$wYh@TkIY{Q>%V%P|KzBshDEhFto9) z84I#XLL@Fyx-KEKF-)8sRn)5AX?Lc;9oNvQK+3{l2L2}Z93j2pXS5uZ?1CDm*0XAy z5F29xq&`EAwA%}(A(b#@Td|`yVom`!mpWyPsC{gE(Cu&%;(j=9!4*sU>da)jJFv`5 zg&9XQ(GE6ab3W70<*n~lgkl}@CUNE_8bCtZm2`_V*SD(_l0xwqDyBH3##TMMfu(;s zLIX)@^dFcMp?uFk_m-ez--3J+aMR?|y^3aYjf(l9Ktvv+T)Q-5nhceUBmn7jzdJ7g zJhA&K_mRdx%f#C_B#uJVFDXx+<4EK6b{0B~->W;+r|*aHVkd|s1gn$v9)B8e%Z^bF z46GZvY8j$Hln)dhskwVNJNke1ZR0c3*fPIm=0_fD`gK~_F;I|>;IuJ9;a|rb@!d6A zjyH+mR;b}-8EQox3qAfJ9`r-tVpGJ$-!ta9BGo1)D8XMtUBg6U@X>R(T=xJrl#yi^ zai)LqxHb<;Kj9S?hlLt%>Q+Ao!I=eLB?9_@zxKO%hp_PEp70|L`d_=ELW`NzrYdBc zAPNf^_DvL}qevL4Z$HPdsdKhd;b9NU11>dpS_C7p=^i!UMUNuy@A0J^f-U|;hv3X9 z5u{kPM}>yb&se%H9HS}yqLuPH7g_u%w?N>~1N~UqjU@r>mu5vqAbhSqh-LF3%fw0l z2vvXB4-~aN|C`unVV-(%F8^r+p9e(W+YYsv4(|~U?VyYnOAd`0rS0YitS;pd`Mlm= zu_lU%A>oPSvDvcpAm+`or1hQ~Z5L6AsUY;E}{PB9*qAQ}RJ%kl^+G0cyRZR#n z>sh4Sj(@Sv0bzfKVQ*-rBo!IO2V=FJlbqZqIUWC2Qm6S;C7p~xI0Rleb+*p6jmR`o$`6UikLb&f?zlQlX2GN~A?$=~ZEcQc+DrQA1z8kAGg1QgL@gabI8Y%d6t4X-#j2 zlJUNhsjHGXrPB9TmcN7|m##{;l*)D@$`07dTK-c$QhNG5;^|f2)4$gFdqzY&F`}HZ zznm8PtDK>q^fy^PyuX6$R|T(frQol}DQ$(<991dhD!IriC1s5ZqeEroYR$-Mo&IWr ze*MHlP^&1Q{Gr7FHMit1f0GE9I+bTz>_Ykn%;b z2A~A_I@YEBYN$|dWFR#^@64#NDHU#|(jmdxl-Q^>UXu40@m}Zww~rd9el^dn7<-4P zEGV`N7D8L!m~j!r!Guf(x7LpFR=rvm+m)8TzuG`5yuOvI)inXW_-LDF4y5C`a zl(LbC9}zp`euBkafhs*A4}1JH3depz?y89K&>I;7;U0TI3_HE>*n2!R!0c?O(qd!8 z!~TXB{SRyl?{jn)i;LOI#@=)8wXQS@Bpry~<>gcu@X7eEYp(ypiCPBCVRnM>ysutsn zxINH$LMFnyeO_YoCb5z2iX`U7ewPN7KN9HxPN`|$gHl$Op7!|{{~^A@ZpLC+Io@X;WBC*O^jRLg8vVl-5{LAKd*lWCF-@f=b< z`CI^#vF1J^5quSzpbBsYbF}@0uCw@R0MT<9e$Ec4JS&$7u$F5BU*RxyR;8iblbn> zdP_-?3|}Ccg?(2IH{m-U_~S$@zD-f0@R5>S>y+Ek|Mp^Te{{rve9Hwc$|F36Y$sp7 zuUb1{Ex!e#-y;=V%M`#$X9Vr1mUU)u+vYqG%&H1fqj=K(9}F=ADHHr!=5-3&1hL}G z1v@6#Vt1KbHr@USI(jZ_jk_dCNN1?*|NZwB^tycZ<-492h!mqvO$w0yz$)iBxuYaoHVKFOL_97-G2pET{r}1ASGhI``mXh>KSm?!LT1Da<1qb z!OlE_q*9y|AcvV~i!wpqY_|8}tdo|5la zIlf+>cQrc4D17{3NHzKo6l+``1EFT80T30*#(6NX@n*Xol8+8#C7m?48IwXmBVA9S zR<52zNAAi=5wta)%W8mgrIe|iER?u6Por56U_g9sD?r0uZN7m7jfAC50lk_KQ9Pp@ zl)|I#Rs_1zs5MNal4jrZeBNT)8+6e6r#L_zDMn|a*u^jrh{_gzv9A`$_rM*Dqka^O zL{!D4fGleD4?DM4vKzQICJ*FqPCdQuoaWE5ldxh#*OhN>Zt}f-!Q?i)R;%Jk9Xe6c&tHQ!LE4hIhz#+`lvo6e5u46lNJllyB)!9+9J5HiUVfR6wXW) z2u44;4{z-7Fhh(}JhMZRQv&<_F{ecCM--KJuin=^MTi|M{eEs(f6m;8 zf`qWJ1sl&VAmbGWN_-X}lFVA2=do0z#T@Yw>-YbvyqFq-7bxXV+&A^}kVw}!wfHf& ze1}Jr?gh^2I_`z;Wy$XNyh+b$VA~1L2Z*+gRHl**7R*Mwws^Us?lV_wXy*AsaG;6| zSC|K7hcT1`d=Vk=NavgOiY|rHg_@~pBleALt`zMd^FxgaOA{lnvJ~&e#?}e%rq)+f zKFyt-)x+Q?^92VwfzuJDr7M9R7A-wl1xISg(7-0=zYM0COrK)V1j;*5bqR)HaJdJP zU(^elO>_&EAgMQKD6YHSd1cjWuwCvpe|bgiKk#i@&;R9*jV4iEi)F{_EUsZFAJ!q# z+|@%JzuQ;z>d&tuW;cj=mk2`in&L^%XwM5)60O zSxEo4Mg3q>dPe`jl>EoE2h*$}F*Ta~RGjd<4|LVYp%-T~^TnFvg&B0IN+a%`5Gjkf z$7Byww_{izBSW;vNoKoEkbBHhF<7w%&O;ONN6imb@4u!ETML>o2wT?+iBZ_7g?)BJ zx&N_asFKQr1VsIK=|1{Vro)L8FSXMWrWH+6eyOG(cQX5tmE<}tz)ml##KC6o-BrzG zZaBNN<}7QYiO!ikxbNl@J-;IkuW`_f{xJ3M>nkE%)aelYM<)%a2RZ~T?1wFbj!Sm` zD^T~%qs!(FCnF$QN;z=9J|IeQszi*12G8$q%49vLW{it~bv22bJs|@TojymO$Rj7O zM|S+02zuy}dnb1J2JfM$?qa70%fFMEh!LN15*~^{3f+L%p%-~Tb3%66-zSLDhi^&r z0Th%k0Ks%VLkX!Q&+mI8h`pybb_6Jh6k0*!D8b1Mx|ewieWX#4IT8%mkxOrq&Xzkc z6^z!VU@mC0V(ow&z=nn^A(H%o-`Ff`>rsjLfK*#Xu9mfJ&B9H|M~vcCY%@u3WE%q? z-zzG6dOfct6WC0?9=HOf&y-7MGqp6{Ceg3QzDi?7^0KNXa}1JUwUy>G9~qI1e^DmO zVu6iB0SGlPoth3GAEoId7orX`$QVg9c4q;;E)eNp+tt!<7=Olqc{*sdOiP$Jp!>KI+;E@h=SFqYjBiQaYBDbY^Za-6a z+&)VlnQg)@kcZV@pb{-D!Ckf zb0V;$KcjzY%@a*G5;fa(uSVX2N6)#1k8IXmhf`Z5gT^seiorvjY|QXMQ5vG*7_R+d zb0&6tHsObFgI?}XLctrxlA9-w1zp+Sg$^>-v9>fAiFjh;%lhJhSv(~}iu^*F)lelR z0;1+IB+&jn7?G!Ts6o6BTX1Cl?rqMWqyTrW7rFrlD6J0BT&94Y_%q<{Xp%8?Jh-&e zHPXpNhrDHsslTkcT5CI(_EH%raz_`r{%LTc_sO_XP2KT&aLXdwSv650yCa9GjEOq~ z_m=?&V9BirBpVTMnSBC;9@*lh?U})&2!Kcx0g^{Lc!?lcesM=X5Hs}6jvN7KdCX@a z)nq*#$=t;@7vrV(Tj-i{+M67W15+6T*W^a|I~jfqKC)0g*-d~%5(h4zhNDiIa%4Nu zpKi z$lD3lf~_5oN9P@DX*x5m^OH}a)4=e{y8)7eTfT+!pLmFfF^y?S1nt;7hhASAmjAhA zP%|M`+$Z9#%|G>@6XDLa)#06v2SdEKb^!{bh$&w~-Sk2fWGHh9LHc(((kV-mPN8Oc zy6^mMK|YRt=Ce<{-?NH%OE-YRN^zeP0PExK^&AY6&8O%TsGB?QW)nyW4?PTTqy}R3pYq&m2Nm`Z)$aD#6as1l1`f*WSU!8B?r)kxl zU^v}=i`lfNyN55PS^~qJ%IKab*f>3+(A+#R6+*p+s((e*!UOY)qjB8AQa@2JqiezqSCe7mUn$SR)DIm>UOW?spFWG4 zx=_>3e!90o_Nw1<_oQP?n7IMOlP(+am`SgI{$E3b9XY#s4Et!=k8U zJeD|d$CR+}Dw;=PaRP*M+Id|F|K1P#gJR%0*Pqi=?4Qp@Z%+;GKxg6F7wy5+m;RyF zWF_rm&DtGDAN0n5y5OZ6$?1Ml5&@bFpB-%+spqx7m1)m13Y5Sp@YOFx zyD;7RCWcZK*ugU_1$IA%ha#4@fP;zxekjaIhk;u!U_&)x&`vRyTWExdC--~|pJ$u` zF)2>Tib-G$CdA5#RD=)z7e;s&t8o@<5o5F;#w%AJXRwbqqKFqCj1$|6BY^PIyav89 zG2eyVf7UUPm|4nFzUKC}QtgvAxL;9%F&u-%``WA{n(YOj2VwyCJ-1ed5Eh z#8-6*Y+G@8#=dBEirg^9V_|rJA|qZh$#F2r*@-gJF$v8O?jmfQ6~dT>VRQ>qwmwTT zcSWTQbjDUTVWxZF-ek{ z&RuYLpcWR$hXFnDsm@Mhw6no-FwcNDlHp7|NE}ej56pJNR1L*fT=V6OQ+tTv@Zeq; z)?60s2++1ahHPosP%xp}ftfM>iG9ZIST2$PKo^esZsv}|nViY$m@u>NCKkoZnQYI}6&TXq zb-<<1Nd7^%z1_)3Pcyrh40ybBB(GgFa%{gaVTx>89Xa=$@}-tosDyCYzrvi0EqKTs zb4b@&;Pem>Qjt2p>Sn)H3#h0G?#E$N+7*Z;$Y&nY(a6Q3puMe^g=-gk?zt zD}Km*jLPN|(Q!Yua12R-gR(v4^1Hrg#%oeMm%+1n6(lAXct}NQ5m6Z&3K-p`BuGq9 zb)c(8N0!)NveF21#WA}pbO zI&&Jv)4{owB9c!iO)|EN+eCtX){@^nVD8p|n&_BETyeE81{p;#{z zvs~+UjY08M$&K}?Hc&Jac=D^hnX=(Yf7Ow?B1keL@-*aObsbq|;XfyEQ56X)zW%H* zNJa|nEnf<8C5yczDY3|WKQ0v~7${#W=I)rNe%QSl&(FiaV;8b<HEdR1F-+OW_kcQ^_o4UtTx?)}j8l3Aoz z@RAGq0YxZg2orquc$+zsZ9v*K{ozGBTIPkZp7uRvJS1S(zPd6JtYlJ@18ghBVwrMHwoqc_5RKDq@4S$bxL2!0yzVgrjPm<*eRbj zmb`{nJbu%bH~b-w;XeM6dkG^~evm)Ao{c{AX_3Aq>usi(is7DK-?WvATHIFT&P4SJ5`6!Nx6VK4RFN{lVZ~gZ$DNhwJW~mvvMAxJh)fY27 z`xIbZg_nRh6^Xr!g}@r4`t5W3pV_^XD3ms`t>c#IrHpY1W*m`~QtO}egA8LkuY*C> zBq5`|j8^mA6KM?15uvxvXURft1e>K#t5IGhXo0lys*MT?@ndV!4r((yo{+YA-M+4=Q@|Th>y206^-%-Jr4Lqt)uCAzv-;BXI z0buIsiqo44kLSqL=QN#EIM?1|1AaBfJrjJiFeRQ@yooou@|pLiU3#53-yXjBEBl>J z^o&@?qV&3_Fe30N`_u$v?l()FaG*pqQNUoC`lXBb0@xlJI6ovkI5E4&Y+g76I+@W6 z`XF^CcbqnB$lH!RekZje_7M($c0O=#U3#<6C{lbxZ5U=v@@QCl>=Oir-Apv<=306& zwd$j=lw5QDU)H^wt9ewQ$^UmnCpLQ*{vrHfk)#vi!PV5`7R{%2>rzq?_~yQT)wEyY z>==83*NM(+-=Usl1`@M~{aY)#Cyc{kgOJQ(=+(`c;+o^qweD3$626t$gO!8TH%$W{ zSV1$=Qkz-tx?Vosq-+g+jr|+(*;hO6L@tbW9YmM*O)08P72c;buXy3q*XO4wn@>7A zTLBf8YwDx)Felkue?B!+LM)R%b=DxpMb&tV z(d|=u#4+@acc>JDIn{yIk)qN+c_r=EP4oLZuik7TqV7masm&~@A7j&&E?)lk_@O1r z5PIuwgnAhRUl{{Gc(>!CiX?M+VZHQXkC`?gCEI?CJIc5x?Lz?tViRP}_~oq;A73q( z;k~~%DeHEBO6Z}byo6=}Dn|g)9>5+yaGztpZpEa?;Wed6#IW}3>`#l9_YdnHxmcGy zLY!?#+c3=JN2&`S$#`IIyWid|*^uZKgh*$&UJ!(sfe`A(zZivVSfBfa+$BlB~*?ijU zgTF5iij=laUk!a|J(2M+PnB1)N!#Uu08f9FD<;!x=}+)?NkZ+)TTq+^pgZV z3}yJaWwPSSE11jr;7;cL#k4v(aht5Qf@pZ5dB+iSFP?{V>v_bf{LcjX65WlRtVuC4v=i$BNvMqk9Uak__W9+K}RHkB`9rQ}G>Q(=#jU#($Z&O=pnAev!c* zT}r^Sm1@71eGa>)UHavGi{`>o@S=d|e3AI%G9mtg1iPU(qZ{Y%re#w7l>Is=cqI`8 z)12Clhi}Erd~bdP_XR2dW57t~N6eEG+pE3Zmb3huB|a;R*jw3IHzlNb$v=mF-T(Nd z?9sfXmFF8j-_l$iD=9rMyL>zI$G7WJ`S)g9*)O%WRjMaPtPC+mcP{0` z3@WbVN=0k;gU{YSg16c5ggxxq{5v{Ge4as*o4y{zl^8DZ^H`eqw@judNb_gU>vw(F zm2e1Dcp1-!$siR3@BkU3tJN$Tg-5d+;wd%>=rnp>-4Uy~PudwYk_nwAnWLC|jdeP) z{F~<>Qf!<}gQtsIehQtHP`zS6WlajnWSXGuVzafLycn6#`XcMfsyHh9y3ba6>!HN}kDef9vDqQZp@4T6v%zoI}B)j|RoSfg^ z>DPk4<6N1$0q8}o?~|T<4lSr~_&P0&9haxUp0k(9-h)Gq;k-Yxndif!vUS*kCp!+@ z_x_l7UUj0R_^}TQlX4!(17wljfY4G0rn+hEHmCVM*C|^zvbW_I)qleLHMJ1ORyroz zK|`GdpQex{-%{D7?YcPCSCgl@@l2EN^OUcaK-aP{gmuvULH`j4i1 z)fCL0_fw3m_MS4Tb`p(>F=gBBi@c$6?IWkQJS=BSuR&qZVCCJeBoXi`A}rlQ+eHGV zK#NZN5|AuZB>no%s5>2?v)hSwR7R<$@v)~#qC%AhNF+;?_JB-DuZh%H3l_;)jp6oW zoSZ-;iMC^kae$dqj{lXJOG#RQ`Be`aDZ41C;&XO!xcz5l71D`wuD?PTE=%Z(@cYWX zJeT+;CUUrQbV>n{+e7!7O$~@7W7XIZr!2;mRZ5c95A-E3!hOA;VVLeMC#t&W z{h4wm(viMu&J%CgpN%b8r&8HUl4cJ;7|3&F>Shse`!drZJ=iJRz4>-KwI=V?y4X=S zbjv>_h7_r9P)!aXfd5GoN3pQ(K8yTAhaVM_JW|#9{Iv*qQ35q$|9S<@)-?G7RpaI2 zqRrVQTGZ(4n_-*BHf^ew!j(V1PAjbHa*SrvMOme`$`Nmtog5gKB?{A!BN>fqX`TC7 zGeUg_dB6Pe{mDLSR_4)C`?&ZO^@l*Aq9GOZnEdmz-vjy05P)C}T=5I@)3up!Q>xs*CRrFf9|kVIowU z>t^i@++EK#83}!RwHSE+_GTjk@h?L{Fr_13q2O+;RGU#_;G@8#Gw7VEuNWrp$Tt2%_6CnH=u5DpDf$$lzKHC_m=p=Vd84KAB{w=5 zH~f?1-|-xkL1&S;9tcbOB>HamT8Rl_fKpoTC;12I@<&x3Iz~W9un1X#qYvCe zeVszOfp!AM8UzMhNvI5^-FT<`-gJKU_f`)H@sovschn!vsl@pa0*V}&}q=BM(QeYj)*~qXvS^j{rmkB-Aza6f}vtR zBDS_v0#dj7qC<);!&24Oo+o>pgKA_yUi8(8GW4-pgKUz-X6&IOO6G-&Qp3RKS8V13 z2@vEUdiQyu1G~G~aEM7`!gTSD5zA;M*Yh|&KER`w>d_^f>mMphhiKZY0!=0Ko`XmULJ`ae}4})MGAeh zaA?&V>Ynr*FhmPbD8`C9WF=E;ol3$OW)ZD10BD*u-_JFF*mj4$`23+CO*Qt#&4bvT znq{U@^+oGsnV0`Zi_bC8FU)v^8>5YLpaMXM@0Xbb?$6SV`M&|7s?q9SY4(NWiR;+4cFO&gT{;v zIhH>Oajt*B0b~-Xo%`5F3V?=2cQ6*`=ZO~`^w%w3q;KM+rr)W3+e*{Rm zcZvh}Xs(dJzjiRuY-Yme2oEK&tZlg8ngx4;XQ|aM3krwqD$^#83IvCTy{Kh}bUs_P z+&`bhcb1#?eCa-qgz~n2-hIRzU#LNm0PvE`iZFF{gUTj6^6ruq2Py3_FiR3ELc06( zWEn`}eQ;cq{yks#s!SUbju&Z>4eqE@P#>U%h{+e>SKYV1JhFU&=x196T#vN$?Jl-| zCPn@*R8t2&N<>;cmt~Lr$J%v$4hK@%YB+tiU!=t%ai<0enl%05V!@*unoEUyChDWl zM7$3DLN`+?Lbv!4!Gl&;tPIA%TxB(8O=yRKpF{Ct~dc;7htWiREZHi?ZWR*a`>LE zV0%@BAJ&-PZp4OMmi-959Y*|jQNgJ7H#v0Y{ULw4kjznapvJJ(`g}a;=ISuwpZe9a z-*n;a@3{oSOMnOrSXO2}zZob7WI5Fj6p z>LBa-7%$xxT+}!g!C`@P>hCkrZP#T&q+e7xm*^RLHOwsywF)@d8#-mel`@> zqjntI&Yfgg#!zMTIAx7o<+LC`fkh8m9;h?b!>#>QM;S<`RR#Gf3D}j)zfsl+#b=RM zu_A%vF{yxDdNbrz$e0?^>mo_z<$(aDDf!-eC4}}@jF!AAA5=nK1y@8>!SNeTq6+Ju z9{HYh+dn8AfC8~u{ud$O9jmw`U#Wg*iQeIlY{g!?pY;~B62R7`1e&jU+G29@z2lQ# z^cq#V6jh$^LFK#w+gg3;TtD>a)HMI7As?xSkx9$l0LkjYOg9o9+}4NW1Vji(kL^1* zwNuA4MdBjW(XufD@<5Em!-Pv%und9XSQx1b;9;Yv3lIE*uV|{0;s+oL`cYU1PWAx2 zlMQ3sRnFv6C#xHPVEa>R&;qt$FR7Y0@4a6mK!Hd zGWA)a0IXY@d{F>)-H`4rQq@`2M1=Sm(G-a6~H;$1XnH`6bl4*MtYE$AK~NFh)BVhg%FA zrwP3X{5zfc)x_q(3pWP6dW&!3Z)}=2jX*7$^#Aypy)-i>CdDFfu5F)J&5H&z0icqVJavt2bKOxE`SS0 zko0o=!38ZunxcvHVyw`d>hsv2NOpOA5-MHZsBi-4C_!d8nrc?Sb0MY|m4#q8OHsim zbTJp!K^J|T&=)cn)(2gn$F*+6X|7&n>JZlG}EJ1p?ZWaFTV1}XcbNh z!~@8Q%+#&WsF>RyXf7x14$ zLn7#szO5y64#2i+*vAenM>LsJyfyD+w`57PjH_HIm$NLQ*BvAOHFUWsfNR-9Khj(F ztNF-kg?^45sz~l{5y`69vd% zpUB+8Kg_d+&RG|zTUT2x|CeSx`4N!A4jmP@l3}+xE7Lz9iaO0hSf6{M4%rRo=+QS# z3%9s0u9_D1x2$&>7qEY=AYQf-{HyoNo0ic?TWF$fzWn%JJo0bULVNGR-7i2KH0-V& zS-EdL*#t-&#)os*kR0PblCUDmM*)rv`Cp=_k0%I(iY7j;EPq=e&tIn4wyFMW6Zh4Q zW!R4TpDno7hAaSK%lY3rZCL~syq211KhI8}EwzB%1W@QZ;pe0{)*byE?IaVID1H2Sou$q{2yVmX~v$RHignyeKWbd_oy2#g)WgK6Fy~@$vQN-!JJK=DM>#|z9k0;3Z|8+< zQD+y!P{0_PYGa2VHAX+e;erx^>cL%5uE#nL`y5>3=&=oZ&q%=$i(D#aD3^1z)DGDe z8sU6AjE~w5NA9>ep**j2mi!$SkA}y8ZDLC!!fl-`Rq>^vqqw^GLFqf;h0ZH}J4uxh zSdZ;+sBL7xhG2A9^v%xlp;PqD_S&PJX#Jf?uN`|Y*Nj?S{pF48JXB@^GV2P>+P{m2 z?VYLMdsyRN^aA4KSD^eTZUC@U)y*Bjff5%OOVyo=uCrg^bIFm~FNK7a5l5A8qjQP3 z@40hahii@=#i*6aR`(U71NYGjjBVo&Yi;gd*7~f7Nd`%$2{V8 z4>3-o6CCC})?V8j!;JrQ(t^C!`3Nr9J>$ND4}W;I8ylyg_NcJNs-}@DP;h>E{r`}( zrYDyPdt<~=$8S&cnGhDYKhSFOuP&WlnO_axm816=(1$Z#(J0pnFDMmM&;81BG#?d4 zv48(1-6&J)ka{VBV(+;}`> z(&Ciyo1fk#m z!?O9~%fNiA*?q$?-to~ZBMF~>CO%?%=lzc1Sj+iT+w(QQ*PFP9 z*_EfMu=71~ZZ4)Rfvr=K0;oY0NMUCyXYMuoGCnH;pREtY-sjV(dW=T-#*H1N3HhD% zp6QSI620<42%hK&aYAJ!twgSM7@bk_jDF&J{>EzBM3_Ugi~n){>lMEJth(2!Q2+bt zkL=Q`=TDy<{2?bvC*Ln{ZORSHn5?~oiPXX=b2dat0GdT85c7pY?xE9J|&?~u-Y zm*w=A%YTr@j{|*dwBw%oq;g%0O2*h{;9D@FGk+ivk5Pfa1%bg|w!@;4gtp;=P@MlH z_xwgTo=L{M8NGgca?QPs_IE}*yf}j+{B&Pk396x8)X-tG*Z*Ay5}tT|gV;J{9HAJ! zoht&9-d~p;pZYutPNn=w#q=W0^mZ-P#q31K+&SF)Y8zJuV`S&IZ}7b+JO>_pP>H zy}P?39{MVkl|HO}3FPFOex}03$}tRjUXCpAaE-`x0nNtqx*knRa%0U+{iMhq0$K(2 zo-yIE!ABXo;f`Eq%o@@BG7DyVJ*;}sPf5i=FS-1-2L)+xNyJRy+g)*7qZtx8Af}9f zB?@8$#}b#~Xi5t2W9vo|MF>~GzEn%yS$Lmn4l~lbD8!#B(#FIjlV(4ej+oa$Hm=nd zze`^1#nUE~L7f-++vB@sI?LMa;(UeJboINngEWT9{#!%iVvop0X3LM6{%a-)Bqq9C z_2%MnOF8e~X%gRmE6%UhANNHtU zlrW2Pil&L^bH6 zG`U$70;x`1_4oGT2TC9F_guM3S+Z*y5JMu1HJ?WnX+Jhj8d@AV^zx^6YRvft%+Y1! z2LSUJ%oZHW@f14uT=CsDcVj611|}*A3AVkyo*L53eld(0GH5mAsfX7A-25ltIt|n@ z?Kz#i`$}zR`v(|Pg5P7`bsDOflmg8c>-!iZ=oIC*)yy*R5p=m`WNHDoj=!qiofm=jiu`E9PjZo z`8iH$&{aM@Q6cUrru0PaC$AET&47O=ty%l}C_Qs*!>_=Nyf4dd&VPMbLHrKh`$~&n zJIA7p!gNBY?~$+w(uhSmTv84FhpH4wBBQd}BPNfrmWPCL6bZdLDzOv7!luxx@Z6N) zPD$64ILfXhMtX+YiPmcn+*w8VGv&KJ6Jaz!!Z1}s-5Y-eX{`VqR6dO(N6eL zc}Z=EV#~9hyNi_wJ?FEup<4KPn#`-e+j#}VA?QIIhVOsQCvCp}z1}GJ-iW|S_b0hm z+82CSSjq$>biv@T2!#1X6ARy|(vF1xGlx@4cg5mH8tGZ%xPuLI9V&QlDaloTnC>Q`zrm{xDG6aYKp{&q&4Is*!kUEhb+2O@Q7Rh zgrzr{ygx`Xy68BBV_knbe86THKjIL{+573ND4IRNmnHH^YS`UgG-qLnLsHsE$0< z$Pd6p%O_s~mLGU5;@0~RtO1%-62hsxkpQD{z#}0CwN@+=43#g#4FbroD56N|n97Xl zFhK3Gsg_+^Af%4P7#))yR33$^-tG#d(Kn1OHjWbih*&pcJktcvF%`S!9nc!cBil%j zC3xdFp#HhRggN;Sh?;faPfR)^(ytDmiHi^$@*={k6qxYfG1my0k>#?L1o2}uJcP_5 zVJtw$huK${j43Zo;YSAPFo$~@0xhA{Mu0lT*s7s_5(4<_QLl`HN4pC=5m$-UI18AVDD#sz7h`L!1sOXyhL?>63 zgny9Hb7)n86G{v4Hc5nm(l>(dO#$R5QUex_b>!7-=F$*f*0*Io^|4d|-{A*f& zCoZyiU0jNBoDx>keS`$$g8Pg&Iim+EU&J?N{jfe#_ZSFD6m*sx{G{V?{}!D{fsnv_ z?ZBzzSA*Tz(mZDRnqJsI?)fM2$@5#FrbGqxKbNf^4_;;VvRH-qTP_Lge2mJmP#~wL z8^`iYObDidjylW+I{u&pX_VF%rgwX(j*Ne)avg_p*s{n2nZPfHW~+ zAd#X;ErDMRR5?dtLyTxzdh_={7*D2~o>`V!n$hU9JKL1oC)CesQ@;d0+6n&J{xP7f zJ#X6+X zOzL3<*WWjG-w|4`d&YEfRiVpYJbQ|g;3?Gd-j_7411m1L84U9D0L2Nhzj*i|q8&K6EF0>+ZewR0x3R*8HQcjWSe+D!_7 ztti!XGS;tB4U8jljlu9Azi`5-|3+D6#naj5%@hWMBggYqcNIvo85__UgY@)-)Dan3V=K2`o}ysio^ zCNk-{&3ZAGo6csU+>>RmVoD33npF+8i|~)cx>~7C*{Aq3(fKO>{maBcu%RJl{|9$a zV8qhGg^44KdcQo?uJqi3vYfgo*Q_j-Co6rh5};B5dao)%GZQ%*c#h84vb4Y z1>X;^sv@}7x!ja{aRJPVi((Amso@Qc3mS}ZBsR}sH*Ad-^n62QUGzUjTGKG%KS*j= zu_{@~!BIN(0~zy2p0cj+frum5-(TFAJqO4Hs7H4x`LZdRc7n85JBbO83qBfZIhN;&R)!%j?E|#MI2KjM=%|}mIiId6d2e~- zA$o7OHc8xy$>%o|{MPko?A82ASo5Q-7`F6Pw;07)6`AbF(^jg@jxHVbiYM1z01Macbzs_C+>@3vIFnRLviN%@AECHr!d zokMF0)u2Di_$$VLt8q+;~kE{2l_x5DF8Qyo^2v*&V<t*J+mL2X+rgn`RF1P>On1wvh{;R|0mpT2`28s749E|2dznVT7B?~xnLlG) zSLqSY@ElUErk&$aw5#xSmCH zNDa`wFs7>4R=xAO!a+t}3PU=D8KB+P2Mz5U1?3N?j4V z@bwi(mI^w9Jyk5dxl#F(W@dZ0$b9ojjYk}AK0VC=+?tu?RWv1P*n*A_*ry&?p%L%&5bx(qZOGZ zTze+?9_pH!+O`Dyha+bQk3!~c#xJ*~%Hf%o8vmJFqUvcAa`6(c>Y1o~sXP#@D z4z&8QvWrSeh3+)oiQLm|=tJ*Nc`rT_63B$XsbpUe@ruIQ^ot-|S_WqR{&i0*R^}r< znr*Hwnc;#b3F#Xc=n^9v&`#NeCO;hxW*@qARRw6P=bGS@x< z#9|AujMm4~cgviLKb^>j`PD36ZcFgo2GqW_XTmS4%k$+!jCZ~wTEy5yFe{-Jd zhVp?lgW_I7!4KPB+mzqk58V#aV?F|E&IDd%2W1@-f2sVl!0|VlMDX0#lj5x7sy^Y) z-aHeCLskKR3UPl*y4h1<`yNGxQ@UvaE=;rF7+SSJ7`a>gump(DwN~dc^&0!tvL*|bSe1c#q0MIxDstq z63-h(*F04$8dbX2H}U{Ma0RvB42jX7Ee<^`SGU(iE;IzApS?wm%T4& z3-|j6LR`odfFrXm%nn7n1Vmf@-oIAC9wZO;%KyIjM{|m4j(SPNt@(YN_1OjEmnh|D z;DRhHFn|Z|6;>&8zP1>52K~VtldU7;ZzdD18K_*?F4n1gCh^*gkCB_}UARGkpf1AJ z;){yj!7GK=%3G~=Dn@*ft+-aC!iKaLiY2`ws)$c!C2*tBs3!Jv9Q9_$3N~X_@Qm?C zH6y-2G?)4t|1(WD%S0ZBlq<8>?ly zk3W+S9$2lOn9=zfGF})dy>u-|a(LB)Lx%LL%E*opu|>FA;b4sW_#9ggv5NFk2no&9 zWyIdYm<#K55F^CAO^9_=Wsm#*Q0dQ6XL4~!gSd`lHUH$*YVft|kct=WnVyBG{tIPo z0>7ucpY24?;e9H>O+vxWNxsgFHhDe6t!{o6l&KPIjm#fFRPxcZfX$f|-e%^&@3`Ly zBy4A{G%~}Yor6qyZ(>F-!g(qUyQ8S{qY(asR(wvpQzP|qLoAv`PJy4J{(F4mbshMM z^wZvauLoYR5Nm@am?icNJR)}0cFV<}c|pw_1Q#n*b9@z&C7}XxWqOkh{n-}8b z)POKp<>vCIBCY*r++;#=MD_irux^z-v`-!mJe5)TD{P@>+Gu=6XM7jI_ZRPG3^C;NtXT`_@{m6f$>@QP1cwk^`2{aKXz9DDbz zLT2aDKNqGQ>YDGp1TWyg8gcD=c#yj|HC(18Me@^%izvbYhz$Is5TZ4hcLQ&-ATn`s z;C_4lVQ_!PXHf$9=dO|S&YHL78L4#1?>h~bLXasBGvW1@FU_IC!7c=$q*(}=4%%A{ zzp%F7xzevp-}+|}_y4{szqbjfzcbPM#__$kkqGmnEfXvEEhBln<9nzXY3SSP)TO4p zf!AO!h`i>LjQTgSfV$TzrkntE*~9D;os%Fs9L#}4TaQ0o)0?)Y$I{Ie6%lVDM}+C* zQv8#17B#SDw9mJbw*0<6`%9vLxZ-sdf52})5+HK|&xhLEpilnOFWT|tq42<$n|~)} zi75celcgk7l9j8758tk`22M%7C{)-DOdf9>{NwzITNyG8&i9$w7G9n_ofkZ+s5LDt zs#uIYESAhTK4^X`TE$E2vF!Z2kI-#pPjIvS>s-n|5_*QA^9vxEyz$2avB-?Y6%Z@Ff$TDoWZb1%8np*gpdFDK?(=*Rc11+hs6>EWf!_c>?lZ3 z!IdA?HQHqWAUQ0#LF0ff0F}S8a{Z}O4>+Am0A;$$5`$6}`G*Q(DJerigcw${CYfo0 zuj<{VcPW^cis1A{jUwXA%rTKyEIk&azK#Pa+%K9#sb4z{vr{X7Yo+$v9g%J0L+HjJ zYt)*c{*eKHX#zavKfBI0zoiY_t;1tf1+~yBjrl5cLXv0 zGKs1(s1}l!xk*20Jio#F=y(^03zvmJahxESyu3^#S$}0%DOev9hRYz(LrF0TAc2oSmo65qofyr)YMjAL@^TgYCu0-iuFUz5p@|-7*yk zJXvsl7b%g#O5eYYANHPmBH-8AdV?9O7T-2Ez)y5PSUy|0b-F(~;AjeH^L;t@e8lz5 z9n)vIiuzcfw&Y*L;kdC)-sKFf1WweP!-W_`4p@FDmP2Y1@FT8N@=@J zm4r*ezJK%_yZm#xQozPba>Ixu6bd5-_dUa5fQ8{3t%4K~_Grf3LLh-H2H#JpJyA9h z$l(njgh+gg-wnfkY>EUi$jcMRjREfoV79pKrFgWN4;?ZWTxBlX*9>z= zyq{wPbM~t+w5c*H101bkv`+GPSApXxJjNh(ovg}Kh1VJ$tLA4<(K4qZ_#ZsZj%y0UN|KzE%I3_{(5+!jl9DyG$ss*Iz{@j{Qbe}JrD3M|Jio!DP@FeRU?jN5om(`>;oql2tmIBiec)%k3Pil^is4AS7@~DH@W}4js8I%!aHfK4(oII^9bznvMQP(O5)&pLXQoYGJXsO!1{<`p7GI(PHHv#n(>qV{f#DficATc2 zgzj0`{9dN~ew*=c5u%g9NBo!+k=ggm6j}TTi=+Wj4`}=sPrMqK_>!A?(14hTImY=u z5wA&e&}_!nv8GNKC=1X5NS&n*SZ*gliL_$yMgRR=a*~VybDIZiCqL@imRzA8CEqgv zV6RJscc{l+I(3KN{DjFB@{OTKKC?r6otWaa#*@56>l-8!gFr}^2IMs;>z+orEUQD$(_Rakk0nHReFV_TpZ8AY^(yLVT61*_6EtWP0AI_Ma&N z8MKONm#NBAa_GW234b7HSEzNH-f(r5gxmts2VrU*&pNi2FbW2&xZM#m?6x#O!USIq@-kLXXoeV=j7x>e+i3ijZSDo zCwIiBeNX(3EGaH7E-Nc5DJl8zz_`@bR##Wo*Vi{UH-G;8xuvD09ns$Y?b|m@cv*LJ z)sKYQ!PJJK%%;)&*8ap#rQ?*N%LsAFpkiXlR*k zZkzeqG54)=;rn!T_hbcTw(iG5D3Z+Cb1z`(%B$jH#pQ14Rr zz;fTJRT3A?EUS3{WT3YX&-uk()JHEU#_G@@;Xl!F-dV6wy zclOu8((2*L{><9Z;?~K^?%LYg_V)JX=H|xn`pN3<-rnBf;o7?DX{X?Ck9F^78un`r_i^_WbJd_VVWL`uFwi7vEI~5QLag?Tdgsq7wUB zv_U+kn@F)2b|H)p0!cpMzGu|y_;!1~I~k}uQ3ya@V>fVMtF}o$bwhGtE#tPpa1f~f zdig;$!N?O|nMEpx5>)Q2M!;0L)*{K={NLdK2`ZUGAE5##SUh22N;vpbiEGhZKb!%? zWKGPr#NE!z#9Dq&ssC`Hz5>wl0r|t01liPZJQ8fpllTEYVOJr_l1HA1+*h8VH<5*K-4H7a z!jrQS(v?(aF;32?+k&tIH8N(lApe0@kr^i25FVgkM%Xrl1sIu8x(zWR9-~i|2eUCT z<7>!+;C>m99SASU1x)updZwyb15(b7WNnLWFmZ;`4kVh{JaT2(!K9=xRn4zONoNbk zI&-PB8QaO{x1(i)xiQgrlCi%7VUh{N3b-CM6;sKCg*5m!cp#*gwD|EUH%|yY( zM94ybsvHlH@dE&Ai@|ACjjUQYfoRzeoEZ&STMUXuAk z*RwJ8VvAUUp4e`y%#pj zPgfpsCj6G5Uf;FYj(ja+WdGsh8X2eikimzW`|SXtk3R`v?q~g_4vWnoKZJ+?r8CqI zA)<%?9MX3YV7u3T(eOB_*VjQQQup{OZpFG3VUB}y93l2-vig{AN3t0go~sApYX^3a zB0yCI!@p&Sn~n})Ns6oB_`VB!v}Y@gMAM2mQKMLP)Kh&*BTv)3;XcamL;&|!ZwV?= z_k0uZir${A#YqQe1i2E3P^*=`Hp7vIIU=gqC@cNl41HAX(&6l|08Yo3Y`pjYJSGmn zy%fxw+Qu~~_2e`qqntCv493~w=RNU0dL5Q&7P0(QOwZWpaXplG&r=)+N!Xl5ijz#_ z^Nx!pH8?Bh8kI@Z0&nIHq)^B>UDGu#=gi(Coy=rmzBHu`&&k8Y{l^V!HjcqRMP$kO z*;r1xi?J~LSyPXn?wSxz zWATM!wJLM|Wo1xMGrs)_`!(aQRK^MU0RI(ij^HN!KEUecpE~7AVEqvKVG3<@g%zT> zfQ7?~q2p9vTVdPIlkw$S`>t$hswE%DJ&jcu_!gG_28VIn4+c$Txwa%Ec z_%tk@at%zasL5HznV1bwe9G^dfw66&Ov>NX^%|i!`dwGD-t?X0s!^pg?Qq>{c=m2X$(I} zlyGPb%22;C=R^E(3uuGAApkVF5d^#QoU`W87}gZJaY^Qy(TwgkOL}=>YF>6Rx0F{FuVb-R zESd1f6xEz)8Giy`^=W+)l{FI_x+dTV$*3epHUqwU2i?y0NWfSwS8pdSVKIO|*HQ0LCT8xwQz26Nc z>=BJu)XL3L8zOD>WimTH{XMtLC#(U0D5N#3wbSIMqY)h=#GM595WY$HDUybC_Q0Dd zRD)O+FsmFDaIMVqn)liw^2a>vnx_LE=HT-)9Pu01DC*Y1x9t-&sR`vyVCPx{sjpyn zCNMHndN6bux7`V5b2?to4O|+xe4r-nB4m^ag$vU3$cBB>dI!`0*#SOnD~N(Uj8o%A z;{3bwQ}6pqf9|0AjoELgI3&3pyoRB!f$`KZOKBIq>oUOWY|7Gx5&n^MRUSNrHg#u{?|}WTXm1&Egdt^_*n0hoMm6kHqS=!{6N4Wpm%Z8_ITc zIF2oUN@RST_f_`d~l5G2=;pP;-YFQJWph4B>UQ(HaiJ zjw}!VG{n=nwDv~`#+2I()s~q?Po3AUAb!fcdc!uhuAA|*>d|=LX;{yVJ6Ci@?aE+M z;5XRey*A(<*@)s0EbGnlyj4uTX$mpwC)yDHOGXR+b}AaT{5YtE(Pwb@4ZO8ARXJ=@ zFfUN$L6$pAe7u=-+BsmBGYQV(Sjr9D{=@L1?PmzdN4)ycD&wgeKE1pBKEk4jQv`Dq zp3flTZD00&u(K3iRGu7zz%n)U~!@L1WB=BD&d*`(q==_al&o0AVe0k_jb z$?eg3m|riVwfSKee;9si!9cn1a)E%H%L zbM70Frq{4U0uhP8K{q*kS}2Fqh7Mu#te1UO@*^|-%;MKKcy=SV+6t~`QxacIi4|tC zou8cV|2Py80Z0aZ6%WHge}BU}UC`g*OzRu1_&APdmyYW_(D`feDqd@io)M})PQpC@ zp*v#pc3#Y2rZXOyySYMZxT5nV-k5%+FUI9$x9O`@=F;^SqNjDnx3Y(BLjvxISpxX< zefDy+h?^7jt8I_Y?Qj5ui3f)WZ;5E-ntmf3ynbdN!y(+T@*8HLvm}%BeNGOx@TGp1 zu3zz6eD~pCMXBdN{5sgD{d4F<GvB1l^x-ekLWxYlW* zl>kagnCMLB-0(=yq0i!mcz;1q_$=$~x(o8GNt`YabAQfOttEIsAEY!13UOX~4he_O zgx}|I_$IvN4p{5fCC?hdvVi6S)n;V>C%%p(9KrJtGchCI& z*3$TbE&ys6X5cyWE0;ssi&Ri^t9&((GH5{AOTu*>99W2V;5&L2_5*5m~&?D zjf&cJVY}6FJx{0lo=ys+a>z3Lv{w(!dAqi;g#FK5h0rv5n!bQxV4#!gl|ozWtk(9H z={XzXlBg7CqNX0IH)$~q-+t68vWBtnAh^u=iD!^N_zE@|qGE>7+TIjMBnI{d3BXqW zoovT-!xis$&V#NR>x>r6sYRI z@qbD=dqGz5uZyGzkGFf&W%wcId9ahUCUakfe*7}&14jZwTiTt2K-(?IXORB=+n1*2 zw|U$@(@$Amm+*=qoTNvYAmiDDcD&D?-Tr(gEnRnc%D#&0GkDQ4!+WtW^nWNi^KhuX zKaSs7j2X*dtYsTB!`Sz|VlXsh3n7GL57|k}42H(OF9{)pkYrC8nuH{TRFaTAWJ~hp z=lB18?tSig&U4QBocHJbeg%zg332%!5C0zlp0)E8lh$5j@x`}i?nm-!W%`S-v_7+e z>|2q|zSH9R3x6PN#lBk`xf>U9>kIFmwgax3%n)Lr`~V@}@`pYZjOJBUqx>LJIT4u4 zON?2gRN-@Z#D54GGT*LHNq%-2Bs(cv*`4!a|Hn9u#IixXOIINUOikcEy{#cTY6Oe6 zI4j-ne1dxx&1Q3#&~NT@A}c%yUq8?6BT7lWpx%A{sS6^x>4D~t7<1vTl5)ds=-#JH zL|8)-0|RQzlsj!tn_KZ7tuT9NROGPhJ5hI~D_+=f@7V7PxtV#EUTZIAoux6ll8`{D z1wK3%EFYItL43Z4<+y7IJX5$_FD&)W@KEh92^0S5Zec+Sd*75p0(tBjf7@IWk?1L& zghMPg!KcHiW4Rciq@J!+W~rA=e3LYtx`J5AvvFn5>-3mKsfzjte0hUDs{%vOfSoyJ zKAwpUO`wngsK5-soNmt$KX>?%U2Mc;G_9t}^>k8gmmjO?6TmZuNO=kqG^RgQ#a3~P zb_Mrg%lp8bxbIEM^zxntRv(i($`1TqQ_le{x+!vXNvlql6_L5sWHQ2oLzPHVV6Rra zjT4<^Nu-*F!zJxH7@+|Tsb0xKtMg+*3=EFR9EPeF4f#EqE}j>S+v&#UU|gejZ82_E zZ@_J;xO3Ge+u{mcENIKm_T`D)`LOZCq4ePLm4=v5(z{DZGbC1vw86sx+jL*tyL0Ix zo2h3TVE`htDRZqVOXVR3RerHcKexm%JrDpvV4Np){OLZigjwyA#r{ZaC$ zT&mk`X`2|zCDH_G{hq-)7!OfX2;vX@`CTa6iC0!?#aC~CU!Ey@!z%{txIzwJ~i>hCrp$> z)9r?zMppiPk|#E*>YQY1E;&GX7_aS1u0DQT+2Q--X|I$|4RmuChd*k1Hq(+0B+1j`@D$Pv=V1$%zMXE&K`r|@A6qCSVA3Rj`G$SpJx>BQ z^H7=$bD5)S7na<%q$;vk^pK`3ret)q-f;!Mq3iJPbKCIaoOhR@(NWy}pI>FRq*!iB z_0Q3MuQk@EHko=n{K_`BMJ!T|=5$b4rv4}31_-f~U$MFR{b}+ZmoN%?o2|4IRH11o zZ99@^$0+l0^~kF)nh&?hm^x4T!!!MoNHYOh#}1J)a@ujU1SzreE&JIx7VA$_Uc#I~g|vA7e(dVUrvYEHBly;(Nus^7vgu%%WTWm0Mn9yFF# zkn0hGE9GRqfLAJ9?s-HyMb^u_5O(L77k=4MlBKv@;a9(=;SQSFl) zzxO42`WAPt`m(Ff=mBxxEz)D2mSo+f?ZbA!KGdwS(l5$jMnUTiB z-RvSW6hY2X_ITFBZAtJ@wzrLpfSQRM9z5J(xqSO9G(q{{=$n*mGRoM^)Ku{6&9jN< z5bO<^hqHZPy(HO~%0Jf=OnAYTv}_eI_PQSyr@*7pvRe^CvuL2E*`mgFyvFX0uWiC; zLUc!R7B*usI(whDvc^4y`x%;u{y`PeM1w9~B7tcG+*@Jw;v(Y%c1)v)Hf5q6xLfMd zf&;!WIRwl4((yhSX~MM;7yRs)JKE(Ug!x>CeE9>RfyMrpT`-;FB2^-f_@n`7Pm65Tg^WetbSs3`W>o~;!~$#Nxzn* z4-~K9o}Y3`!2KF+`!S4s%BtlNgZh&}=TlcmxLQp}Hp%EdO;%Eh&yl@sbjx~4Rk=0x ztg$y2*d!^`R&0sd7pC!riy0CcvGU)tXzfy& zGZIX%BnIUGGK$6aQO`DZH0)T3bnrwt6@3#E5>3?7igT5=`#fOR8{DN0a;sqjT5v(7 z;-V+K!xwUWUN8W>W5SI$cqX-HNU{TMjtf|O^i>8vwi+1B5VwFy3VEGM(f( zca)eR)<_#LpKs-V_AXD$%4;i%8mu=YAIT?pIdzAei$NovYs+OiG|> z$BJi$YvIr9zbv_Yw_>)E(>vgiKZ~ZSgOs3;K|3D&Bl)1{C4)ift@ z?)K&DsiK!P8fmH6a`q&PJ{#u$?2XB|4?I#&K5D_Z2JJqrJU)MC<ew|@2yX5ct= zr10vRA$uCN0{RC$kdQ_mBh*l3mH_8cBO4A6_&hqs?EDni#TAVK>I+#krXCPO0Bi7 zHJ$i|V$fs7GUeD5Y(Rlo>H{Ro0!e9Y6ojWo^Pi=tb{pPMVPc-|IWr8wMCvJQKY)>d z^EPn%DR=^Rk03qTD_a^fFJq+#FcAPN0~#n$*FsFiPqr0DK7H2J9o}2@<{q_=mQ7;6 zdFD92kY;xl(f+me!4lPQECo2>Cb|N*$3VD1uv8O*)Yr?WM9JZ%sT~UB;b_)pII;+O zZyI=2nv#@JuRX3xq?smuR$|H@YseaYd%!7}GiV4?dGs7hS@wb4G))FJ=?P5(PZ$HW zvMGNX`lw`03jcFB<0?(}0b=AN8qgIGqP-l~9AF4g=rVA?QSl-VE%dt4A)Szj1~8$$ zDk1u`&F;sp1APW6OzFui*2$^dz0b5>cuqAk2?32*MEhW!Wnri7p<4FX!29{Zp`F3J zzG#cu!5mlhC>~xH6)udu>F7-B^II1>{OVk4$t5-OaJCM;EX5WyD_}MS|Kyu-%!C&C zTnGo1;E_&zlWwo-xKd2PE$MB>U6)OT(+9-L%(6=c8H&IwS=0}P`LDyl4d{nWo)3Dl z`Y%Y7alc%ZS=9nKuGIz*O79;pA*!lSgedR#yG=onz(=Z9p9A6?XI}y^w0+au+JW3o zx1j-n0N<$b4`l%;d+S2rNzZTs*yE8m+q+=XMChiuMvtj{t$B1+UxES9FZ6-iaD-=k z;EXF}xv*D{@2=a3E(t$c`?IwL3;+sn}WH5I2LNqVUp~FUev3* zV8xsBQLEzPP-qMc7|^^$L9$EQB1ZD}bpTDko!fen0@cqx@rs=M;|RJP1gRgh>$&H z3`Jo=gPqPLoFT+`#wFky9s&eF-y_?Q1jh753kFhPZPA&2kU+Bp^Wj)^@7ObFy9{&; zlRZUU4snh=JOKqVK#CNofU(IXAv{fzIg)aN`0@C45EwHI5+=o5lY?uvfuQ+3CnZ;? z|JY4EaHKzlnGV7Pg8Lkyekc8J-VlE|iZOzc?oY|_usBD7;3w^F)gefcRYLhyH_c)a z*g5e8aH+@1X_Nxle+#p`@aW}4b;XyOoDOq=NXdwts%$f`=H_MQWvcq7!xJXQyV5p| zd9_R6usnsQ%&e^sDSS{+YX*!t8AQH5D-P8vxvnKZP0L^Hc(vNLu=@EIg%wz1r2{Vy zR_P*ZuZ;XY6~)qFe%zb1H=cfP7p9G7!1CTy2F#bwb?szG(}w+e*VlfjfqF%vE$Dv5 zM^HA`H8w^6RMM~U0RP+4P$qd#*Yuu$$MkCSK6N^mET=WO#=05v zae7%{a!q6tzToM%*o)WNr_90p*xSHKlF-$K_4m1J(USqaM=>=%&}n(+SY&CPenc^mq;0;sv3?W~J#&M;9#hi}?$ucUZo>Jy z0D)FKa${o`wt;M2Kb{Wc#BaWr4|>=DRXB;V*^EJZ{Vv#}ynnTpY9HJiuocy~@!m69 zQ6N^9@OykO*@!b*{!cJhU-044mb^v4am>snXWr>k=eKb9RWf1H548!`@bc5_dfbEb z`z8XvP!-TC5i7vFm8Q8Z>b0ik74ocji;nb9)eNPZ?>yM2>Zd~#s@CMu5dD&O`e=wT zbF3D6C#HdF(Ms(VpvupH57gr<&=9%(nC&B)9%rn)Wti6RMnOq1jj~2x0PBi|68;30 zcvDS3fECF3v6uM~rk_I1|G+Jecg{Y9Smo`e>_a_TsXLx)`sv}88*ocXs6roD5e{`* zq+RdYbGHlkj0g|Bv1^wW7TOB;`4FO|8Ic~jLwdMlqWe|<`%jBLU~(OPXYtR2{P6LG zbzax7mG&6?pLHegi0CeW&pz}R)j-vs45531EXhmnWg51%IAZTtQQubv#YFz1!@yVY zLC#)&s^1gjIYFyK6j}S<|7qf zNd^@PK#Dfj*QRL%!hW=9UTW6{ul?VJ7I^!{4c@jt)#U9Q%aAM%zw$1G{Kf_{|L@C( zw^p4&LNzzh0-*I?%5Mo;{l;d=J-DLe!TKI$#{A&OIf_O*>~CEkScJdoy3y4NM{uku zc;9|4za8WK4|(raqus*si07KtCj1)**>AcPp}%y<`tVMS0JQbbMoh!Mha7&@x<|;z zA^Cm#tctr?0=LuPJ4FrD<;S;&MQMv&fg=30f{hz&iqv;rcMs#?%7nYCdz25)e$R>g z7lS_jr%p}+j*n9B#suD>iyY0t;A|o_V4zw(aNrWk{U!dumP|Hky@BtbD` ziJ?O6h^@8dZTveEwsZD89qCIK_}KE48Lo&~JcsFH=bPT4(i5ysB1Z2A6iEZz7wmYz zH{*U-C&dYbmm2r1j+k3k^qAT6mc@6lSe#ue&HKSzb#wQ)lGZk{N=S^|-75OWFUv3@ zbJtUP3S@XruSyll`-(PoM zPW}#-e!@ClwMCw0@NVTiE7P8BotUI~5dR{O7suQ$4th*Q_k9qeP% z^;ooU8HT5C;xdh;+vhVx72Rou=JL>r3%PxslQ|q$T8EEWgpPVa2Ch6iLa^XB5zz>! z&ofRI2YIUAWe(7Yr3u(AE=FjrlpHp4pMQ|wIuemEGlRb?M+6fcrN=z(=EuXgc$BI*VX*|OD{xze%K%rWK@i< zm%x$qY`?_+Y%o22OSZ9J`i1QC_uBttn?_8|Sl?kyalP2ga^+uUJqt)IgDmtT-myf= zAVUUbpqqTtMvt}ndZLh@4#P5>Gc42bC0-39WQ$KfbJ4$WtAE0@vFFqXoYe!!Xy+_l zm3L+vsgW>n^yyeMv@2}*jo8rPffwmbxzQ9`s_;F!brWcJ*-|`iUNH z(u%kvn9(+8{!e9CkM*4D2-#5Zj_Rl}vrm}Yt3f9%`HcmAE$h#Fqu0F4=2rO74o1`~sGk;%q|w_n@N{_mhID3Vg#asq22APu77RGJP%B60-W~X=d5UasnIJdVRU^ zj`%l?+4gCfXfYYJU98@^|90zuY~nWv$t3gE_y_b_P%fNH(5p~n>4SpUo#r05@*F& ztgCu>8#zflvzdm@ZIbs@*U#$i+wJ*Da9zI28722_YOl)%YK2mG>L_D}h&75{f5l z^3qq^Gib^g2Jl>PheF3pD{-UqHaErd)d{8^{%|)@ zGOR-9s*kzVRyO8}YoAf9$J+!p)h9;cYfPL4lc~vSxQO?wEPE`UzHPO%zWPrtFq+jm ziR};G-CLUY&!%^(+_*tny!Pt$C%i~Mk!k9F-)kOy@;!-|Ak6PVW9#$A>4b)oPFYf2 zuwhgB0-stFOitG0qaA0}RRZR8r*uF3;7dbAa7UByf^q5#P8zJ04%1PL;jW$eY{s0( z>$53!Z4|C#Y0pN_>`Nw8bnUvyw@6))y8YpJc@$QhD$!yE=N7ZNaAo@03)J6w)BN)# zwAy?ISty?LFreej9p9Fd4pAjTs}jWoVv9X9V}%$l>rns2UaV@4z2qMzJcgAF~e zIABfaIhc>um`Z)fx1WNtC7)jQ8bfZs1eljPCcEX7 zf5^tHQS&(@(1HzB2rz73f1dHG&;ZRK=p3uw73dhdR?@7n8Qt%o&vw{Bs59;v1NrE2 zlH>9XQDQ}6cxY=IvbtZB2{_L_1eeIg;$0E z5L_Hm$VON^Ny&I0J3S$Tr*?3Q9WW&$$yr8U?m?x{-S>pP;h#4Ax#^lEa^aL_*f&k( z6D7vxijDaV{s;kiXAZ>2Sy_zf|LJ_SDQ<5@XN)=6^L-a{sz7 z;C4-Y+KP5Y|7d`ZezCjUrHQ&7R?mq1mi<86zM=bRIIHVWuC{YX;pz6^16_&qK0Ppa zX1kD^4l?&9H>yf2k4-Z=qPSiY8DGgket8Q{nXL%|E?iVVJ#O?qQEb!suPgE8&AiPb zDF1$u_g;w38M7-&^O|TI#G^BC{B}d`2JWFg#@^WL~P!L|C08NYqxNJgVhGF_}Be2hUR56W#a zCI_SyRiNdhhj+pH}542;_wmc*&bzan~_KZ^RU!tOjYqL$jF zm-3}zqymiassIQ|2a(->cnZ-Et406IDKl=0KA~#LtxSQYx()VcZFJ9GpMK-{J?Q!nw^+&An4sV349=@b@sz0+a(e971N4ios( zuT|2pS}@E9$+yfjI=tbS&YLW15(*Y*pddQ28heEGZe}fV>RcDkcU>e-&og?ggnPn|PF5sgykjQFVP3)r&**mE_HjP6oZ0_Ie0uW>kGl|;m?CWzoc7s0@I83z$g zH)pFDG8MV+rocjxM?n=FDipxi^fqS|%{@%0UxkdJmlMSuDk~i7D?FP(C=B4WiIF`L za&#l20zDLv6cKN6=h+Iot%?tE9#`V2`Im`TkrHkam2UE$=jQob8@CN(UfP$Q~X6)SFFLiM0~HDkS`REBzA1k+@RBP;kKP zf@$AR_ug6W`O1L32`fw~SXQ4X3x*83fCAw{OOz0u#gK{04+tRC_AzqJLlL&%=Ro8S zr9?z6vgr^b?s_p(7sHG3QI(H}zx_NsMKBEQIs8E}-K;c&mfnbu7a9DHTF)gr4m||W zdWM?aTu4fgGx4rTg;7aml)PlDdR6Rz8)#6JVg^^~ynO!`*zYxIw_`@>Y zP!j||3AU$~4xfn{NiM~kD)BT6O$Mr(*Oi=HPR(K0l4c%OF3vRq5nks@asRcC)824q^|d6rTfB;)lf;;kg^9TcW_@Fon2hLUma^-m9<)?H@Py))x`mfOOaEPrTX9P5VWf@{(`uHy3Vrfh#vy~>LA8wg2i1mE z%MawGAE~co1s8J@R~Ap?ubHLXN|zgDQr^HyfE@i$jZ#{E*jq1BmBx{hS%v!`)%5K8qrUg&zG_7hLK9#Rv4XcCa<=$?9` z7q6Zeh3casB_L-BNcaNLautIEANL7F#p;sG4?3g7$Q~@NX-m3s; z%TeWk_8Mdfkco%(s;~7P__boXA#8H31q|zzsk`CiCsn?T(S^ddFxhe2x^X`HK1{dp z{6dWcDEEkp+^PB?P9H-N@tmM9Wxqa|5CzNSzNA)tMd{VH)P3!(`Kn#{L5whk>P|3c z2rCjYR-6Du`j@*EbwgEhNCIyeqdzk&pra}#2mglf6Hf4!S!VC>iBq))z9KXg^zkSGU~uM;=xKfLh` zK5$wu(0>v9bJm<1df*1^NE0bH^kyjJwFUp(yNpil=*gk)0PV)f5N|sC1dXlV53ZmM z)eNrY#IL+3UAvIFF8~Ihkiyj4GPYRMpJsX3;ZGW;#Ikfzbj7Qr6+mn)#1_# ztgQ{Ky4C|$H+GbtZkx-S!@XTlO9q+^A5s(zq4kF*#21+38ma8Sp^A+I2M_W;BL?u# zgE)L*91T?9t1-4;^$7L=vg=l+W$ciIWfTMCD84X($unon9XNsPsgDnYUz`dZ@*sH!4lxl9a;dGA)xTdUit#s!<#Dp#lDjvvfHB>e*n;AAo+_Xy z&x@sa|H+{o)(mzY56Mx8Sm+I@BQl*?Hlt?>1_`qkE4uXKJ8!jk9 zZTvF@H~GE0zYQn~!2DAw`j&z<5uOw*XhBrUT2RuZf)|CVX62m0o9AVF91m7LvTU)4 zHmcuH(ZI9!^ni8>es!bPwzn8Uc*0w45OQaOiaLg#`Ve5q2||%8l?(|XL(h~Yza~jS z04Z*$D62eJmZAuuh&%u*==Yp~5Ki9Ea^S^#P2^8*6Z;a0?(p=o?1VwRm}=QwXt71$CPKTAH$kq_7(>bQgt8&rnS9SIr*CrA9S;5C$N! z1j7e`#{1+g<18Zj8g$<`NJCf6=6qPXkStC%=8}t=twM|l9mG{A6KHg!+4;K!{>!olZe^Dydca`rOL6K9tS6cDTbIqy>F>BhC=lU@)m(cK)sedT? z2MIlsJYpJ>enx@*X@Rn49%wlEJY(T_U6?I&NuS)~{GEO%MtA-mW?LLK#I#}n>@r_# z{1Ckp1X~B1o=XvWg#K+3_nVJD4JoPC_em9 zwKO@yww*(@Hln@e-H*G6#?Pg)LxG)8E^O(&Ct;#V`(ATywbL3vgU0!pXCLlskYsm* zy;MRUc}Ujkou>AroS6INo*)a4uU|^rC0|yiunfATiYszLW(ln#77bBQd0`z7Q{#74Run< z-?$fQ=Z7PIe`!k-_240$Y-<$gB)#hC0is$OwX_3q_sIO9ji2|F98?U{2WKu)z_J7+ z9TXHx4KipuZ+a5zp-H6c?U^&~`zjZ1w;SgFB}VRrCTbccOWYD|X!fGwy0rA*+u|3f zlM=fIs?VTj+BQv~dlSc@kI1V|X4|vxL=F(vjNG}M646_bRxd-GYLf-=<@FlU*iBJg zLc=4;-?qfAfbCF)!ugAPLIK<(K<>4>V; z!Xy>xMY+z$Aw=I#LtiZ-rdShrh=-@j>pVSk`3|sjq zB3%Ub?Oqy7hAW%~9>`RG!QNiX^Mx`~j0eyC%I+dR%Rb4fp`T(OH27i~U&zAPpKq@yf=AaIbZRZdNgDOpp@(%~n>cz5o%rfE8NkZ|p>h3Nb2 zim3c{a^JC6%>4*O{er(h`9y}6+=9TeyL(KM`+1SNs?2N1hr||V_ZK5|W^LGZHyiC> zip72GGYqd^&HL#RL4HMH*^3`c!Aa4n?(O-(9`Ev$ye2yDhj@K>kd(S}miw*O$Hy1B zi|!XRdzo^h8S#YDFhiNfYo8`wK8U#Sy(^lTUx!>688r7c1K$c?MxvMzY-qG{6Zd0F zh}L~f+nt$i^9UhXze$+e>KPSbCv&$kH+<)5t%W+toVnRf}YCP+wZS!OR1(7_DRd9bE?jibpcEL4aKqr>E%hl6ixa8-|weoD3B&s zIl0#;=Gf#Zt6l*sMcsUr(R&{T_frzkitcH{SF=h*ZBwkAaCebpwo zTilZ?Wi zDf69y`HZKykNJ&drn69WN;7&hQdyv7a;jN9RfmlX6lHAj0f8APyYJ6OVE)Y#AI-jMgnu0`rPyXrH8jcv zwnl!v{JZ{jqYHE+!VDj1e?s3Df+xQ)RaO$nG~|oMC6Kwi3Cw!8RyoGgGrojjIi(K5 z9=!^!Yr=rZdjh%-j9}VTgZ8zzUO!hwq^7?B?bL1^Oi$Wh#b5%Y`Cp=fBp=8IVF^x=3Wq!GuFimQiqM(oSs zI`yn7gVUT!0x$H?5#+R$D+QC~x<~iZ;^abquwJbaq&A5$vuRGT&l5Rg_11%;?4dnu z=>Rk54FujuhF?8y{}4TYP4((GJHl+0RIqQ@^9RN6JR5t`W)iU+ z?h;Gg5q^<3{wYrj$OsZD|>e7T>4};LI?KKPC;Q;baO^Q%3rAVtU=NWH5i~ z300hW7B@c4j2iPNUawtdoYGPTl-zK))9)i%-2?`HECErs+q++jZ~~WVtQ?;>iHk~Q zQmv$2CC&9&xH|BZjmz`N%!;RsXfp$VO(uppP<+Y!Ee3#6K!DACaJhQzl>$soy@K9hLmKf8^1!_@td@LB~nAu{P|>N z;Oo_ej2|6|hS|$%)jBn)Av=hjbPtvh5GAydCV&wyBc)$)&$L#P0c`Cjo|}YaRT3=i z#H-IuuaT<11t;U{-ducH2}3>_wH05Evh_48FT2MD2=!gA;Xk3`b(Qy}mNZXh5L+;0 z2Pol8v8(CB^*YU&Ib0hiXr2Ox>=6f|pSS&2aB|)Pr|KJVqSB{4)eTuBBj-}yuc zWotUj_gV2$`dMzdeO!sGyHK}j>in<0#j_<5+wLEH?X_dlzOA|RI0}a2)I+@{s8m5*X{UtQa+FvR^j>+JhTa0r?U8aOlcl@& z?!T4Ldw;AyE}yRwxO@s|G$Ehj6BDm?ZZVCAS--iGyLHU4enE>9SLJ>)ugdT#r7g-Q zafv?M&wDMRRAIMPqkG_ae*8ZY{(9jj0}Dq???V5z>+F!T#U3E~;IBv^*GPq7j* z{N7C2QSQ^s%y27XOgUKV7WfbdedUrUFSd>^CpsghKWuCJ?El#0!CdTdyfYxwpldw^Vy;*dZu_J?Da=~} zLegqlAH02$HveE@=0SgDvEXVV#kRaG=0h#O>K>P{syTWA_?%8dhOfnNn&g0n#^ zo)YpEzure2ZEMvqW0nXUMHGgZ$Q@?Um8&WKn|B3g(slOvn30cNa1g9dzEl!P&LFGP z5V-xOI2KnuRB76I`M)<`>+ULUeXID)iw2ki0Yo~`E%7(9^0KGCm$pBqFwWlLdV#6f zEUW~OYajy|H!zZ$U@b*JCB6MsTwm^cjpIy{SvG~W&6UcMv=@axUrE2qmDe{BF~`_b zQ?)rZ#s*vYE~&qVE@3)cCUfo>s~^o^D_u+Uqm}teLB3CHPowFI z5V)K^eB8{($nd6ZASdD(=f{OJCpVrL=9gouoip@%CPV)U>4-0cyFxH6&s8J{VEuhv z!qq5=-Wxf)lpLOpnN1s8*ub(RV_7~Z+rGyquM?DOL;PwnHMRS)kQG00lu-t+jDA1) z%i@@%nF*3pg*Kv^DR;}LVJ&76b39h>=R3lwRnwd}!c&MwG$)@}4mr0L6dF|EqliJWD)n1tk~q7h611NXPrsW|UdFcl#%7XkQ|g~PJozA9*5Ag& z_Rz35J%%mlH5*=k595lG?qP$Ou#SG{TZ)^mY}yej`XkpF^5U5dVALN?vmZz4N7}SsS)kxD3LBqik2ZC@ff*ABM5; zpH(0>eRj;LPC4|v;%rK#J#jer*(rtD=QP9rk~6Wj5|#N@n1O+5=|{2|WG<#0x$7|o zuWk>W@=2C{#3gQ+PzWcm9cQ?SW+-2jb>r2*2*nxr`7syrdusSg8wGVca=NrOUp%8?Z2|(g#uaf z9wF*JDyHaeL?|H!?a#GNCNQHY0EHVANci`KPR^V;eMOq(zMP~JTNF>69Nh#%xp-zF zIKn7paYi!9d6BM(Ip*;@HUjgj4RR~_$?6#Jk8t#x>LrcIRj$llJ28rYm*o@;;LF@+ z4Fct)q%_MJh>!B}rN0%gXT{a{-De|!L_8++5!b%hH&cUoI&z zM(*+}6)U*DsNfjpn6XfrD*FUu<32bz)U%$g`bg!Y>|Wp_nEdRnJC?=#;{|mHLi?wx zq-ySwA0b+m6gQ@61xHS1)Qm>3vv@+32R)#zM$d*}BrbmHmqtE{1X~A+8 zb2%Nnkz7uOTr^}!hf|(ijc_TD^zQ9wdgW<338IT7RvZk=GB5$E64?y>CI&tq$f%&V zb^T$YAxt2x9wD!oSY;w}_BPfjwAIx{o$6{7^xBB5)PvE$ij6I+o@h>zNUMZq`;>7N z&J1`b2l6NW@nl#-+#nAa579w`*GRI!`oPgKj20?SkVZE-asYkV7?(%_SCNS|W%6#TEl9yC$S|eR2LMkGn?(L|DY`-`?W`jo0N+;)bg-?pFFw-Kk-4Z6~5_` zkVxGaub^h58>-IISOnWvqfx#}IaJ2JEw;KX(c|OX5uUkNjdq$YwnHE*dD7q_1Q4>s zm>-Qu3^~kvwAyRhKb3@C>?+*X>0m+2cya}ejAL0(tqe|ZIYp}VH<5}60DQBCg@XD z+74&gomqm$$2y68jJ%zSt*_GI-?E26ZfEieev2de`j8 zEBT^ozcA}FpwI(Q&&3@6O-#x8j$jRy+|Sq92w)kv{9CLV@p+iUKau_rwcm?*u>vyZ zAe9~k<;_t~*vY@n1iOOx%C>^79hJahJqn$iXl)_jXOuy(v~~e=@NQZE^f5!a*&)Nq z^E1ZP-xfWuYg2H8HypcOP`3VQET03{;R&3?&z4h^3t_YTazI>Oy9B`M9M|wLJX3W zQm+a#eiUR8aY<&b4|c1mha2lHD8>0jQA=Oso`Xs{I`m2u+dIWbv65>1Y<0#dFnX(| zvob>Ai%L1sjK-W9S7-t`=!kPrlRpTKCy&UN6c*@a;JYiL*bvtok*2Jbj>E;!}=Gr`zQ9t zJ?yY+Ni8KxVAb=^wf-LtO{GGvfrmrCJDtz^9<+V-6Vt2MKdcCc5DM~s6y#~Yl=!K? zKO7fUny^VNS`z=VYd83;8zj^#)@j=*H4PSMdvW$x6z4NTd&Nn1V6buZ_6VNP>^S$n ziR@TVqllRvR(*Z$R2Em5%ZV+$L792Ip~WYnd3&#STgaHf1G<|~a(vIDYGD?$I&^5pjJmSyzx?jyT2fZ>o&5K|;?rA$DW?*Yz+Ax>VC96F$0Zzu1_L&2 z&4S5d59GP{b8~9brkrJ59|XORoc`%Jt0*p)Vvs;>!Rz*w;@Gk)AHr%w%^N=0!Sj}H zX zAxUG4>ew}%S79YWynhtgW?+?1L79E;WdFk+O)g%PYewCB`QOTb+o9uW7?MW$CUoo^ zTLuIZMo(aO|NULl(ckJaQmid{HW5V`^;x<&kNhEzn9;>1=rqakk1}Du+h>qLz$^?2 zV*&)udZz<8Yc@gc&?;sz0L&qyLqsb*>WyWUi#miWm-l7hjxQ9PO;D~F$dQ$qoorL0 zh@@+|iuhS_VFv+JQ1b2jN^j4DPoF7rYU0xCD^TZvd0!hbwx(+2n!ov*zB~p>lGe|x zdi3+HAv@S6OcNCIrP=Rmy=dJ`I@nQ+PrM-oJeug(Y9WG@BoJ#|%TMRz4tm=(=O@=8D*Xva4#{FP`iS%eXV3-n-)We-RCZ?o#foX;dMmJZ+=qHLtw0`)e z)phjW;i(q&Vk&9R2kK-HaZGqT!u}IPMhla^h|M$3BixDKjhVf9Y)R~wOiU6MKI%-xc1^&3w-2H-twHceJ1`WPZ==AEXFU zlLOgY2jP)zWp3<|W9yvo^RC0GdxfMx@A=a6)c<-5u478!+z^p-nwKK@jmHGZ_ub_3 zDN@H~6%xip0u5J+F;dLdAtJw}GH7VC{1Iafzw-n;tXxN-K1R-7jD!{`7r77-z)zrv z_eWS(fLq>P%&jawC`Yz*Q|XDApA^@GCNAlVA*||fR2@th$h;v}*5px*5qsuZ8bO8L zt4DFoERz~~+}#X}k9m?T!Q|9Nnq_8gzd*U8x-#{VgSHOik%P{{C3%-iuQmf_2dhVP>JE?MKynkX_5k-MnjGD1W%nF?^0AN;4Z}cjmmNj zEf`IBt^U^-g`>sqOI;K+{5l+eE)FWCZ&m;uvt>PYp8{0K#O0gI2=W58UrqEns%l~U zyzh%ck(8!lV^s-b5-o%h>|r zNVek=V&OrDf0EE^+?`;)HxGrF@dwhu98+v4AtY|N1`#Bw}1DF-Vn#FeRi)iW`+ajb~@vm2s-#6|)N`dxgoQifD!QhTytwj_3idO&Q z=&Yln`o2Cq1q?&Y3?U^9-QDQ`LrF+UcPQOmGedVvgMfgffFNm5A|VPW%2&EO1eH?e z<^BDC*E(z6yU$to?)!Y6?e%TF0SWr%G^;&$R7T|4L?f<0!_M;k3W4~hcFdnCyNU&6 zVZUpyw7yG&ta$ONROr!}E2q-*hl_y60L_W_@|)5vVXsvnDld}=4-Gg;Q5B?m=65&h zed7f^E6MDjHQ5Xl36f2f6h28q%v+BUGQ5Boh-fGIX(KhpxBrY7F3TP{g(g2KQh}WS z4kjl^VW|6nP*ogBccUN1cR3Q-|CWHwLR11Z6#?L^R?NQ+Jdo^`)L`tF%j<9elBu#Y z|9qtZniBz#P7TlnK}XRr|ExGcPHnn4Wi@{P>@?46j%}i3g}-81soiSKzloA{QfjEf zQOsllMI(7Q@z5+>EH&rls7ZtWlP1s2TzNJgvvL3Yj;0zRpX3SaJ^zB&2huen*dAos zU6R6K!CJA*>l@U zCPNJqbJ1~52z;`!)StGzr~}T^l>a_TOXft*R^K;$q(Ak-pyS)dfvr*ra)y1fBY#78 zf|9*XC4mgIJ~-ofekwG%7u*F*X8?d&>9MoH#@!_#`!Bq`Wi(Vsdy z31+>`U7@Lq2S;DJ08nAo!S2aT$_KAMZoCMg0@-d^>Plo?n88Tp7L6^sgnDLQL>=$z zpYfmfZFBmZ{B6|z2P5wPjTDUt%ECc5R$8UgTI#nZ@~_rH25D|;@m8w#?vD!Xn6Px! zmJj_M@&hkS*hXq&+atX%Qs0 zk8ltPvSO$gx;fzO0x|KBTq!ZoU%k%LMbM*YBJAe0oI!j`M8}fT%Qiq89knS~5cjo- zrQ^{L=ABQk@H3X*K6@rQ!*qWEDUxK9dEnEDk{7ElM>INL7TF-V-nnoNVzto#xi7Aq zit;n8-@wT61rNSds|9&qc2#0uaEQ`M%E32i-?Gx16wZMKm^l>xF9Z%0{Khsh|D@(_ zm1c0FAK*AcNG)>IyRvRv={KGBEn1BuhV)V&M}N+DqQxa(otNTYo>wtdfsxa*v*eW* zeQmMeG>^X=Y-T91))5?go8DdJIC=?~JH!dCLXdy7TlkW)`fcLt*`e>M3<%+-b@GW2 zq|8OZa~1ES*b1vf+K`a!{^d3H7tulQ=#&63g4qbwejJ3wo*VeiG4Nc%inp+esvY~JpPZcuDFvt(q7GGU zQ)dtBGPyZr&kjznOV0uWsKm>TbXN(``o;Vcd_8MUtWeSyz=%o$#@jboFjeE@Z7CCViPa@k2}J*+qEKsETZtn*hU889BpVm{q5myD)?9-97ehCz-m@Ap+;E;HR zSRs)?vbpz#f36i(BrB6l2)^m1fL@kzr&pi@A*IpY?PJp6NnfjFe%17$~Zel z7%XZvEWAx8AhE;Q&IMLs2WFka3r`#+L7qeAX%hZvEURIn#Nmu806DmKQfE?bUUH8{ z{C{;e&2u!M{*kO!VvrU;uW&w!ky zccPsp7XKQ-f(ch2Qs{e*c=0@4uii$V20)2&3&9bOEIK3ax> zJaR<#LS;tl`;2|4@630=)N_RBAoucffUX*wpDZi+3LwusfxPXB&E*rz?-7_O+K?>K z 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�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

OJS+J9tVMazhbyCP^^_263lmcJ|F@}5< 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�zvI^{0uupf&txeU*3NE@1f1=y4Xj%nt< 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

AjF|~GSwYcTAk?-PXb>j7OSEWz!4$Ymh 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�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

Jmi>K427j;{ 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 delta 1517012 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%0A%A)!MM5MZ`r=Nl5=k``F= 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 z�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

ERUTO2mFVO&}FC?NOX>uKTftbFA6Eccr*EAQr-D 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 z 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

08U^= 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

x$V(4Bbcy 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

=Si+Y)DfOZ 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 z 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μk2T2i9=r@5Nyz}}_5(DI;4B(|&uNK& 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

}GNR|+O21Ll$DG!5zV8;-UC|Ku|EHOwB zx=0`3R*T8u04#Q8R%9f5$Bp7R5$9+mk0*`(_>Y)DiZk+zVwi{vVS+Ofga@I8DSw6# z7gk%Yuzv2?F6DCo`_+zAD1*21iQ>n020?FCwnU&XWS)kG*M*tu!gW0izgCLC5Leiv6lAOS^=gI!dNm7 zL6id0b?~T5W|R=g$Rrf8h8v=lf;pIiF@_r=lmj7=$w824NrwkDCabSc)K(EQl!(N_iq=Sqon|mOEHen0XL}c`K_)n6Md}X)%+8a(|Wx!H`A* zbuSnIfOeYxXP7vLkSEf02LXj);t*U(BXTKxRag+dn2`IWlH^5MKht}!Bu8N>o7%aZ zVbrAUIV)^+?5P_hw=MWkSo(jQ- z6X_7RIU@mBi2E2PZI=+S-rf)%KkqTO)VmhWq z@q$aLc`7tz1~_P)$t54QqauTm$swccSU&xzb;+4~1rdF8TA9hxqqmtr1<(MqXqV^F zr-k4(4G@vT|5yv7$)jW%sgjBmFiIa#N@&c+5HFZ^5|%*kDWORwrRDe#CyJCSxpwg~)}9Qa2l zKpL#@8m}%Pr&x#(_L&{cX@rqykqGgJTb7Ii`jJ1Qr=0~gLw|QGmnxUZf}{d*qjV+_ z)OsGhx0~cg5Vu0G@|v+4I}#!|rw@Ukp$V8$x!tm%iToF@?z7p7*rAw0*G3(+b!E4P@t zu@@>J7;9djmUs(iZwz`SJ!wo3k+lJ!v;^^jzDf|o`hT?v5ql-7k(vduSLhHAnjF$P z5R~hR6qmWc8@H`WT3*R74gr~IL;%(Jv=Dl9$&#Huntk*)yvf0Uf{TLT#)uKovEaJ8 zMduK4|7j3hc}n;bronr@V>)r~Dukcg5a*fzi*T;VF#t}mUj$d8!`r$P`ZMO6rH~4D zphKm#Fn_c4N}Zr15g4hz1M#T%(5@0PDE6gWC`j_bi2As0h%f zN=32-F>%)FsO9sjhMFC_JAs5^zB@}O`HHn<`w+;R9IyJ7Ej$npT)ha(J*2NA;8#-)^9MQD;Iyv2Ix z5K8~79EXF%5V6OFlA%c}5hnSXbSogOD}1g*V?mt9o;;X-%!Uq8#3y{a9&u#rD}v)n z!+*)r$pdl852CFCajvrbV(tnN+;_qPVVtWx5HOdc1yOhrx*=El$;SMWN({FWxxNT- zu^z!@JIup`lEDPA#(#XP6gXv(OCP$-zydPE0wJd`Oc3PAup$_+SkqK^HO|M}&Y>8w zT^SLC(!Gb)FdfmF5QfMd6%omZ!$R{jGk=Vr6MPWoDz+0RpSAi(5rKjFd%ZYXx(|}Z z?mW?NSjKSc&<`TOx1zuh(VFVE#`H|R$+5Kq@x>6FR81NY@GK_|k+oubcysg+FsHQo z|GdvdR-_c2(=Dl(y3hd1f^3t?PG{w8o6o0Y8 zn~0H}49OMid!t3qI{nqvSJUSKx7?=C!X|ti-4N2Lz$?1A$e2KArkTlNbp1TFxl7XI zSyQ?^5T)9=CA_ePJIR^(U2YB5hCP62*wfD2t8@2&7$Kd^JP@HA04Yllu)HBxX%O-| zzYHG}?O&>yit>tsa?6|J_TZ~j=5px!>(^@`T`*qvl3IQ71*jwsvO>!6IzHlo*jk#a-`G7_IIWlM?)3HZVBY8!!01l zedga;vg>-{3Src&M&Urtq-liEQhw(sx6Q@O5IDxnVV*+J?RzI$*$5$KJzC^R|8z*X zMnkH(nG3}Js=H%z_u z_PKcbM>L6`n7yLuG=DSzpWf{L?pTu;=nWyNlQm#-goX#eT8RJ!OjrQRju2T!!cl;M z7AcVy$Z0cT0HENVdA2xyR}0jBbWea|*TmzF6z@uoXt9%0E4dvee?s?D=Vbr=?=K1yC@AewEsUVgL#N#r#*?)P!gRzyJvld%JF$g@4raH~(nu1ckE%ehk1p z4q$%)7~vZS5|>>7S}+RUq&)4z^}7~!HJ|o;MqRI+g@v?P1)=82LI5u<@1g{5z>X*c zfx7d;#39~S@Mq1JbmSKy*5$JRr&H^@*7j=O_yZ+L$UW3)G`o%-CyVM4au0|iBgUpC zGRzBz3uf)9;S|`kN$>-yIQU{2&GpWVt0r0`LH*&zV+9 zR=}veP(TBgH64O#fHNn9MLv!CBt#(R!~-;s*3zP2X-WYOiay1fRqIx+UA=w< z8&>RCvX^X$7Z#UKumuNy>P0!Qz*<5Kgi<8%pr=+)R~i%mIRJqJEpxL326^BCA*`Sr zK&E)W3CW{Tl;*UEb(9m2AQxQps-?mIX@jCc(RBrdcFF+`7H1s=MZw{v2%Z%Bn_T&F z=FOcyhaO$}bn4ZuU&o$Z`*!Z#&0bO9fHd1eSDrX<03}Nzg=9g0B_c$q(AB()v_x^z z-~p5?oV~gtvRf0R;{?009LUcp{4wy~8m_9e3ohM<0I#GDsnZB(g{&k3=%bdOD(tLvP&<&1T#!A$0V~%GtWdbO*PkKvrRYOgfmV#=cKbv zJMY9ZPd)eKvrj+&1T;`V2PL#nL;nv&G*LwtWwcR8AB8khNhhVWQcEwzG*eAC<+M{z zKLs^ZQAZ`UR8vnyHC0ttWwljTUxhVRS!boSR$FhyHCJ6HcjdKLUw;KQSYd}Hwpe42 zMK)Pwmu0qDXP<>OT4|@Hwpwei#Wq`)=8P8pe|>XT7AYikWk*Rpkq%3TJ$9%;VPLla zl)d60C}iiocQ{?S;)*A=1YUR{q4)@Qnf&v;dFRCxh#&^MjDDc$f6P7kWV4@WfbpIO zKYS|-nFuy52`S%4S5m4;6ZhYDYZgEH-~*38GFc_9S>ETrfBt823oH6(mi_t9fbL_( ze?z!8k?V=ife%!Y119nWE=kZJ6zowJJ~Dv+1C(SHL%2Z*MW~0hXhH}%5Mc^?u!*y5 zB84x6;SKK478j-v2LL2XCSth58wf#x10YU8AUH%K4(SOKaf+6ZXOJZB=m7?q$?zPK z2_D2S4{G@X3VC>gAmDH;HQZtfgU}Wqf4r~{X3=37Q|QBtEaHd;kzx_$I7jS&f;fZW zk{t_z#~xXbAivQF9(Z^~wERJhAsi!Fz<9_+szs0~1j1R;c*q`>~Mph!w0axJmMK?2cO%Svu!fdR-QeLp#Jm00kf&kJXcYvWDmMOw!l4TVzoFzjtu}=|dqAmDLAs*K9ND)SI zoHp!=9|s~&idIxQpa@X#2=O|fe}F;@S180gH{y!&fYeUpD@bKDg3u7|AQQD9=neWg z7IMn;A$@pZKppu)g{q~dInd=rlheBafMZfq7hI?B_&SC2x!Dw zS)G_qETsL&Wy7+F0kzh(uWc<_$zl-Dt~7+}Tu4ms8kRiZz_-55h!#UQShVOtuxw#y zIoE<%5n7Wgq78routLv*e+)pRlf^C(Q5zbK7&Rsiz{n^@6q5yD1iGyOiEO#DU8b0& zdQ&m&Sq##ExbA?34bd%KH1R?b7WajXOv_IVsut#k(76j)#a?SN-T*YvC=H+p^Rhc( zIF9%ZJ_JRqPaW@v}tsFQsi^! zD>!yD#4uGkI_K=GDpu*&MC!|dN%$W?r?1%Fnb`3>5&Smdne=i09SxpYo%3rMEGfG= z7cSC=CeKQ2^8vD5^^2r5kVEWBHsS#SpJC_SbyFZKNmG+w0Yyi$(r-<3Iwu$G@_2yy zWL3vM9QnpfU2-W_%dSyuo4~mhu1#-=YqwIEy8Y<|HWrvhz9yZFE>b_Rbh~=!sj16{ z?m@5N5xh80bKsm7xO+B&!mqFyn6S8+AM9iP?2Wj{?OQrP#@on7Miy@#Zgq9=(%Fuy zP}lJ`#Pe~VugZ8~9y0s~K~BrDqFFgKFjcS=S>Zcn~$ob z>B0Ms%sw@`X{bQm&wKB_6R3XM+6@Pa6zwr7pM2AI&74ss_bZ(;AKSl}&Rtp_W!h-{ z^@zxZR2vK@92f@FW`PT=q+uq@G7#%WvugyvH@5=gb8;6;l&^T~6dNT%8|igd;o zD3%Gt1R_-@u*3XoGImH)YvcTvKo zn_$`EAy992b@1u=!X|x+{j<=!>ymbP341QCR^GMZ_ZLa!0CtrgpsFkOtL>l}Qv6aq z8y0a7=m*J{pzu^aBVhpT!jvEQtCZOf2J9m2ddCoFS$1m?NS=YFtZtgKCY{d$$1oGq zuS-1m(5JXs^>_F2WyJ91r6Ijn`WZVaUt8$D@bea~kSm$P>0NC^0*u9L*a}YnE&;Kx zXLca#T!yndRzj{I(+u6kJt~Is9vYPtFnhzxL`DqjGl##0b_n?EgTLTwA4j8h11 zo>6Jf1r{j{uXLZ(+o|VDD8!d621Xmu6ycWvkGt7^BAcM7r7+D+<@&%G$99tQOsp1C@1i2j0)!c zNWr%esl7JQ-;(v75X+H-XO*vXVGSnruXL9#vJ_FY=#ancV&_L*^&G#L`1UHJfVrF( z`qBF$_Gqq^P>Mk#=9$3WhDLskHN_u5@>YgeBXMw?xDul%L{@#D-9;z-+e z<#-R;a33Ly;s9fypLU9ztMF&OI}suBs5tQNr7?5 z>jvn2a7{z)b1SP#&V*3lYhr)nM@Zvu87_ng1M0+gU8$%&V+DUR4Z|tXi#FPCtSVqV zDv#`wOvu=1lBUI!yw9lAh3Oai(xgqR3=^_!@F}(qaLUUA`?X46q@mmaS>^y%OjZVs zi;7Qgu|7A-bs-JMS9jjo^!rVUMP{{Q#LSh58MhJ07RN-M`(>x08OMui$)z)Z9V0qY z1+fD>4*-d6CR`e#TsxV0+;#b8>X`Ediq8y1Z-hxq35DoNxHLYIB>0Yqc~ViT)2}%l zGW5_k_{~xgj}1gQ{5z)$yJf59WGCfHX90e$qvlH6<}4s{C~y2ttHd1M@Sz-Ro)`gQ z1$5--Qi+mI)7beRno}tlb`~8IMn|SoSIvB9ms9(uPN01!IGLO8$(JOJ@$ zwk31KCN8b|j7uZo{bR${nweBt7@=Msz-*IVuQUT7yej6qTL0S_gt#mz{h`$|J8XBP z-Ti7;^oLH$hmD$HTagdX*Mzd~0P2Q{3+AtCnG%4oMWEk&3uLih-nB*3wcm2F*~xVv zgOgQo5eUHbv@brceM0!w&O!ij$QRfkM;GsYaeenUY1WReQZP1#;88bR83^U0-zhi5DBbU^+xhcf7cRiByEQ-X(8+-__A95;iG; z8ttujZ`G*7`(+k0&(0U_%*2e5Rm;r14L+|c{9VM`=pixc9cHeDW&uy+%vntpm#n{AlH1Bzz57%PHYPO@fV5s+kg5 z!z4jNiENH$yF&1D@VoC&nxJlzphfd5X##6)`WZlcE(_kwDhF%%C8z~6X#>7?1OxRh z5$kQ3O$iC=1x)6UwG6?V4w-(b9hAT0(&n&&C%XwHDrQar^yuDh*AIcyEtgKA<-;&`{p(8WRt+D>b2>+KY$v%muY7-`Y)n zZ1WTGOM#TW$Y9+cK}qA^w;Og6ZFbnMZzp9YvU6=n3#NITdbAw_cuIoj54L$&13^(C zYBv+G4J0ZhM6Woc-7lEiohW0Huu#3G?MKlr_2I`Poa#zehP{q^cX$dw7ix$n!`m{1 z8>07tp1rq|2uxd%2{xIDW(D4L{M!wf5Ptmm4TezPH=$CHVDL7#jsGf3fau{*EXyx} z$6?C)p~rVAIyZt{te93KgD&_{6kmSPx z5D7J%(!u!iQiG~_evg_N&y5Hd5%5dzBER{3tbT){jS2le{P$;d-1B!|CJv8u zKmC1p_%{)K%vKWHY;v4|KE@B;pe$UcFxuwg-}ZsuB_Dt0qMmu_1^x_KW)12bKdI0p zcX4e@G$zh8{7pvuxi=Tr5Oi|Pa?E;odqgUpd^h^Xm3VIV_$3q`S$kWrnncxP=vpyO z0aYdA2jh`Mp;G*x{J2uZJ74?$R@`6^uOIcXLbySOT?HOH2y8;A|2gG=%^fj11?I*9 zFT<7(n(-O-q?m*(875QJ-}dJdgrVa3Gzo6Fk#^3Ikr}Glaaudvdx$E#5#Y@YU7@7f ziB{JLN_f5}-a0qT2Vp8N%WzZ))NR|Vpk+#3U^s^JHX9oDbM$kGxeDz1cSL zN{dBv79>uqjavvWnP5aI@m%B7(kduP}u3S*=SZ$5eE8x?aoJl`~s6MQ4?dUfS6-bg`d z!6sAvect&%(8-9+JuD9eY2di3C2WufFRZe@T#aKU+6j76L|iYcu_bym|CX*POVyUC zttyO_c~Wb~U-4L~`F(-yk7gVzQPL#jTLtM~tyk$KEH1Ci;2%p-mO%>!M3g>8ehraj zVfTC7^h8^}ea0nDzGK1vx%}x}SqF$L>0a&g4*uK`6o;!S;j? zVk`V#huIoQdbF$&BUvf<^wvkAc%=b0*&e0AGdf$#!orq*c62_=t(9IGTe|?yum8n< zzWsO2==>Qi>M2`Xrk&$2tm?merILL$wUwV*B?Wo1o^gHaQGIvu@3HE*K0E$QRy8Ol z(RM;y#O=ngj45>wqgZ3NSDM)U!RCGfcGXOhNww{lLBy)|#-ws%2alwU`R0ZGi8Cka ziy^NrYJ80NaOcqrM{JIUU2W6P!_NV&NMk;wu2b5NL$oC8Qh>>?ap8<9ZrfFY-di3S zNFkDqPpN5%#D1Zs-_ItUi8C2*p4_FJ$gV_pXBMe6UXA)f`g}*{$Fpy}I@>S)-WxW$ zRRoSV9B6&89osA0r@Q+`hoQSSA&@v=R9l3*V>o;NYpTr0xS$jvBNy?Dztx}vK2E5+C-{1Q57$;XD#!!$T?NAp?09gQm#twZMn$!Jw&Uge^ z0^QGM2a94CF%gof=|2RX7s!z(OX-S1?P~`3TE?aAO-49ysAQgw{I~+a zU_1#4hBs-ZqT~i-($HY!8R=0|JL4Lj+9cW zkbZMh{54B!oHBeWIe}V2RS7Q%|$)f^3htO0@5Zv-3Q-E!?RFx<#0@Gq^ zh3ECKsB(FU{z1iG7@G4`J!9CxY$i5u10=a~>wtJ|uxQ!g93bHCC3r5Nm74P4qZL%%me z!I-O_wkZ%Q@N#R?#yHwBvdPTCW3AE`!NIdkHxUZ~xBFvYmlmo(PAe(Ookt)ev?12ZinPQ2frPvmYRqZYH3nAhc7cI6Je zYSnmQh+=Tzlps3rvBCF5A=OI0&{a(EOS>AWeI@AS@4Fv!5_4pB!B zH`jBmz1VncBe_6(UchAE3Zo2=xD^USe^oAj{MYjM7kxq{vCS;cZH!UOV>tWZpL!Q- z8rZ9GM(pbBZt{6hfES90N(ugEHXpDhg`v+y6o(niTK@2O_;69cB+80|wq@rcB%#y( z)HW91bG^jrVcERZXepBo;8(29B7fhJ@yqYqcNKEQNQkd2dE<%5`1d73vvYGV;7cAd>Rp+wF~{0_^a=_0E_23ZYb#;F{X8Qi#T1y{|ny)o^grKmLorX0$x+KWnM`+f{MpM$)lUzX?f=2q}~UEq+L*Zor#GPUhi-^Cx&3kMm4FE)nnm<0UB zOS44W--E#P>nY5i%?3&;*@dJ3v232eSpS9{VWQ%{h@IyiRTY)&O*Yw4bU%4GF8Y8g zB(dXy)~$*BkLZSAEC@!pQdR$N`CVY26@UNM_(m_|9~TmtNd!QbKHjDQL=k6?UFGT6 z(VtT(7wI3xuJ&fYKWl;a_wAp5rN6$3=h=Njp7<$b0Cqe0$qNCMteb+Fq|W1T2rCnp z2t)A3O}oOgBL5foa=-2{S_!CrH%eF8lO5`++`= zsr$jNiA76_JH+$z{>}48kKA#BWqM-E2IytNGC5mb1c%1RE|eIgi$*UZ%ro)l2ENld zd0b$#W#`r>VC7_igDKuiI8kkSx1^|n;5pt;bQTs2YdILH2IL9Az^M*wE*=dYWo%a0 zxbHcfKlmW{33v9|BS3t)Zmoww({dCY@$D&Cr2EQ0<%g{w%Vc}Yg-@0xwLNm>#eO=M z8|08sTji*pLQ4@(aZfS|O~m&Zic4NA<9GBtd?S8-c17wv4wdu>?eE4Jm@I8ofvXgs z`%ad{5jA4J@Rlws*b2+#RcNJV$$8R6f7wf^WhsshCDpW-J zkVLabx$3pEXOrB73c=E`FE4bEHJ^CeP-dx*BydJZffrr^ASABG3y%;Vdfsl=|A_w4 z4Z|YX&y&7ta(4;xsZ( zB2o9gSR5gv0BdIWEgtnBxFN|Z*SC^9@>K?O5VH~PozD_@MclTlR4U|ysbI0*Z%=uX zm5)EG4AS9(dllD>z}NoRGi%eY4ZL5f^10y8dbOH?t8bs=fHJ$YV2mdvZ|3=OEmRpG zrEql8#6@?96*oJG&-XI=sZ@alvu={Rly_2W5PV)o+gBA|PXG8~-k_-(`UzL%;Vb*w z-L?xP=H2fkJ>*+Xp1V2e_m3{(&vUU*Dk>7iURJG>v|s@94L+!HAYFF##I3mjSTsMr zv=z6zvuv>Si8**~FC)j(lm2X|$RKkgXodcjnRZKyE`CZ_5%IHmKsLyu+CmNCevUxg zhONbhX(hfyDof&2po@<|B}ZI3?#0ATmW>oc1b65yfmbx_B?Z>#yIt$4jJG45CB5e$eQCN3|=yd%b$<#X9rSH=A^j_X3agfz;Dq_B`}~AGwHi zOS!}t{h`=3WA&=1gp2AnVELn2h0{;YhTDngKJk5;x zuU6C`SK<3?ApF82*U%L?yqiA1E|F=xSgP!+0mf}z$T0E;^}AH#FDY&@zY4B%@&w?>-V~SYj43h>8X5k{CmnWM{}h1&O~4>lu|;nX8pDJk@;iaHf%(g)wR^n5DbJq> zn`88^72sf8A>5269>wPO7gN7Cr9pI+d99WCm;}Q$U#_p3M!I5!)2;aM%7Qm+Petkf z70?B_aA&U?#}jbvNzKB2A+XVbo+gT10a@gg@wuz4;S@leJ4K8`8Nt-Dg`=Nm4MlLZ z_`zGmxRk{QnC>@zXR@lV2E{UlFJ9TX3QbxCO2^#GFE7E5f1g{|e7hK|XGg zF(3yykgpfuWVz_FSB-~|);1%i{Z5AHkGW= zmn;HX^o1KZ;0HwN`-P_a(@k(zTo)|T%&oRfWybX_Sufx?+9lcP!mtPn22N6NK)AAB zSa86y5oeM{Gp@s3!M9tD4A^`KarVMpz8>KibipZT&$I?>rPpdeyI}Du0%t=KY10?# z0-kG%Fe8(YtNTJtL=hA0Sf-k1_LJ6hT8%=a@GCO@qP@O+WxohJ7>Z;x8#rMd9R`F@ zEN6V~b?=19<2nd}rqG;mQ6`Q@t7N%0Vr#UT@O(Rt+-^SJVcqr`qn3%QX~P7M8MGbT zVzmf(Ouk)$^SPdGAkvBJBJsIfJJZr}G~%Tzd#lKfh&WUe2c4q`7s*bKWZ=py`p@!G z@ITu!M8FzpIZ+0LgH}ppbku=SI_A703k^1sP@@`)QuQ^)g@mpsm~egs=!4#8C(wBnmobL}5@ z`D@AX`$(nW$yi{8ks024-R3(CexU9FS75-mPfeH74*Ygm3K%av z=0Gx=t+B?ML~k1d6H-=9zv=X^i-)1k(Uy`u>N;L~*1xOMt|^7HQJxC0hErssp$Uhf)*{T@bF z%V?+PHS18tQ6w#_r?w=+pr!`{e~uG8z9bQEn10_t^G=@*dGIgpjL3M@uAydfk4f0x z&}VRGeysd>IwteZEc^KEcALh#XCoS2Wvbv&FH1v?-$6R;Q|3MK^#U?v(&uDs@4Fr| zfZ}`o%4}#2SHg2V#DdKTed!B6mSjwB1#5>>7^-ufG5sH&|Vbp z?Yr{`e_~C4C)t|j^ceir05{Z^*7mA*RKnOJ8W*ZcAso@;1Z0u-y1?5&-TC=hwoF#5VGm%K9)~9KNtWQ77zF}RW zM`YpC&cFMfnF}v!2_rE4FUxD4bEtyK_+P1JZ(|8w%MEaDy)p660?uz{C-1?87-5sy zN@$CU;rC3-54zrm2eNXy8dq{WB1;P?JS2Ihrztp!<{(4g8fM9bbyqq`qr8&uY5CJ{ zQhqsWDcXg{e^uVVCG!)z10f&2!LyQ}<=oP28(*jE4Dnxb+_E0~bDuvWWGu=P9rl{p zC)e*&(@>!esrklS@1wY=?a%$j({+~>W}DImvYG250%8xhpEu6@hm$5XC9Wsk2Au!z z=*ix1b{iUyP0pMp>%Z}@m{cCu`sSD7s(vb|GHIJsc14^a>W#<>2kM;==sRM~NH(Kh z+o4dQ>tPbU;>~0JSA~r6G9f6)mdqQ7wH@M9B!!@O47{Eq)+5u$5!&fYfn>E%>G4ri zS-Rbr^prRl2!sTeUMy;vgkF?MbZLAd-!C_1k#JlA#ZNb9_UOxR%3FS zdVBHrR<_*b^st}e7-^n1Sz$vph)Qy?gvoG{j2u37FiE$E%{Dz+m!bw8)kd1~Wu=Y0 zEHT=LCSvt@Qc}}&d+ zv6yxKu`|6Z*S#6vQR?^fjpJ3lk2aSd2THrl)SFAVw3Qj%iV3f*km4(wOdB~DGD}jA zK-=MK%6V^s1^hP|o!7IlxoAf_)`KUhAN)-XDow@5^2_g>oJ4&hnGMy>u0|tU!~}dd z=fB+7$*a&fTlvsx^|q~*^V$u!vyxdj%uRKSS1tBn!Dq*_6Wmu&{7LHS`pt^?nl-If#vV%EgdXDmDoxN1Z z)U@DSB#&R*)fuGD)|b>m|16a0S-VA4gN!xGXD3=F_Fb$ZD9oevQcphCbG`2_O}p?0 ze^cj7H=NTyz+b~X&1u4(zIu{v-e8wlN?w;?-Q~*?m@&ETPAHzJm;ts!=U?sGf z$yz*QBw;h8Pus}6W@-|RU2wZ0y4p#=PnaWl)1e%qk=(y5(-9qIkf6IO*koF!9JGQG zSQyC-*Y*a>gbQ1F&%=aPR+$r9Mze6BcL$x zKENlF+_&qOhIewk4wzBHocOU5eZwohbhBo&uOsjAr+?&8EA|Xu1hwU?cWOe9i7<5P*+YzqGS&NI_-bSp&dxjQv`_ju7;Bn5LZh~qf_Tq} zvv*yf-@G8>(2BMN@w}#j0|7-Q)4|*#c0V&->{YcdUFj5-PrYN4(rID z3qq|kuYIh-e6I8APltM12H@>>B$YC8lE`L*)PhF;JA0$T;`DQ7MfEd@Nx<=t#sd0h(kY-8S$b$`%8 zL8}3PPhLR8x@8=mT++v@?SI!-zp3~LED#XYbD6EMsv+(t@?Jw|*0$gNy9iKnk#X6e zxfz1_`;W0K?hwN;VnX&d|5s@)w=>(2P`51asONQOJ@ER&&m|I8No7+vSM;$zYvGJ0 z#2xX`O8qWb5MLL8dFkU)5O>kiPM0V5fQY#gTgXgb*8q^y55qJdlqKtWG!X0zNLJn= zJi-tG!L?(c*tjfPr-DJ^%m83M>_crqfeagD%dl(Aql?fr(D4F-7Q%c1aM0L7yUGU#8>rjyu-wY7_)~p#&!F3s0;XI60IEA9CT;)vY;IDAX+Y~wh2u?)< z(*G$_)?E3tcaPo*DX3=fjejj7{~m}Xh2k%dNfawg9RaKyl}K*f=tp!HMvymKaF~S? zYz@TRqZ1p5csA>HsW3qLNl$JQSNS!*HQd5f%$OuWRfi<_cYa&mr1ha{0H5jA937WH zdG*);Tu=(TwWhojbo+FXs2MEc>V&q@X`6e zztyQ#Tz0_;_J#nhiGkd0Hv-%koDm~#!oL)nn~)jvnQ61r8EU(7N5ZA&Zg14pSn5}R zS`or}{_tf)C^N6p>!Rfh30mj0x1@W zn1gM^eQb*LQ}5hag%RoeN4zwhztU5;O%y`P55LxwZtI+l@8I(Mv|d`8%N^50-LcAq z{6Non9UgDIm|T*h*Yl&xu9KN0f}U!AL|nhGVg)7cWo@rQJwkq6WeLnQ#E;zlOje)_ z2)zB3hVfW-nCP;CpgnC~_sEckPX?+u`O*a#8>ijSku$x7;sTM+?KLm@dHZ>Zta`^r zivRkPNvg#qdVm={$l>;FfR9R_Zpm!wUt-D0<5s;tbBetOF`$1CaYhYkA2PtV74(@C zvxNz|Q(gB7+C`fURBZvuh;I{}+5WpSc0Un4+20bT@Rd1?SG z3e@Y<1c~b#!L#>%y1PSX-4{vCl5RZco=kRz(#JNK62y<=RvFx~p8tH-vIqj&fSFt( z0pxB9l+pG%#DPQ>^tn=0?ZAH=Ag&4vE_P4uf_JD!_YR9wWVEy#f9VT{ z#RIu~xMhsQ_=d*WiV(m8Yd~87z|sO(x&&nuyUzp!p&&5$o(h0xiS6Dmnc9Ivjx2em zQ%Mf-V+&@jruu(itwI%rYM=G#c10g}|F)ReUs9!H9Z^M!+~ zg|XK8yx{L@Hp~$=6=87xWuG?pw8h)DXJ4sPt=>Jz#nj~0Y1ElJ-|#_&U5+_`+#1M z=O2L5r=@a$diz1ZKEgA6jS-t>`N0~cWUP2S{J-dTJRu;*pmOuxHUtEMC6=p%fC|G` z3^IZ+%bqH{!GJBrt-x}_Gw$}ch=33k_(lRMF9J}=r{Fq+7@1k+a96kmJRJ-0zp?;S z=h_IrEEic}#)o4)E@vv1vU^BIdP>iB3d*sUp1w;kTr*PpWf=SUdL8Qlua~^=j^L(g zc^Pd!)TMUc$a0?t`%;{?vbxGDhx=US0V*CH2G6`5BS8PUesMHTUQG;ek`Px|p7~2{ zmmRqP;B-8cLz&l-)Y(XvYCSK6l;33Em8w(+0My-M@O-lI5uD$!(zJak`h}-Uo<{fO z#L~w;XetWxY=EjV=oaYR}C`YDL4Fyp>g*;rla-bM}{|24}AleQ! zP$St6rS(+h%I{lt&Y&Qa+sUARn9jY)1F2LEh0qlhCdAGBc9~+w!D%(QAn~9GZ0yvb z3~D#_bl4ST6?Ss?2(XW5jwY}<`3MFKauVIO^$m?@-YDdtk19A7fsF;x!lfa8DqjU+;^uYR2Jn6o zAYUf#z`=5Ys)pz2QTl{tMy)p-Dh3rq5CxXnyj%864gudZNm{c>0;K>>0*A>#%+5V90(&=Jnn6#n9w&u}>mPPktO-S5U`I_G7E zV5PkT!fHA;s0;F|hvGdjSziCh$Ip0D46ymqCF~ahFtrs%I!~; zhjukX>8=O>XeP^!%fGi#z^>0Zx6&}y8RiQ zPN;(IY>DzaRW4`;t8ByfE1}r>nDTnt?rWxnGX750d~wZZpEonl`*cBTq{BbsM%$-9Z)PK<6|y70okfB0dpX%EaxM=J)&EF&XGgvw z5yo9m(Oe}j6y-vn@w*?~jw-LSeU48SFHaM1knn7{RfdXNQJjc%j?%Fh@v;I#va@v7 z3D288&V4qUY95N~8GYWvyiYifc)|f_G&w|e|8CLY_b#IWT+>=F{%y_BZp(5RJizA2 ze(P!%Z%)MGPW54NMD29yW8%kl^OHHrexJS=aGMX4=5&%F|)wa^pO^YYH|OWrNd zS7U(c99aaP;ov&p3c=UZv= zDFE38#4*1>3|HqZF-&v5;#+|Zea)O~&BJs}IWu8;$sehmV8DS8D(4~EViB?aM@9Dd z#vtfge*4p@C$JU-RJ0UGk9TN}t30%pP5PaG>o{#NZWhK1j29j;yfbb3VmdA9BTHQq zbmnPnY5i zOA`Dy+&bN;_<%7&DeZ3ceVN+Ixml=#dFt?3W0COA=5(!_lCNCmmPcDaW=M zYt1j8%q@hT$)70+A;E+I%9e7&&t~%H3McW6-Sb=^UxPp5i#^87i_?5}m(TVtA0k7w z1%M5uk1g}Po`!KN^?u~R0E=mNo6eQ%^o&KFNCmU-9~R9kpF@`-VkBE>$@9t!MF<7$ zuDFLNaaDjQhMr4u<<)gce$hpYT58rs+5O2|*jo5|XV^Uc+E=O zZtBO^GUqnJ#4)!XZYC5Dwu`?DTKVtY*z%iyTN9VQv(l@J2tYzkc&>;JL;0W2HD7M0 zS8PVs8NY;I_U-)lt?9|=#WySJ|G8d!@c0~R-XSXH-AGZp!X;7kvEyP8$&$Ue|G~e4 zk${fg7wB=n1Pu~ zhY|S07>2Z<9JCnl*kyfXqZg(!bM)m#&H3}Ihu2p1`A{r+yugxguFjuB8g@dk>R$PX z$mVZ1x(e{(2jyGWUwOVxSScU+)bX@uO{L`H&)8qvw?A|i$;4hWsq;+U=>BPW=}%sS z{NG!1tH1%wQzDq11SP==$F%1UrX8!yi za6Uo2o`B)AmXTapn>38ACAmFw_GuyycPiE|XTny1FJ}>=T=9}g>_c~=CSj#KjoqqS zW!#aFAnU@D@#j@mWkOnm2~Stetao0EC@alPYb=G(34)%0*+N#wl40j6bvd|mhSQv_ zuE_<5a{G3&(qnZY6Q*yN1q`!$&=X&BJA3dS{C#Vd%D+*ce-I~7t6(*K3B1twJGLFh zZ`s01z>mfw4cgf7CDSBA=Z)&sR}b~>UwZLpf9u0@JeOYY@$bEFA2zMD%1Wgyka^`W%`g8&>|22w7l3=VcEP!psXOc?wl{f1L%k`bSDNX!EOA&j(>=w{E zv@bGf`11u-d7d^|;0BR{>o zQF8Ymn_nr3)6B0dNi@~3{6_{B0>_h`nB56?V|*?X$$lX>#hhJjNA4M9F>~jLY7qrZ zW29EaE&W*lkBv*Q-h{_znAdH?*hb%vli9>>+GWDp$6#3yZh$?%+%+{(>l;#SF!Mkb z0>(^?5#tPd)bojj+h67xC^6gE=mG4Z$^^elF3eejTkOnixD0mMs_lJ4JAR zg(HXlF3umsdS57Xx?Xu7z37!x#kbM%t~h|!>QyzXn6jrcurUkR6C2)GP$m(TDK2Z!_9JzLHyttjiEnNSG zMEG;lcGXvVO{#o6Jl$IQ=Kx!1eXgu258pRIJFb5}Qn%E<$xB)W-_qdz=>KYH*V5Pk z871G_U_J2{vUZVs0qOBs&8&_E))h2LmM1(f0&-DkU>T*5DvHReR1*zi))e|XX3X&z z1Vx_$B$+i&+nabB00>FYOPS9Z)x6wO-19@O3X0ebMpd?n(QhMdulU-5v*4WG&QSf) zpCEUQRER9#ecXG)U+vjL7;;kP@~1~R(=W8|Y~NLC{#-aBpb$BlBK}`Rp>a0_#yBK? z4HWqKF|{FSNVa<{MRNH(wyj+iI1Gk=`tKunoAOfkzYzR=)2{?3iE+p!XlQ0asG(S< z7orbF0y1wdol1oXENB`)B%CnZM$1Rb`JrXQZP=yD>0~9E6wT|hsbg-BI@>)l`t!N& z$fzub3*HpNbhbzkf>4~Jk}rSO6EObxq2O@ybrlYP$W=SDM`v*O^$(tZ>b(W|X6UIQ zvMGGG@LE}7D~)2W14OZe+A*7FFfoldwtcekNVsS!=4wib_ROeN!w7FtPV3;{7_6DN z*vgSrKsoylLMor%_4r*sbm{N!w`7?%{?mCeZ(C`zp)QfiVnSeY=;%hNF#y0ET>!kP zrTfiS8`L9_jV;=muHe5X8Fk)1=4_K=?ad+hjLFx&2h|P=#bh!}euD3p6{r(c0Dr_p zTruy7ut?atEwv%RCRjBG^UrHd_1ZI8&MX)P1Z0bStfW{Iqp9cfp1M?)r3f=+)+auh zK_{(_nOts}ZkK`^2lY#>$pEwY`Y@_gy0B`?K^c$K)meS z$O<>S@GAKw4^1De7rfltxViFo)wowfb53jLUto7S#&l zng_FUMaUbiFK#qy&s<-f1V44Kfu3&RdiRn zX|Kz)1gEM8q_iN*)LQI6YiIt*!#$KFesIiv|9}cPD;6ZL@?g$9J1w2sA5fk0AghPx zPsi_jhi|w+-0WIl9re&m9}|gx6!)^FXMK!2TSZ)tGz~8Gvq44}0ZgT(%&)Ax;gazn zCX5jPtSJUfp|x1zUSlacd3dC5po(E>6ktBoz5sr<)n-tZhq|K#c;Y+KN{Cy|On0GZ zRE^f#Ypy#yp}$7CjfR?&uBi#|j>tZfF?6W2$am^2SX%R}HxC5>A#vg^9rD=duUXtP zx2hzy)H%IYO|^z`?Ty7FcS15YnftWftfd`-zlreJUkMzKb=<+R;Lj25I1)c6uD8D6 zYEZfY8(|AVpAda?YP6dw+~2Br7+$8r0Nm=eyEzRElmz}>_=b5%(IC2TLpnU;3_vixF;ZoL(vz@~NWq;nq<72!;4&T>CYY{lj zQ!XdP&+P8RJ~ifipx_oq-J=TT1=9^P!e z?;n4VL=r2AQLDDt)GSJ3ud2PNJxgthHZh_xsLrS@)%k5aT6TWQs5jgI_$ z&-wiY_c`~u&hwmeU$6J;ZAi@x@qh^jL{enS)Uf zY8*Ed#h!QV*#=uiCiF?^wLEGhQHgQKo5`IOs2o*1TtHOoF@c7{XjkJkHW|HsMS>U; zTooCEj*T4JVjMjZ`facp51oQWnRb+bQyUs<3;)|Xz{y5Doh{9~_OP!?2_|mN^&}(x z5!D-P)@J!wadkJQ*A`cPhH94|J#g_(YIRA_*$I@kLX>*r`D9}TOPx6%A_jBAz0`G!bE5Ef+#JgB6`IjV)kvIEle9FuM znKO_t%!XtHBdKOVLs#NWM%{tbkHXm7;Tm}T`$Ff!xF?T2<>9nXffGx^2djB*By5r^&zUI{2yT1D*qm|k~PmYoO{Ms!5Oou(lkF!I_ zpXs#AYhB3(0~UZjYx?OIm|cN&Q3*?!dx>n z2namx?w1iheM5hv6eABGW+JY{FGu|r?~9Zx4mv3ar3y9qEG#nBwCrq5$JVbzh0le{ zmWGvt_CzzqZ=#Vdw!*R$x#twv4RkV_%cIfq%=L21h@z$K;sh~Sj_rqmvND`@xu7n; z4Ph^Z6okEu0>l6@CqSUeOz4SAre4%g{90i3^gdmRkz8igUDr&IEBSekY>Dr}!{HOp zvI|xX6{Q|VY_ag+OSx^<3nlo=B~CCxC&emT^m0A6|v3f#SKEqFS z)J7?BLYd;6)mNv$Dmf7WXH)TGN?Cdd!sKbMYy4Vd1)Hi7UF!LYj7=uWh7}R}OPuP- z%*ifw)_#acUoJtG!dpjW^7+VL7p!x`f`6;aWL&AR_Y4tFVERIt<>mL7!a1%#Pp-&3 zeoC9!kXcgE+Sf3quNqKPFelc;;$A5@^9pfPJ8f9S?e@4>rNK_0@5M(>QID$En4}MO zOc&5PnWUN;1!jfctbEn=)4MSuvc)&4)!W*d4=xyA&!ixOYnWHb(c7AgCQF=D==?r= zErlgHZ0kWd*Dfof(|B)*wN0crLLcEW$mwMy5_Y`_Jox;ztmEPmXMbdN&tZ!~LG6S} z4(hNz-5!B0KrDN;_8f-cCpnw!nWK(asQ_>Xe|gR!uu{o1xx^Y{gh=p3rtPtU4m!@2 z%fBdgss=|PR1uMWjY6)}*dbdXzQ)UX>NxBOqKxKxMRHe0Xrt*e>($e?9tRnr?u6Hk zRcOu|s_+hz@K+Klh_$kgR^UOf^5u*bRgYJRen^&mCRE)iwz|tS%gNL_VY)6>B3gv6 zkB)tPk$w{Gs?*gZ$k@6^=rQVq<`vwq7!SDnQCK9^NNSdBpFPrB&)@5p6sf1msD}N; zN+)Cfo$`Kfj7(D~P>}6=_VW>dp#hk!%6m@(HZy}N zlss=W?SKFVG-5`Qe+B{?t4cZg1ZNSHskd+OR*Ja}plSyM$~v_uc<#mx(iRO~9~iuG z8ImpwNoRd?=^zqkBHNcOiiD-P)87_MKIkN&5c%n^ten-Gtm^- zlM33*X?OrN9o=k%3tR78?fbOZMSfoADUfXjFpqRAuEObCfoH8( ze@`LkhG(DsoRz)tpRzdsBY`p#!d)40?b(kuz?pkLc#PnApHJ71mC;|x8kMfC5Mwa zkpi0S0zQh!&kE0yj!ip;_F(evG49M=hXnMkV%Rl z;Q9?_t^s?WBv`@Y4nt1nYjd4z~VXaJYZ$}5&HB)@6Owm zYyIx%&nri=^0-eC#S!;zwY_spCa032(=Nz*Yb;3BTfw@_GJsM&VI_@ubrDeSB*Ocq zlxEBUp3l(WR3+DXn*Ao}W71xK17k)vo$D~mG=k3Z>0!W{$ck5W>musiT32eIqzQ^s z6rc;TAKVJ5yHV#-_oY4|X%EGsLGJ~_V68ney{-5Im=`4R8?eF~CJ2qfN2{8RVqFH< z4d!|r24iHh;z_~0d3rdUDfbNNI^1N0aOB#ON#FAA)gw`V@#Fc@Zn+Z3bJc@WktPVd zKS!_&--vpOT<&Hf3jlE|uXLmmK#d!R_B%SQ+SiM2njUNfT@LgkIkss2)qB-oifMJ( z@Rxf@@~1%ZTb_!(VI+y%MZZD8?26qAso$+hN2?7@)TXahgLfP1dEOVW?c{8qmu$qQ zBOlZ=A*VPK>jNjREbXk9T70-({B|c`6}>|_Gs`^;ez5=TyYNBV{$3Gy=XZvK>bEX>#?`L%=ZS5UTQ~c*} zhj0FZ6DWMX_vl#&bLJ28-XCHbS}@*Y7!iP@j}>ko4@6jhyn#@CZ(Vc7I!YHh5Iv;Y zC5Dn@oSK)}3gl&C}Z}*f_-WtcS^4=um|YeAN4i?hqHAI}z$}Dzkc`F>|^= zccxj{|L6(1&1G)uxdzfJ$zSw`M=W;5%CN|O4qr^) zchOK`@BMy2sh%n771Dyt3hv`GUF@(gv=4m6^ziERK+5klLXW-XN4=uY^g|S^+}GFM zAvWkQW~BeBQYbWN{7vepk$&*kfMO$7zkYl)SiRlpY~d)hM6~IxDN1h7c`pp3|8Q)A zDf;DU(;H;m57s#=G8BP+$$Y@TtkwKanF3))58}0LAZFXcSmq5&`$&Tz8X=QX+nF_; zG@9$$q%m3ZVHmeS6cL3feUv6@)#X+-yJ?h7yeo>W4w)H5A&b<)tQe6)Iba^)EFTiz zK#n~G$wdU0P$j^0tC0TF-!(NE*z{|SGWxVlA#hr$ARV`&hmlVFZAQ7K@ee^W=8i+W zApl7IH{?uQR%Ug8twb&C;N);~oLT(#JI4?FY?+L0IHW;H@pw8aL5lEv_~%_xKb}Fv z8T;uhcw;kcl z+P-V`Rj?^rr=E2Y>l4LCj%VEwo9aY z>yuP86^&*FKQ)Yl7D$9;@h$V_4!lf zkMsqzEkg{13&M^JP$je}xG|8v3k6tHf)JOA=&035ZaNE@ViE0HYpNAHx^^wMm!o-t zfhEL36~y{+>Q%B~qKv?eIET`>1oM#1!>rlfZOyl*VGb%ho^R{9T1D=%R4 z9EI#;aBEH|&IpnCT1u>s-k~6iT3Cf!Sv!RPw6b;24Y#(pxnVK;u)eu+Xj0eM=cc2O zk#EabVT1l;{Mr!Vqs#pQf}P_Fr^@&FhB?35X{b=m{5C}PKGPS(+>@o0p`0A^vZl{@ z#ep!ursJ9$6~)|=?pw*qbJ`T_E9(cpf1cjPQL#q3#M3CUSFtDDJT6XrbCO%6#7R6d zPdnOuTMVP)AeAMJw^X`6G%%(W_D}YQmEXTl*=dtYie~;?=4jS-bHl9&EeLaain2@( zb0myHV^6AH$0L=`d`h#eqkYQ@A})L@!@JzpWEnm-^GjBye_OR@#pLl~rCObB_+4Ns zq+)IU1j_Q-n)wgKZEuW8-^qiz_4E7j>%DjO^P#TtW0m4fe2Q`r^{0yF*jPeFA7|vB z;4y*x*pLZvHnB``E`1_E2}k27MCwPN$0E;V{+{Frg>0rk=usp964tX8CNeTO2U}o> zazUrE+MydjW8uje5Ue7WJ8VXjf934*0{S9od?Veq(sVNmFXCEJ4;r@oU;1WB80J54 z9pg-Xl#u+6zrSXsE7fJaefF_?((Eb81T|Ll*i&;tYdGGEEc^bcNl-Mrk77l_DFffFPb(9CE}o zNv_nDE+9&aYpa25z}tXkh^eGm$bm+y2)Z#oiqaMoHcK}0STkp`&4^SmOR*?*W2uYM zk?_jI(zB!4sQVNolg!fG1>LW_jnb7bH+$so;m-N_OjmitEIqW;o%?%~p4yh#qF7=cQxM$?JWuD)?;VFIp+{ooxFcQz}wHtrW z*hARj>ExemmUW$Y4 zGNF=1OKgSerthsHX3_Y*=?X0&KeI;{$hyswN+VCdIbDjG@@FA8E^UC8b3_T6_*UE5 zhb$t>!DC;{c1ZY_5}OcoO1Kz2rm0v`9RlW)z#0)Y_<|Ypg@zE>iFRX5ZcWi)k4x!m zZ0E|`L|LEy+4)|7v z?LIDhW$}!rZM!ff1xMExmAm1rF|hFZr%+Jb!;mikZIsoH)m`TEy)S|k9gme2g7A`` zm_g#URKd6dTN90$+$hjz9k~O5fzxsJ!-~9dS`{9FvN05MDCPbi0J<#r)=El>kEa1g zm9cp5UK{kGr#V65?sW>fsQ8G0Cg?mLZySqj3nkO%O%XK9)cxLOX7Z+N-(2-zoKi|EbomDt|L*yLu_m z-v(_C?~$>2p2J%}&m7BV?!Wo>;xe=vZd_Zp_q3C8@rr;xMMmA8oK}qSe-Y!Ij2rNX zSIT^Bv-aUBs&Hy~GzqWJ*UgP3eG`wZ!u6;&Wo#sOjZ+Gvj3Ee^~j$Xxm+kGCpaK&4on~LGVVyrdOGUf` zTCZ+nF1qkUqJQCWc)k^9vl|JyKuv*|EvV>MZ^_@X*4rBknjypg2^4qb>Ue!K==`1! zLWcKwdOVNYmag|wG->y7GLO17zA<=&Ncq;otNB7e_T|9|(C4&MqsMojw^e~g^wS|r z=l9jC!@{Xg{@w&X3Ds=DM%c{R_#jsvWXFP~FQ_V4guL{+cVJ9W_^A6U6AynZ`W?2m zj*_E(ymlh2oUWXjophgx9p2Myxh?-;{NFW*=|7X9p5H4X9&+gl|7oFq`~e&vc< z9Nl=CsS3NXEzqOvCX(ZJ1JuITpsZ0{OgPO(J~2Xk8iYz_sHXU+VGUN*Q>L@tRK5mm zyWeCZ0}G&#pxc>W&Yco%2~>gcBYYrW~D&hpiC5?itPn)XS(gVeme08T;jH34`I{quW339hv#pcN!vw0m5q+ezv6?23~-j_*QjS%3jNK^T~* zTlkM2Dhj&0{3MlKk)oqAUm#Ia|LN>CXdnn&ZP1&duet|i9vpxfIugd>B?wXaW3y5= zXsikaE~BI-U2=}Sj~|CZ3FFa&x{JcMQ`20S2gW!mz#00I(^Ae?04Vvlm{n}*KV=q4 zeUO^)u!JD?NJ2> zV$Wun@)@(UTS+%kQ5YWPaX`5_$7d`B^(x2bb=&C>2Tsaz`%(s_kJ3 z4Q9rDa;tzoC#3T|qim2rVFJF1zBYKO^}s`vnsREZNsUc}jt*)!D>-roCCU=xNni)X6s>SOmY}c=S2W6+& z8rHlf2&kzp#f&Cc;*L*}u>ii#FO@b(Zo)IvG!>B#{m>y@)mlL_QlV|QEMbzSY_el) zHe{|$Vf#K&Ml~=@|Iu^81DZ)ZN!pLI;*TW(CJAMu!+dIj)>TbjG@vI4X}`Lm=W`(+;k4KI#@8CJd-F57^fr<|gx@+C6i#%r~{tlyA!Pr11-K-UvwX`8~y# z)0omX4S)NVE>~p*D^D=~sYRI!t*wPhseNEOws7~Xd9`SUe_|C+GER}1V^knmJ3-Hw z%qTIlPQ$|~2P*tGp#pdqH|?#|4#^*}FyrA%-H~M16g2qheBxR6w;@=TxXrIWAJpt@ zR0ii$d{l$}8?D?ii{G)rA1LZJe@KB^C*%IR6OfZelJ?ZWeoSVcPbK~5UT0f-!O`Gg zXjTXIqQfz3H$?qRD^8sUstSV#+4%+MBT8WZE{q9eS!kzY??c2#d;JB6a4F6hC@Pom zrr^J)AJd+^HIK<9EFUf6D=p6nw3n-UA0zXkosVVrZ?P3Y6Iv}~=WZtS%_h2tL|Z|f zBt%y4^fyIeKO_@vQ*StwUp%`W+jXYZ;QO{dLBTY6hu!|<#v_cKrH%zI3-&VM?K1_! zi$}>qFD7rc63SZU{8|Zbnl1CsS_S2;hI5xwZ4DdCy54_duakuTyJnAPuXs{tpVhPE z_;yLT?!V+=PW;e^)C}8H8HbkpPQ{w6{ykkihA=xL0=5h!02$&5_J30`xZEQ-C7%nE z{A%r|Kv;Y+^i*eIz>2x)GupG3@Mb-^jOG&__sO2@v@$zvS4W`rW@g(Eguk5ZKpU^v zM-6;u`J94aBXU+`yuCpOwq~-jV7~F$4e#{lr>MtQ`y#wuE^lY$rfmWDvUfFs&k7bS zF7h(e8r#MdhA~2a*k4(4} zy?$JQW+fh5Q-M95tev*Dg(mHJ0@00a- z57aGPT4UcfMwsAR50$Zo($p7V-#O5~!*0)9c`t3YWsjEeK)yS`yC$GSMlQDO0rM#r z#}_VJBRV@FQUslqEpOS+x~zFQ=vT`04r^qjZ|*Q{c)IW9Y4(Mhk!>?ft0PT}-p=RS zy~o!_ZYJJOm%c`)6}h$J-LrXaEaRc>gMVO?Jz~Ed>O+{{0uD&{%9;BwZZ9lh-^VNC zaJ|Xsmi1)zFW(-iY32FFk9`VW`WUUV60*A69O3)h>Dtp?|I7=gG+Wa@la_$jEaM1A zg(Bgl@Pzy?KjyEdJx$)Fg@m|rpNq7;{$E3KTUNOp14)WoeLSCMLX!MUB_9uV)Gz<+c%uUM*KgOqk6oajMIOdkb*LZWkP>$V<9D> z_mjn+DEB&iSuvS<7WM57%ldSsMwC9a-!2 z)VcH6lM!kSYrceIa&KRi@|}Ha{W0)|V(OQx<$LqF8=wB&O^V-0?z{C>Gzd!-N!iGf z@9!#+iZGy14uWcMgQb4tj8P74H3swJppSzp$_VTAB*#2LIya8);Xz2#e(WP!>IO6V z^L_W;MfzY^-O8%8j@(y=z@k2rr$XQ60=>ALHv`-J+DF`yTJ7hZKQHmvk|9CDA}EUY z>s4=I-@?VYlQug@$qbK^S+RCwe@xs;$BxS88+;cf3(>(s;VvmY><>p)q}~MVM?q5` z>?#_(w(m`D`Ry}H@B883p_U@ySMFX48T|^yzl|r{6^c9-z7_T$I)ve8$ct$X6kfXV z14c9*Ci5896THFlz^fFuAOBA0g=DDmn;U;2n!m41vu(>?Yx~R|NK(V*Cu^f`)b=L( zjSwoBU)+iCx_S5e%R$$)ecMQ(6RqtZyt-jJ8o%zjoxBqYEp)jII1kxV*-2C!Fdw&7 zN-_qs!f!Dg?%jtTzex7k>j`EGjXVjo{PGR`(k#2~`|(J!$+w`VgftbljrhK;D}|0| ztc7+`aJlpM5SECsmE*1?tgnakS*-c5L{w(-1K8^8)H~OlZ?z>GVdZb>Hr%C73CIuZ z6aG~IjeK?z>Yx#x>Js`P`7Hf7!l~kpDp|y~s3Y4qZ*QKW)IjtEQH~5>yM9JJZ9XEN+S9dzTwd-Wn*V!`@vD8Sg72nw>^t_<|+K3 z9)IQi{F8vl=ZJj13Rv?yLZf<~;OU2RlaJ4oj#6z1pIGj|$D!E$d+yZHy{E!O)G=o} zFiBrJ$?Iz^?~{}BVZryNY5lql0O->}9&I3jQt_^DQF1 zvSZ5^la|<>jMPp0js5!WO-{$p6jY}8Ke3+nz1}x}gDzr%9Xy{t@y3-cE-fby>B+@- z_8smgkBUU%O|4!KV>y1Fd;Yk1_va#=47*+GAU<93Q=B2i#{?E!Vj~ym_o3Z&KL76c zZ7-TSD7WRmTZ;FV+wOmQj162006YC;`&uyUYTcx$@&udHM2p4ZDusf0`{NOeV(foW3^;~Dk)dj_@2o;xFk^6$A6hVF+i5n+N(Rc@)K26&(vT_so05B(jzm z)#twSNQ}CYGC(Y!VhF;IO_#WLZFAy2Lxo^C_ebGLVoHMnhQi(Iu^a5Mj?&WL&g_WaNoK5Ouu&DdWhNe4IQjKETh!oB}8WCZ_F8-A7g<`_iee-% zt&)PboxWBnG4|7hUr2c~3pG_~=DLB9+BZ#9h@F&~c3V1@<%*e9eJbsleNDyBnu{rS z)PENb(5za5JLvY1==@&Vs~~s}1@C>v76>~%HYM?Kw<_bnikEQ~g+I+)B*0hD>5aKi z4~)WmgET0;eKp9_{jK>w=kD+A>xIA3ih40~YdA$mXewu%`pi1b*RZ*U;Ph0f#VdUG z1huK2s|AG4(x093Yt!W0EPQq!>H_ctd141K%vil|$SAzLPe8n-v?pQdz5)h)>(xIr zc0NV|`8jI6hBq(1!&&uL33)620KH^Wc#|=`zI45}w)%8<#fjdzUX8QRbjs>8q z+>35mP$9Dunc<(^?xU^0vjj)NVxCBV1NCVVWbM|Rt0c8OzvJfgksh`7}#!(T>bD@|3 z$}yOB6g6_#oy{MRFTZx*cz$EHEtrS56e82e4Vd^T%HB&X;^9IY?%U=1d8P9nTJBPZb99k!dc4@l!LGm#L;C#SKT+Nw z*5MBKGQYe~d$S-Nb?VYLMSM9mt?1{Mkv{TUj<@oSDNYjZoO>TfM;gjQW(KYsG`;T( zI!+I>)4u)vmyM|AC@TAeq#>I{n2K&}F!rrBbj;MwHA!rS3gQ0NbJ&+SQdGV+zkNj^ z-`q0gXPutHp52vB6t+x}w=^+p!I=kMOJ%EYd)+uAve;Jkvv4|Zblot&Sa$|RY@TFg z8NKxd>k5Wa+$h6II%auq<#a%)H!B$T=#Ga|dD=k9?F&u|qUo25!c!DO-=&NJ{mEW! z^$oOA1Ow&!q+ONATTkE(M^@*H|A|b{GxP60kz3N09frZZuriow>RO14KLuH+Q9S9% zG^?AE{LS(B_({9Eg$Ls!kRrCA!w~!-c|P?~$hc$!2*Jy;(B9HmSKHi1bBkV1v}-9i z7+}RoN}_BhK<7cZn|qtm3D>9Gc;ucwz6M7L_5lWbXi5%Vsj&{tRBGHLfS3kQ8Be5B z5o-sueK@Sh&Katn5Kl>q_Euf*yq4TSd4HJ}{9)uCMQ8*EC3}X?5RxBGhsIIz1mU4% z|Vv7{CJ&ke?WMk-v&aA4Od~)`*om1E;7_)aJ>f)Oo2`4J}dqylZ`` zZ$vrh^-6W+s8H!rH2NcEJ%+p@{`$vv(u*HhDm4=2Rpow~z=Qmm*@3?!bN!tA2M@K> z)|g%@4{y6^`b|!KVfmsws=9ypI6-YgE}-C(+n8BqiQ1;v?dy{c`$yJRjiYU<=ac?{ z$Jl~(wQZFz=Z-!<_nzL>URArQGLss3QX=qoh4cEso=@RPh1QK-^Gm4PL1q5zt?9be z7nOzX{hzNAKCjy|s4h+h{%S6{@%@0idue(9SNq_N{g9X3%iDpc-Rn1gM1SeV@4h>I zL#2KYe^qUjd*EO|K>f1ANNs&^|8zu4{V3}tuiB>Qzq1K<_2Xw>)V4=s&)+4epA=uc z@in)TpyikKwJiUBAhiSb_wtW_r-K^*j$Uf~-MdTvy{9sZwvkAaM53K_p_{-XGkCe8K=gq``Uy7LJ4ARTmS+km0>g{w_+6R!izG7o zAn7;>7Z9@wAJRUFkC(*ayh>9}3lDVRv?Z{(@v-_9k==rdz|loa#jYH>M6L`Mx+oB5 zAd%CY0Ldaj3UL#q7;eKj{In~#HHlkFmnVzF!+{rbaitzf;dAEWuXYts;a}+iU_9}9 z+G`LK>>Ag_DkKj#@fyQj$S3UO1`b?v3*(19DAr@AguSDfC|!fpuL%seNpv}hW$?nI zK$3w(No)P97pth^G_f3J`#|Bv`8hWFtSZr>{WOqDyOYJamdZ40}HzGf13KAfrH{kuXGP4D&zl92cdSJYHX=)X_2?%lEqfCdYt~ zybelV^JYB-=UANJ&W0Jgkhz$UMKnmv)YHmd$Z7(7b4k!dQOM$thiPxW>As*o$B5N4 zPaB>gtAQeLZ@=Acj&*q)=QM?xNtqSBw$M~RM=gdsG2Vu<%yf2ByVBFBt4yylUa$|t zITa^FyRPH7>9n=!{Hx3itLDimxM^NoX6U!&rEZ~>(g)qi@s8he?V#i!mOyiG#?_!( z#a0QXV6`*;=3VRSTS7+XeExH1(!F*l|iD70>uXs<2jN9pL-!p2K=(h z%-A(U=GS6b6U9E2E42XuaL_~h?S~woFv{()YVSmj)kKpaJf#TSXGdG!+fG*`rGA^h z14^V6q3yuBOIlWNx$Jn?V^Sei;DO5MCJ|U0Iz6KD>OA`KKc9^Bz6_2;g04t1hff|{ zH`wQEGN}T}9#7Vb^?kw$5lX{_=b^=-hSE6jg7U6mdFaPY=&UYp%#>)%{8#joN~Pi* z^b^r%)m4}d(PzIcbv6tJ+dCGcW-v;>5EBlIO)}bPLNYlk?F?|hGc^54s9%B+mq_2UqgIbby zvE^PhZO{C&3X2=ARd+lSFPUGjnW!NKe|`NxpEJXSB?{CVNbF^WaFv!IOXHA&-mmFF ztUSl2qr4tED|l6dywOx`E#EfM%>oi}XYJ6YeCQQX*Er2y9r5mZ?Xn zNR_9cH%zoe?TJmlzJD6e(BPhgN(iFP$;Y91=d~K`Tiyqoe>AO5l=)f(qcMr0%kJi`R-`_{a2Er_*^p+$ic~d9| z%RfJS|LHfTt68s$b=z=_m4quxb-I0TDc{G;q2V2O;mWAX8BkyaJxKS$5H(RdcTpbY ze>qJ4?cep{8QRtSrjzsITyeLhSNc!1*k5PRDhGsO`#bu%pl+-r9ebigR5_Q5G^|S; zGZhF936gC2@q6Tllga_c@<1m_7(Okm7UE7#U4%(&fTm#^$ay>ej$WOXPqpAI&pwDV z+}2;RCtiNB7;T7*Y)N7nq;`(P)pTGtz0^5Yl8+u_Y)?cYceP!D!G5x2XZ-^mnL~(5 zFa~|-XxWH-@8_1-h=;#o&n7alCDN3-d>@g4iv(Ge1|M`48>Tga^JFo$mz>%*H_gzW ztwwYhwhDVl%8%X-<& zBurZx$7M=MC=cOI2gJLtNyKP#UL6v)A$8FYi6k6ZK06YrxO%*Cra_y>IiJ^=fR(e5m#Ju@&+lIpX19at)MEjAr#nFU* z+O+Q%!S-VhbO3k)r#IIO{nRX+f9!-l&>rijDMjz^x?+4}g4+7X9L8P{hX76K7DG}9 z)o7^`=mbqABFj0X!K|zOW}WjENX}tf*~a^|TQkN|9&@)D9up>Ydd&5*nKrT+lhcAl zbG1AaJ5d{*I7D61L}=b(9{4pe!G9*t=i)dyE@z^pyJ%1R!I5Zwb>CH{*>4`NtMPp> ziC=etlA9J@o%RvL{4R zaP}^@7x8tV8FDmgQQ!n|a~3&W)po}2g<}#Gg3=Yt+YLua9GEATQ>NpHddE{0MUS~% zWa{C9inoilg0pEWnrpzixfQ-$4K9?yuxt9+ko>&s?fz>eyC~`S%2nT{8S02N{&IN}rttfhV@q53K!jI*igo8MM$OW!2A(?=Fo|_-3sXws z?5NYjokDs8Tm{>m(jsoM)zQqMW7;DP3tDJx>yCI5xyF=&W>0kve({yGnpG-&Y-*2b z78ZDTWbq8Z|GA99_b;J`_A zacr4!+~Y2Ph4~gKDbvh#75~_Vmj<{e3B4y9+UBNqo%~Q-na6=7q&Tdv1kSy^pX=S3 zpM7R`mzcw#O(UU%A3bqGoM(xPK5Cyz9W?fwJTqJGy!T$dfKAaY5gSi>CZDJ${pzCD zFl|4qywi|3elrW_sC@x3xsViy!XTsH%qtZi2bNQx%RD?P%jT~0ww5@Z2gweA;7)qkCTC$SB+$m!-cw>8yh z!{xwF>4DaN5{ng?2{19@-T~fzY)f!OuByG&gn(+ZnU14|7 zumD8b@Um{8_J(`n{8Fg?TL9*KkB(VRPDBMmjO$3a2QK`BMVH17xJP&1292-{jqJ%` z68}Kb)w-DzNB86!6B?`DN8~PF!<_K_RQH2r^v#lMUFCG%Igs9^b`hC-3=^ZkCd!9i zuY0cI$FB}eIuHkpVyoq2C)NJUoS%O@1*?@;V;cUt$;5E+XbSNT;8M|-r|^x1&_bhP z7!o;Tq7txar*kxkz1cV}nPRS3$*P6;RRMJjs<*5n!}0s{WXc}BLCKEZq#CPZcIM!nJK&fa}PYH^#&8AQ7w|x zOCTp&25$AQL76RkOAQQJ;Vl2wrt&)-5qJg*HyreWWR3%U? zDwxMrD}&MCnK8k8-S^3qp()_q478a~R3~Rtr6+LB3K(~H? zVt%y`1Kl%%MAb=EjK+XrJOhPu6B zhcMZGNDxk9eU#CnU0JMW_*`PC$?IK(PV5$8ar@(k7Y=uG43L$3|25M5GtrOT^;&B6 z=TN%xn#eU@ooM{aHiECY%~6(+7aLI*KJEpPK@4ng^+F6rc+WVx0KCh4BCgp?p^W z#Nr_n2QK7gtUWKZCB6akG&G1y^4J~#kV0M${x`rN)-O|poy0%^c}_HwuxUXwy`i@I zRGER|AiF#slsGXA!cZYh4-M*AgWbj`>4P#xYtS=~-^g+{Fo|<6_`ix10ewnAfERz? z)v1Md&fq9h!uT@}LEOk!N>b1GMYXPKTFQv2XqAZR$%zxPMl{V`6%+3WRHpp5^s&-n zM*W2kR%s$yT;IHy_d})mOBuXRwdKv(fa{DVA5e4KidhP!j6`wzsv3KRuOAW>hgpG6yS$pnZ8C$s$XoKO>tS`!bn?Y5LwM#;GFG_x6bt6e@~Dx7sG&XRD}6G3~f?a1?1Zo!HUo1P;UU zEPoAQXy_8CYFAfTe*H7Avh*R!p!!GRKc17MOYk7o*;MGr-9K~i zAj8%rPhcu}DYnEsxht1Aa8vWOz?jyv*CExcO5?$e+Na4U$;J#{7vguv{_wLiVL#c` zSW+j4+h%uhmwtj33m$1z`OkONs-42HCp~p+2~6n?Xsd&e};D1qdINoHskKExLz5TW`7n2ltWJkz;z z=^^M`v8FkF`xs~G>HyGQR_{Hn^S3;A8Liz&AzE!xoVlZyRI&!TrpEC)HEbAcq0AfT zv$CW!Eq3bx5p@vGSYWT?j7+|DF4r7R}=d_@}@O?Z=zEXJO7 zyXpx)k&S8f=TGiq`?th25dZ1%%Zqg=@@$b6WCBJ$h~q%5ea%CtHxLcgjQAk7G!%KM zIwgeVKZ0G1$E|n(6jywPv(0W=m1Y#KoqWubFm!%}SjstGatjNHS}dv`=J%KWIVrcO9X1`N{x8%yT-v8&j3cY~!^0plON}eb zp6$53b#oz0oiB^G%I7AN64n+;t}9@R^D4`r^I@&9@KkMd(ZV^MOA0Xj60JZv6AuS) zOlDOM?53#?a>YIC5BAPE^z(Giz^(Q3LOw)C1-HeB~h-b(Jt&+uI1tHU~A9Z zza~v#$>-zL5@hy=yRKzh0B7002CshiiokjA`=4+2GzCX;mCV7zki+fw$vY>pjUV*= z4j)>yI-iQ6I>yj`#h)Jrv30Mq{D>NNa6T?%>xp&<08ETBN(vtfJY&I86=x8W;&a+h zYiW=xoIrBaJXV^n@)gyCJq010N@^EorL8S}7Xb01MB-@`&(eV_>k37Rv$X@0oZDN0CoAFtnDG-qO13zd%tK zgclj=kTQ8P5loc<2B>){Oh`ZOQ_0}$r&^_`GmfaR!pmm$X$^Hc5tLcWhAhJEo&bH6 zCY2&wf%~_(34PSjZDq}^w(0!g2i$05n43d8f&{0uA6oij4m@(4m!|5VbcDS9lu;h} z`eBBnx!~UnHZ;e7Pv=j{uYdNvl^xmhz4ZyJejR?nxoECzW$caxZPQt{5WwlT zsvSm$9i|9EFVXI>4OB~f5D7P8HLnA2Z>a#Zz!g+w^+svbt&bEk^=0TK1R$^0Z488xy`&*;bgdRRX00iwQVQ} z$Sf1%Bl@&P|MsMCcMW#{@@{QGcpE`>cO9@?BMXJ$K?0#BZ8f*Va9qC&R^`Hm&0f3+ zej^AFdc!9HO_~o^#gs+}e^2aIGbjs|xvq0moxionIDSgz+QG10OeZ^^G$wMiK1f!^ z2=1|^ElbZRECxIHE@wU-vG+U;-*=#qXVGZi9G<{e1A?(fUF^2}ohz$OZ}Iu23&YsS zR+q)gIHnm?SZJZp^So$M=yT*{2uv2->=0j@8BC3mg?dBQAHHZ{bb@>Wm>)d7X?a`l{pfLbpffDkuw zdtYL{ka^Df->}a5Ykn?Ui0?vd>;H#cb#70;ze4zyqI$&gEGME^^)r5djF9~tDQ43l zKo@XBuRh~mr)kH9LO=WVqO;dRoBywktG91vys&-r-<2;9T;KGaea@WuEp#Y2u=I)Y zLZaNUEnWNqzc0_f{Ar+TquOzb;Q`?DjJmd_4C4&LseUMOm7mwth zCC_%{_}_ifvVVqwqz0%6f8c|g9Y=M-`~Gl|Z@#7U-hT1pfYDzWf9#Uycg3~e5e>X! z-)J35n*=GVqxPmkBt(0qfanGRtfJpVr9XA(Bl_&M*7!XzbtZyl2Eo9{$lRFXmLcHP zAl$qEwODvpx%k(v8?4_gu@({gM{@xEj#8EKFC`k`zxq4meeu`J)+#C${bCurq5=D41A35UxSS$Z(F$?`d5dV=O zi*XYFZlwa_>%1%!r>`UCtPQJzx;}qWBj(Jmp3KU$VyM7TC0CLqThb+8lJ~@My3(;G zHtP7=sj@23EmpBA7Sa?Ck`teeCd;rcB2gp!Y8DN!E*d~F+T{(iq6x1pATf+6-9jV@ zV$PDXAj$<72?FGdk|SQrASF^NYhodF?J=A#FwoBf3Bua25%LaDE1>EpMGAkfG=j|F zQX_H=`(V;9{}M0*Q!ocJZ=zBS3xXVl(k;MpBS5YIbus{)(JQ|HZVQ1jUur@pVG(}j z&mPOAFYoOz@M$dWt|P!qGT&?|J3_Bkaj3eo7RGHLH-gDb3LI-?UU3^OSb)A>k@DspQVA@eG?V!fUc z9{tZ4sbbCqQLkLHAU5hLd2>9)qM;137QpN<3qmJpb1UmYIG^h`B|_aek|1>QGzmf? zPtpthqAy9Y8uub@VzU-rt1YKO1nm={_;GCNu^^ZXJ?ZHOrISND)I)zi6hs44CiT-i zY69fovmm~XDK`Q#lk+O>vLmkVi7b@EDu@>}dJ!|1C10YBH z!Y^EuMG0X~89-8Ll%4$IL5=9-B=I7%lSv7}Gppjh07xR|^FN7`2CdXAKmk&r-~k$7 zQb~^^?u$q3j5M)=y0nt%nDpUB1S>SoW!e;2gH>3El~~d0O%Z=HPBj9|R16B5)mfj_ zS*27XqSC((Bns@zU#2fSIif$SVx-Pguafh(2H*+q6fMgCB^b$10lu$XgcK)>G*f>O z;i_Ws@NY9wH4oW`BP8-n>9bQOg1N}gUF8$(ASI>K(6=I{cC^sTe z&Bam4vMm(AQHy_-V>{MkKNe&M<5+1ZStkP7KC3MPG%5*{6(_4>v^6L@VyGI{xG1zU z9r6*y=K;*MET9x-9!_Wdv{B);E{@bI5tb^VvMbjsKPO^K_ti@~LQGG!E)q70%<|pD zCrf(-U#ViF@Q@=04`r*2R{aG5z?L9Rwk-~TOGDOe-xhyv<5q5yVq~eWL^}doQI=)- zN-eA6h)@=0FS8?u7G~P>D7$t^gO)F*(JItdal@8yYyZMXeY5+h0{yyDC!;YQ85U~K zE==c@YWHd*II2rOYip5|akGNCc+zCYRx}|`vsP+WMlFy`&PFFfB6Dw@{lnD_nul+C>cULRw9&Tl3L#rxbMEw`(0N3LqAgyW}j%HKvekiLWemv0^o~LfsU= zjbqu3f3y%B_eX1?mOF-v$M~E;Ve+b#mxF)VZGCy46mo5&Ab*89Y0H>IchaO{_$%TV z0-cVx(svUD7kKT-%sTmSSFT24w_mgOgr`EU_WzC};s%BvIW37-rjQnrCvsX>IVong zbKN3Gqf$Zv7ICv;qhv0dJ;rLKn4h7!DqgE?y#f^8O8|Iw6b^5*lv%8(E0C|Cj)8v< zK`I(Y1 zqql*-LIm65cDdq^joC?6Q}P_yEpik6pm#Q_;_JFH6s_WG>$xrNnVUP}eZQh!@31CQ z(~j+8VOjbr+Ub@jQ{(cP5~<3MO zAOyQ3tdnxxf>6DLwUz5%38G$SI={wENYl=+KX|9XLIltETr;~S=*ofXj#4G!dp{d` z>s3iL0_0qixolfEl~;XtyMBLv*pmg?E9R{1V72lbN-F|2E0`>t$6~>1JCOD2py3u0 zlt2S6fW=#!#f`g)kb8Q$Zj*N}`9hrOuK(M*$2(hGLB|V$$MfdKtHQ^1JjnNk7Zeb`;9)XuqruFP7Mv%Gc3H!G-%(51TV@yAI&O9vqkWm+t zZY6von9N@2b;V#HI{_ad(?#&0TI{nSnUst|u(_VkkB#j4;r{Vd{U z(ZvJe?Hw%yp2(>R)YaP83A?nlT`Tap@v5#S<_ydg(=FPT$%Ng^_uMO}tE9bx&ELE& zv{K!&UCw0~wEy|e(4Dj=0^~SeB8I9vReP~z-Kt&NZzp-B-6E&Ya=fYa<|V?!^8)?G zysIy9V%(%Ex2_)`Y6%=zD}X_R1_&w? z2FX%a1_M^91~Ftu!y5T1S1icMCs6?$tx5Gn4IYFiAjbO z7u*y`fa1=d1s#G6IkExA137{JDs(`xfKq}m9SU%DQ>1~7PZxT0=p^eviY~p19ZR;X z*|TWVj$Lx0ZCgib(KsQUUUd4=AQ4OEKY1iU&+C7#TKVMu%8Ut`0Et;_;RyMW!?v#V+%U z2`GOW<*3-^P1y%0-|XoytzDDfIb>Tzyio*-S6YnZTUNkHcN1;~EpT8&P%w6pV$%^6 zMTQrthgxVLhA5&}Nw{^v2LEHV;)o!e#6ngqkO(4(Cx80U~ozu|v& zfT*>cDilYb2Jqxq)$MevL6AZf;SUI zCeBB8uumq9%>`2+o zH1M+vJj_uRND-&Nwgd%TQ7upi@Db6bDa|NH6eGlRMB$F4uRsj+|I9B6^-nH0N0nG>`Kzt=`o-%fbzXA*x0Nz2{>Kr4lS z;&XW7Ncg}K5m&?~e*#(9y%rK30<7sW4#8eT@bff?Ii!9P8HqwpGrWZek7l<^p$a*o zv9@pwD5hv($l8*DFkFNaA%nybX4n=D2x2en+sOd6wz!DwEN=8t$RdA^_$(&`s&Nh& zqCo`Uwu^A^Ab}$Y{P+fxzd0m}0uf%~0+2BKUG90o)5yDsQ^iEA@mU85oEQ^V#(^wx za88T}+zRo=gHUn*E?&gqMKCzVgVgaXi->|E7s<#*Dw1+yks=)P(zpghjg6){BSn^j zFRl6Rbpi>bK`7U_2S|VNk0uG?mTChOc@YPND~zQqwL+1?Eu=xSxkX13(I!2La_kw0DpL_^cLL;Fom>lDvu5f)M=jpF!uO&sxs%rLhcz z7iKzB447yGH2=-17fMEuR%n2SGh{+UaA+bU0JSX`;3*(Csi;DJb0E;v8uU7HPo71j zaebtSH911UgW!KCBHiL$az?k!LS}Fw2OOg<--eyRW$}JvEI^S6Y1TuIqN*eD-$3A| z$uG)9lq4yuS-m9}cNWs5W|1V$C@B@UZV<07{a4%&s8PU@(ji%O$X1=1%(8rrp5A#D z2w_Uvm*!5FBPoCb9uS|1(3Lb!fI2rVGaAni%u`7}~3 zRRZ)`54eK=7N7vddF~{=*m**8IjUazpo@RERY-2t!ruT4fV_l=oI^+m+JVfEZw+Wb zu?pxcI5K~r0R<)+`N$Jn2WZlyUG2a)yi=vn;4YH9#C>-m z%kmf1a{rsSsX(n=-Rx+j%nAh(PFf)8Y%e=65@M|hU=#y=^FZR9I0L|Pf4bZBKn9$a zE5?7#x^_nGU=dsAkqEaIy&hb52(seA@p&Ly#5APGO{W<1c!o3{h#+RTfhBYy2{tv6 z23$mt9h>L~UH}7IW(WzqoJq(|y~ueLH{t}pQKKOqzycb8$E|jun1Qq0)4I~h!}qju-XFiGoK?dKz!*tl4E^5arsO5!W(YQ zmACv^wH=F}<2JPo4^GWwA@<m_2hV9 zIRbJ2sZ%^o4skS4E~#;jguCP9j(emdyYaYH+3DL$b}o0~@?mb#(4vc*s3bVXuTFo@ zAgUhUKI0}a>5}FwM7~M4UE1k44>0JQ-StJH+UQ!?cPFms>$3zP=ny_x@BQTnv(xhS zXMuz;i(a)^3lQC}Ypu2e9~|HXqI9i|bSZ<4z1)ZY7;~T7MClet6GFxWde_1e8weR( z>ODgn4g?Y`b4wunEvK^_@u{_7dzpWR{yT-lc>(W9L~bX#xdR+45&UAhLY9g2TBLQs zWa(<@O%JbFIZPqpCNZxCN(S|912j?m#dQC66X%zH>!%O{$bZVi7y1Vj3%D1Y=Shh1 zeg9CWTR#E{oAYh8z(gN4a1z5`;v^6Tb#0X9S7e7B?-ze)cM$UT6Nc4xwZeZd+(mpm z7$T=-CXf|$gcmnENIZM@8yRR2n&M=)rZz;!RbwGVS6zle|Tef$P#U^GdRX} zQnO+bm#1r71aR8M6K4e!*#t)|rh@-J&bse>71@`^BrSqs686c~&@ae;q&0R;+Bj^=od z=9mBqkN^qri*YfE9hf%|$W#QeEazk^4zYu(Qziq)f)yr6FX#}mh-mtAab_KP`QE}L2Al`rHkwrKYtR_2OwFn*=Y6|0#2(W(wA(6beZS1jl1{N^8IFU&C z5;7?O{-{Sn*?3w}l|tr`^*0uYuw(+jX9_iuyVs3M={m4<1v2S4G#M-!i4dn&FaJqM z0B>nWNjLyC2$6Vc7LY&&e94#5Cy9L-m}CGm0uc-G))t?*5PyH!7D7dRCSrXAaWXvy ziv33x@E8#TbdtA3kB%214;O}0#+j8;f#Eoe*Ks38^fmLy6=>yNJ0Y5`Xqp^>OUz`9 zM`&dfAzW9qm1jYkJ0XsWc$tg?nw?1=3PBMSc|?W7N?4Pd!03V((KxX;9za=*G-wtG znU~s0Zd~#N3($Xy@dZo4!diDy01EH`Y6nPK;GGD-08fww;`tlvX^RZt1nFr<4}bvt zQ2+_x1TCo+gdkx(Api*A08#K!?L?f1vYy}Ro|J+yQJ?@2VgL*91n~(JTEGDR2XGt% zZ~zN%1sD2gga8E$(2GuR1#77kSFivZDm(m%qEC^b`ssh72ml5D87xka00p2l=IH=d zsTxlpp*&il@R^Y0XaL7yp7t4{+u5X9Aww@@60Hz2+qV!#wK13&GC#Bshj{@}8W+In z6~ftqQqcfcKnOH>MY%Ypwa_>X^*K2?BED%RvS~%$6%icuOLS$Gkyk6O@TcS#O*2>+ zJE5jv#f5*{*g;=`sCY4_{Y0pF$);-IriUtP193%&#eoFjoD0FJuL6+Ksd=>kr-K>* zcgcXe;-sp&s;o*{P}Hih8mqE8tF*ckP`VRSY9d=&V?~vvCNg~rk$qlDng5Vl7LuAL zWhpx!8Yov}m6{5RwxQ=M`Oj=x!_8#EFEu&saFI!P8+teeWH`Bb7i=@8TkhSq2j z&6=8)IuLZ_Hhnr5j_O|yajN8YtZ30VFgb#V>TKMKS4Bjd;t~;_YKWkERna=C`Bg*s-6vznD@N2#caShI()iIVrZt_$(3i3+Yln~FCo z7CT#z^{SotdKNdkwEgO{0sDr>$(p8Ntq7ZX(z>uz8?;{Wup7I!Y`d}lBGOLQ8xeSW0eUMCeCvO= zlmR!I`4ddbYYLF80Z>0Qo47x_xCwiVIxDu1YO0;vQRS$P=g5xiD1z^r6|Cl=3$VY- zbgrBWhn`zzpo^R7+8Lyak`{ZAW7e=~@x7Cpu(yjH=s3Z+sJpOY!T-G*w$M4Yo{4Ja z+93sNCkh(9BwWHP94JK|wy zGfs%R5Nukz13{{f%f9rAwyjw)PeE4+tQZDBG)R25PMfW$`MHYgt_JBD2fVqLTUcY3 zz-H0I`Kp>)e7-p0#7glwFiBTaDG;PbL2oq;gk2eYM_sskag*VZ_7M8^ty5OFFZUu>OMyiQDf6HxpV z0|Z7@JiG;b5#y1`dmOrC+^B$T#iE-Ry{CbPVaBrw6piy#Yg9!4=aXHo$XK`GU z8w|W;>v?8Nu(9kFg zT+jhfkskbbq4~kz>b{>5%INA3jxj|n?nlW1zPH>H{2NmB-Gvu zvsox=nq|9pN)YHHF`TT=;dm={c@xYVyAh$$S0rqMHeJDD0RIKh)&(GdU2KCCu_l-H z$!9&)AB0ZCE6bo^){=i57@y_@f<4%TUD!?_&<#w+m$vnsD`^*b5K<7$~kFwAs!N5j++8IlDAdT9r-P$UQ)B^zqA(H`OkTQ_4Zze(` zk9+|*+!zK$*5>*K>(}8-6fb4$Knca1lOhu6yc^<$s^R?9p2deQOR94gwWhTYY?lQf82fD{I%WO z?cH_(-`9LZSM3#- zcD&{h6Rut2CVqe7D4ya?3fltVQ;kT@P7TTHj4(_}5cmpl39tY<8fH{wRxtV85AC~I zT&b{jcxENyZK$dkT%AsTEsJ5LQB+i9^gUX5h7; zbZVED+FB+{z5q>5E^)J?U`tUxTRj|Z(HHSX8uY{nw9|iKG)yY~=YSsQf-=>c#HUD3nZyH#1t2zAIY=6i1IMB7_s2&)fPU3BLGh*&yWNzjrq3T1fA^&E^Yd1rBpQBNQt2K1q*?A}I z*m0o-<#2yM0n_bF=+s{A)_(2S9uX`a+dQTLz1_F!>=^~tIbw0Oljkbf(rVv@=>Z_s zqFl=12kJjj>y`{1gJYHF&cyfo6llgdUK852kni}e?yeQac|q^gBR}`fgJcfVEY|B^ zQ@NewX(q7<3NTO%a3CR!@SuXe`E2JGG46Ni3J!mt>k7eN)t&7szw#{K@+H3QBzvVi z)CG&a+uxqUJ4pa3%n|kc634DM@|Osr*8rlz?f^d!#q!QdbtJgr9=o-1@LSC z5&nOyC#w>|Xm9Ij{qaE#E{mu0uDphhlNAV*-!8xSjNkZ<550mA29h5JGJF$`Kn7ia z1V)eqUJwYneG#oN`I1kVo-qoU#qWk25?4T;ZQY(uFqb4HTL*9e31FZEUO9yAHc>#> zuz$%;u#gAv04THw3t#{YY1&X=*vennJFkCoSMUUeO*sLoqXpohPH_97RM@}`6%LR9 zY>fa7fE8E3`#=#T&|lb;GhZc2`vzKiqoDnck^IX)|INQw&maB7M^{ftH4b3>6nS3& z;Y6U5LbY5yQBc5u0w;uOJ%kuBBB2He3>Y}D;Qv7)i5)#gbQM6PNGB4Z3`ChyC6pbA zQBY>_=yIULj}So_7@0G`$1FNWHmLbAk@pB{^;sT?3}+X_s;1UvC{-PM*)W(UHWwD z)vaI0o?ZKPvxI*ZB$s$Nu1}!c&7VgfTKxE&<#E?#FOooJ@8CQ3{0Zu*PWS)m{r?9r zKmi9Nus{P3L~E2M2#_nH_2L`A6$B@wu)?GsWRCy|ffFn~k+j%MK?WTwzzO}HDnzH* zEM&1o7hi-iMj2iHvGfp|@q_a*t@1#!wJ@-_g z0VuS14o^V`eTt9-_|(%+K&f*8Q3W)*LQO&^rL3+7+{AVhB#u0vjgP;1{;(J zKLir%RAa*00)>H#N1C`~lTSvuGU2Z9GR&1*o=`ITGR~<09$Q>FP_OV4$!4}>MlEHb zhbFq{u8<2rfjAk+i2(`=8JT2{a%2GJ36WNMXP>H0YfPiR20LuAYg)vACyuiu#3wkd zW4LXDgG#%x)Z#k8Y6Ht&t}C8%IzVT#Mu~51!3QV&WS~cKASqYcX4q~7ktPW{ok}t) z|8AcI_(+TK4DkEF!$nFQsl^%Zye7@#;@qsga~j})!e56y_Iz_ZyK;a{fh6om|3Kt_miLWB04UUolV*lM z8rIN;;DVrKPDds|bSTpY=^q)xvbqXR(T#6}W3Q@M7|7l1I-?-O6{3)ZLTJ%O zSBTV7Mxli(Xu)8AT#N|h?6(vVjwF4*(_=11V@IHH$pko!EJ%DxBSrGa zu88qNaYSV*Re34Ed5B3}^w4;+))rF+pg&=eVJuzel_)GxCkn7*M0^pY@aqY+s@RH+Qj3MiQAp#^y4Oz;_x19PdPse1Gy zLcL{Ex_VS^#wD0vspVNa($a9c@*_o!4_QAlRBo^3eDQu@(dMkWL}eR}XzOB16fEW0^94%%ULWJ8Dy@PSh$9w#rYOZ!K&9 zTn+iPrPJ6r6yqN9HO2=D+a(yI(MwS;YIR1izIt(+7Ji*N<>EGqxe%Q3(S zpVf&n6JixbJ^~fBb0^I-%ASt>FfJ{p%T9$rMakur&N7z}|)pmrt-W7{R<40Ti z*4Ms&x51Ej`FA_8T=%z14X##_s#vQGR!N_;-$45Ykwo0Ko1(O(mv%T3%R&T{PmuUS-}FIE$F1i)DPn5hJCeDd3V= z4FCajY)KyTX|!1x@K!q7VS{w_mIGB1hH6)Ti>`JyBG{zxM=reG@6E*l2QWYaG@F$~ zJiyFno***Myk<5(0LX1NqETvmlp8PQ#97hpcmh1*(LiA&2GB2`1#Q4N|1)nS5nKy| z1C5p>XXUj4nDRrCiq6N@j9@y6s6jB@5zJ;eyJnQio%u4R|FY*oI$88X>Z}w|UnS3f zIzd3H2c4VX`Ek~_eqEu{*}PFt#xJ5IFjdw&l5Rc(E+bLwnRqJ^yGCT#B8l{)E39h% zMkUSN{R^o}Ew`iS`hlRvaF_Ayp-kgiG>qM|xz#N=Z)>^Qc^O4VgN+wpqxf>*d%Z z$z)sV9o53}dnEpr2*7R9&WI5F-47Q@#1Wowb1r-&vfi?Z4}KL_Kmq>>{X~dQj+}AD zY?z=yS%ek{vGkBzClN|tx~z#lbvtc5g)ip{6c}(muA7emU;jFHMFMuRcOC41TyHT~ zMvj$dKUE@ULU}|~{*bmux)v@sY*apuZNC(P>|ft|06O`1!ZTo?grD}*P~GsH6niOq zm-$zmn3Kd)y)eFYJVYRu_Unk<)|Ll-n5@3vj(f$wG#`)Mx6){~!@9?g+LI9B?vajW zy6sI>XQv|f^ry6urf>F^B642;)BX@IEBt8@Dj6`%8-QOSzn|Jw$4MyTp66=Q|3a zio44Au;4SVr@#=-yE+RLq+fC^_(4F@AVBjlz!YXuD-|i%cAg zoRh=MaKr5oyBKT5Sp<+PXtThpt~Eo$mJ1#SU^76>idt&Fz7WKJngB2T+NuCp0G)9K zAZx^vd&KsTh`Ns;r;@G6eWMd%CT5%q^d&yso&3i?|3)bP$wWh@=3>SQ5xuAjrI{ z364@ivG|;X^hdVP$LxT^odnACcu5b5Nw^Y;HLQwcL^Qrw|45H$NbxZWGmNG2vB-zO z$bkf`lFX3>6GInD$ax%zZ3K;>gpityr9JB(l={f3z%r44Sj(V9i=M=epM=Z0%nq_- zkC?25WE7yV_{0%ZjHcA2xDdO%-{gaF)WMESxUQH3%Nv!EO>wg0J8+}6P*MgTeKwNxuA-`h)!xCrl3pF zxq?Qy2nBF|fXqw^EkKAgsR;#I00h8@KDi#$gwC4i%(&3YTF?TrB+jT9rWeYLs3}B` zxT5_tiYzcXWE#J!q_V}72vA@w4ogo@OV08vfH5nd@fiQcnz$`;9LvJ0&g*24MXJxZ zxX-T05e0}8m5ffQ$f)xf&iiNp2cRgQSOBhr(4$y?5cXIASsMk4f=~xA7%k{3yU~Kv zOPVVDO^VVeTVhaOGzw5iQHXPbwR8do_K?j4oyC*z!#=#Y%esOmPzkZL z3L>3}%=pAOdnpIFh>c+iEocA)P{fRIf~J!RfoQ5MZ3uL1fCDIi17H9mxdM~`#+w)q z`T*inN>|9<2(YDn!Ff)0$vUb2`n37)_c0O^jKL zr_{5WU{vMT?~_0%k(|BJ&k5LdV^HI+i9_?#f65si#Y zub9bCy^6N`Q^KmrNd>}g9i=j z3D&q6R*7g<4-tSxdo-uHE=j>3!0J?S6<7+D) zXwQL-3UZYQa}6BUx*P|H0$VgX4G9Weg@WOVh)uPnk97baY)7%fSC3c(^g2R*deJO8 z3Y}PhExD1WWB@{N1w4AnZ?)K=Es%l@vbXdP5mEnC90`CDk=PXkxhv@jr`3xqm{I~5 z00D3*qHU{@D8!`Gg0OAKLJHfmB~}T4?VJ=9N&7p)u3CUBNQ9daJ0y&Vld4w+D_boH zye!CDrQ5`<@f%QZz*haGy*q$N@mYvy)^J&=MO5*f)Pg_(-2nztXZT*##j zj5WqmtO?uF2?JorZVZZA+PhHnr7>&F#xn}YnWRs2&yEP8cum4)!orW3TjcY9f=?v1qRu(&v9IdfE+&xJU68~lDyrx z=-r3tsFd=c0X^RI-3~&4Jw@43_2s|h^@!y?{|X>lO3)nNT9DqPIf_LXI-$y3=+g-; z>Z{5e&8=lN9dVqt%U}3);0K0(;M$Pij-cP5_(ak@UDF*&pFqf}K$^Sli0zfL^|>k8 z2nu}*xh0L@6=vZU28{`phzhO=&|KSS0^NvsHSD4asSE%V65*f-yc&Lph7{f=45?i^ zLl;)!C1&EjkX57joInGzMFY(U%3``>@AL>D3%L!m!+|p1LiYdUPe$WI{)je4$D6d^GR9*q#tKml;Q~=2LFQ(HoWsmrX72Z94=G3Mfd|(5wk}{s;(v3s@e$&kZxu{Y9w< zcwc_T=#1V;f8I-gj)-+uDuHafK#qt200qNjM6rrfRE( z>a8w~oAzjkXixrsR4<%OiuOFhLP`Ws7zLr)v!RX%AdgXT)X~Ng!+yZ~>!0ZNgq{(}wNL;An6D+nmsUPoZz^-y)cCQHteM6@B9|H@ESi33M)0tXHTM{osi?@GDu#a=6xn+opcNCF~bc5daI*dMV|Rfy22Sneu= zW{R}L(+O`EIY{jqFbWqZY#2WaSx9Xw(2K$LYZ_Pz9Z&7QJ^|qH@gEm~AP$T5oM2{?T+}IR$U4W503Xk;-f@q5DyA}(2V7P#&B9jai$neJA86=@{AA}8z;5OO^KYdt@5KKE-sUvfYf0YOjmL5XrI$L?BKofU5i zEKlX>&0-JNUh(b-46)>n0J70K|8c8`8W2A8bxDQPMggN3b;2%nw6Jl)#__!HaXVKE zCeQPKJqL6{_Xt_%4C-^#1Y)3MR!BXz^^l4(xR%1t2noo9-*v7$f z^jkLAe}_1$;Ne_O`E8+u)MozyqbPd9KKit9c)y1DwvhO!r~#Cpj;a6nrLcOEr;e{9;1E*ATwHg2}GbgvheDM;-%FbcgV zY`zZ*S)hbBNCP;~>ZTWgr}qd|kOVkrgE_E-`>qL9K!wUj1<8*H%C~&XuZ5^b1v+R0 zHK2n~PztVJcchntHb?_Epo2>wi%Kwm1j2sme9nIeSAEv6{iFy5Nl5)QU;{aj1mMT}5CQv3NA`#4tJ5?R1|T7{ zSLBl7?C%$N01~>Ozz|R;|8x1F+nPwKGIzGp9))Rlw(Uoikr#mx00>vL1`;fPSgVAH zgd#==H0bal#E1jcj8K?Rg`rv&MOca02H{2#EF?uFVR6bslL}E5Okr_`t0@&Nrl2H| zU=52UZW?rD1w}}aa(EKGDeGg<5^Q7<&8cu_QJgxXQY}bjW1WaoHcoPQ6y!#wOnEv@ z2=%7Qge(oF6|uJG&!8-Z-h`unB4|PubgJ_0>-R63yC!H%p1l4)LO;?=*fP(m7b$}=muXKLEQ$c3~5nT=F?BHha z$pm=1G7#VZXorhBC*c1nS~7yxR0|c5Jm5-IR|_UHNdEXc`0(P#lP_<7{yh5h>em~d zvvI~v_b(s2dVzNYotX(cI+S!5Z$dSw@{oQaNI{@Q2e$N*3-`4_)>K7F;u3%&z%Za< zhJb|^3MAcBmI!A>1)_+F(Xmkt5p77qSOjTUp$Hv9_!LnEDrk_64^0T;g%GLoAB-)u z$R3eJ8hIp=Nh-PIW07HhMp{IPtmd6Vgsj%wLsE8@MMTSChT2UBbf%d@m%#>wL{?%p z08d(C_S-|abtYXz!AUlpM6QSlT|{zD24_T1bVdM`5t+6nRenl_C6kRh`Y5E4N;)Z} zkHWA~MiO0WQKpS;{{>)M963};fdIOIph7nml;eUhTGW+9Bo;+~NvU|TpqM0~;#C5M z5y@KBuZzjjR*3{jvJnjiwQownI(2rOdI6#{gIfJ9zS2Bt)UcIJdZi`ba}W>3_+S_3?7=UZ~4C@LACbz+8R zL;z!!0F@1_R>)0%XGZ0~YPuEWCT19uJ2J^7n|w0LDG#JdfyElca)gbMy6t`rX}j%% z)251QLaNq6;kMZN8nZ;Q0PX5qg#oqgsj(7W6ts$gC_+{aeX3B^1TD>M(?iq9leDW+ zTaeK-Ctb_2G>iW*hstfc{WjcjM|J4AJV}gM0S-I>FqI&GKj{P%4eZ$&Ap?I&6alLp z5Je$ca6Fj-uT93UM8@T&Hv$4Y1d6zWQ0fS% z=-e~U1{!pKv{_TAA%(7;J`^=XaBM_^8==Tji4+@+;Ot;^gv0_GbGQMdLMq|3uTh14 zh%p3;9&&=G>2D+a^B({cB0#U1rAA}>p7;vlK8wIle)O{+{;pyXy;LF}@D4VTDV;-VXhYagu1o9UiJ5kPh?y)rhhaB?f)E1$ksu~9WJEb# z>L8Q2CSpbaIE)f(8Wtwl><%{Afgu>fD8@08u__UqU_{RNmMWlB$*IOKI>@^$>TusXh;ztk|2t-2qWXD6YmUbgk`)XE_3-p83q7d5$T)_ z-}R8uQBjKzv6p1piBy!#7frV&p7`sU*dz*U1XdIVtR{*Q zDFke^pv(Vtva_A;3>PIFc$0YA@-b~m!H{ZyAwq?~@gNpKK|T>^5j0@XXQ|xd&oQXj=jUqVDpHWb-Itl7ld)h?NT zMbSdZA)-kHs$k{k)5jY<9Bq^~-x5TzHhve~SDR{_+y0*TOzHB3fHAsUL zqS^1D|FR&Mr0HW0k-%0FvMQyO3IU^kh0udec4eM@NN5u>+N<>pe|`NeaD&?z1t6ff z2=EbwfZe&F``u)~zDy#0lU44TwS_ z`T`0qM3*YAAcPj0OO-_wqQ6jnG^8V)vIZ(d1~;K}LM;6l8^6IT8-XLIaXVzmf{((r z<)cMnAnFXG_9ixFR*4TIhZm%vRx8GFYe(eb!|+xFokGJ#JoJ!R*BVBD1~u)j^>}J! zmwF(tc2%rvQPCi+Arz9nHny{^?QL_r+ur_mEo6X|n~3|7-w8EEKkZ1;T(cW=|Q@!eo zv|8V401!tH(j?vt}hr>NJ0*1 zSfvPBko*1fzyJRKKL7?`RM=R*dDKP};9`Wr@r=swHI_m!k3lSuXc=1+0^10nnf@U zV=)?^jj6#y0HQ)*;wQ$VJkBFM)}uXwhd?PrWJN?ia?5y#(n6#GB~-#3Y+XMMmVp?8 zA;2IC4e5^2AuVn&QY1uDL_j`t zcj?CHkcOc&(p}QxHd0DTL_`HaT3SFw`SJbl_wTvh=bYLHRW8tR{o4ewT+^pm{)HFS6Dt3vWlxv zcU}|x47N_44K3kmJIzA$*~QL3K&|79DTX8*%a;xfin{(Yxv+022hePd-DIS=f!T>+ zX5Lr`TSIo??BWK!B{pCj&gTwr~cEM|Bj5&eDv=>J@7^! zR|!os_CZIfRY#>qzp&@9@M5>-c)5;OrtYcNo!jqmoSrmxXCocVD-NJhW>xfmpacbP z8ZlU$M5wa~@}VTBh~0G-Sm6GDju=~z9dAjyii_zNbda1gij(ur5B^DsO|5^N{G*lO zjUo{pRS_Vo43%8;U{y*+yo}~@++L+Yw*hteeH2<4TY}}~enzvEbjCuiiK{aA<;$cduSd@0PB&4`Zbq!8^mON8F5s83I05o^G!R~Tg)`Z%_Pzdbs>sn-mbVSMtfh( z$H>j@qAF!ytoZ7zruZLbI|Eu$$7LTr3S{X5lo#oaEDPbf z0*m3RN6|H7Y5D*xeW*(ML5}9An${=)S1fI4Ep2s_mJT_B4acEe`w~|!=$cj~SHzxD z>oAI9At2pJ02YaznpPCQ0lIz)(a?yBW<|G3iML6`A&_;LBmI~rkT?yMcuUbvi_T!1 zl(?R^d(~6->f_qh6-3zrp^;TvXpx5&T@4`+nCnsDpxW18#QQhu`WfTYgkyO1(QlFn zZ}!EBto1~036gLSm8c7UUNMv(;kJSec+enNA*N;4v7>)B>CJ=Sp zvcs-a!I-zXdvB8@#yjfA`z0oZ>nElpCKu`_zer4N)KBe8ygRFZ_fKM)qG6g|a)z~G zhFfx0xM5aGa!#>fPD65Dr(xbm^1VgFdppSm=Y|Du$q&KTpmE8?xQ4}4$&a}WAB!ZH zDjSv>B|mjEeCn569&T8klKi~T@cE16myL!m`;uQVXANKfNv=>duFy-ZvNo=A@2@g~ z9%f94suK(Oq}FvB*NqxOu_Q9XjJKiY0A8e`Y2)TosV(+Waa$sb=nJVK950ooL};=& zbA}UkWGi?7@s?+5V$Xyqj~6jKu(1#S2lN1r;vNX^jN0Ji8p?E0>^U-}67bM-k4Cx#4OqkRtnP2P_}eOPYk{AGukc4_|G@iC40;KYgD zE=m!mLeVc{DSQs;P6@&j(p2%yRG%ylm@(v_PL^dV+?5@YH!@z}qDg?tCKyHhM?vvR zYX5G5?|nhsPM>=i$vktM1dWl@$jKNi47ws zgs2QNCgZ6?C?HHjqU-d|Rz7bpiO?!p*fk)u)9*5s#3G6XA&F~>ENo;9J5neN;}uv_ z+(ef4g!~sjJTygQFdiw1p_G>&M$jG!GNFZ6uuu=2bV!>L{)Yn136zUP zq+Ch_tu6bAAj?E9J2Wi!SV!h|ocvX67z_L3m^Mcz9CR~E>of}bs0}ShVk!40$F!k% z6lT83qxH;WP-wXbGwElB67`3Wd>ooB>I{dHOpl^)m8K9y@o>b5U`!PBuRNrWGzTNB zb?JO=sJ}F4Qn5j)w=4bh&e@|06;*I7k)>?IX-(ju2gJM3IV(N|Q+Uv{!5pwFkddf> z8a=%^lk6Y?LKxpPcWD*)Gla$m9@+$=nWN6aqu}Z76f!uJFU|tr&WHvFT*T4}1u494 z*U~z5LI$~~yye9_j(Z@j!@UA{baE37ZlU-Zg?4R(bG&lkIUDZ*nen8ez&0ou1<&~w zGc(vjrr`%+bMiDg79KY(wPGw?4q&c96fvjBlv8W7KpU+%AB985ugO})HeKh zASihJW-)YVXT{ucR4LHd$V>?t6d!NoBZIs>NTfaSzpWf2QvdK47HQj|%7U|bf)|&t zbkag!XkdOigetK_DcKKd>IQV6^Fq$tk#H=K$({ho>JS4+N4PXaa15%S48~YqIN63? z^FiaJgWL|!H(0f!BjOzEr^vEXV?Ti69><9(=`i^E(zE%M1ct`Abmy*#|D;E<&QFWB z2LJ|7v}6v<;pkMQ;f%Dd$JNbenVnkI7vyX}j9UaLG2S12ReqwndC2t@jmP|QiuvUZ z2t~_Cd)-FAI3LO=e(w<3g^%ve%Tjr~5(TA1xfd7#Oy1}Es8$VBuh$O~p-6)e9p88s zXU_1uk9F9@DVRrF>fWf<_x9Wph|718F5rksdW;oeLpMszVvo2MZq|;p-}IqWhfE zL!aBL{}-T6_oR=g7V${1&(St=xRYj5Elzj~3q3~;!C%iD)QAh>Si2elPAI;D?$+X- zaY{mM@7=zvOJwzhJ_mZN>9YSpOYl$Rs|2CP1-}5{@^L~N~e1cZMXe^#b+&GEd;ZXu!5j1)qJ$*6yw9GT>vBd3N45j!U z7P>~DeA$1Fd2`E~Wu12paQ~@f`K^ukzQ+lnOvFfs%cqtC{aVng4{N{ZLxx#TVlIp| ze&yf(t$P~@hO!~=NJdk_gzsC`5w4M-tUB4sGxp5!6s#(ofFwuVw7TGB3aA+4h;SNS z;~^V6{<9GkJ^rf;AFTIvmo|9NbWosJ&=s z)oP-(EXBw*^m;|~yJ#)lJ)vsn$i{|doPrR?{i>HZAn%+@})i?E{hemF=R zCiSTsvfKKaL)OQ(Urgv_`?KC$@2Ebta0Wux%eANx%ilp=_M5@+-B&vWub#`(ziU6* z{P3n2gSol_(wba{ok>g+$fDS%N=4}9cD%)5Hmnz*_c;Q{T zv&e`RqU8EEDnMS1ah&F5ro?&jAC0~oRgbE7r%qxGar7fn@btOmax3@p#s9JL*VY$; zdCtBSDNVUICRS5FJ0{*TAy-Sr$q#6;K@7l1QSJp)%(aY%Vl*O)o^z8*A0?Qo)~^<4 zefj9WmyJs$8qSDQ=Wv#cMP+qyj*dr@>fH^a)>F0&<7YiF+luj!k2NMy^fyIkI6Yp( zCh+?p{e^hAG>ym2Oz)b%H@EhB|K8H!*-w2D3Vy*-3Yk~trQ+OM?=A1WIeBFXha-{! zlrc|uGd_ZW10P+ort6Yj3R%eb)Ni4w25Hc?qGYcX4{KR))QTO)}ETRH$QGEbV zRR?}>;sGdPF%+3X7JQF0Sc0vSBxb9tg2-Gyl!UAeiBXw6868-S=Ua&82UfEq7m{VC ztk#~X>@TjRp`@DALEI*zEFiWEIX;kt;MBJSDark$kBZad8~I9IijAHOOC1kluTr|K zrJ00qro7<$MXu|aOsd^c(0d z*AF%#N(0EC_St`jrFuO%g_kmF1Gl95@^H~Id`Snnjnr*2O5<}+~p;uYqB(^$07vDG)<~W zC<(zhu|6YRbv`QD_GT8Y8?iH-I41h=^aS4W1SZr*fr~Vn!KB=Gl%s zf|&{b+|rXDo_>Q9*>q%6Tf7?C>;T7egRL@>=EfySu(xcwDpMJ$LG5c?M_buQQ=w=7 zt=|8ymXT1XPM?_`tFX=od#)$NSf=SZn8yC5ZP08;HzTKgT}bx1{$20m`!7R5dRdg&X_WRc2c2zlIbhyYp~A6aV`3yL6O_9wjaIDv!+d zkqmy!f$a%qp%N-2^j**N#l4)y> zzCItbKOFWzhQ&-BHOZ*!W;ppc%xd}JVKg7-DuiDKu$6TfD_gKS2it36KRb*^Ei0~5 z@b>d59wnMCBaTMph9rZJl1t}D0ej5DH#?4ySI@^N*Aos zgvD-Io!E;@P^a=FIG6ZY1) z==j=%{#~{>Y|^Lbr11Q56U7rglU8(Eq4am#v^f0geN)lThLFFz4m=Sb-xZy`>iqk| zuQ=lKLDBi^^S=jCJdv1HhT@AMrGG~m#gX5oi+@dq{5vV-d9rO>{QG_9zn?9|Pk#6m z|M`6W@0`f<^eC@@MpyI_t^kc{%W)9>93jhAz<`SeE z=Djo!u$s7{Z4M-@6Lg08*j6CyATxRy5X_{99^~b3pxwHgE$B;z`AU&V!T-h8H~!|yuWK_aD{2@707BBKDoo7#v;t^JATlh<7IoD}JM^mZkjC`8U&0Uzn+Xk82Effr zPV}X#DsQAf{)e#{29%}KZKoU9uJ#vPXSLf??=~|ufGPO+`C@7T8`BJQE&8^oUR#gQ zi$f^ak-mL1r3aD40E*{6Vk{PfiIMZ^@byfSGofaX_A+m1LCh)55=ElS<}J4sj_PSi zEJiRoT^AO&jN3czCiMJQgM-c4&8$ygxA(>SDP(lpFm&{X(w+#VpqALr5Gh*uqCq%AJrv_H@1Pb3 z*D=4JB?$!F<29^#XzRd5W-lP?FBm||X8+#CzCz6kpkhc7d^jtd)FPyEuXkZf$cs^g zogbjm0>mByII&mWa-x=wFbPIJMm`!N6VV)hvFEK~g~wv0a)=5%d>JYU_Rj%s*MNMv9_ls;W-9 z#+_`mUM9*c&(IXFZ(C&kpwRqrnXP-JlXtbNOSwY;rp_z4!8fcaAhJ35X=@nn)sqEW z&|*SFqis^{{g^5vY_mh^EBEYH=Zv1TP& zId9TSOG_&&E6dBvYin!k>+4%vTRS>B+S=N>ySw}Q`+IwPmr`+`bCZ^{6TcQ@t`z5d zE6*Q@$J7iZ*ArtZC!W6=&ut$~Z<;RaTd#k)(O&<(xoW%b)y|u)!lCDRr0mj>qL-t^ z6>m!$r)p~^DqCh6U(L1lE_C&M=q4=n?+)}Wb&M^xj1Y;$;o;%I!NIYyvB}BFiHV7! z&jWA2j?B)^zJLFIZfPV`F`NeQp2S_V)IV zA3t_?cMn#!&NkM5?d_g!?rk1z?49my9c}(TIyl=uIX*r@Cj9MYAH zS!pGP*}}Ed`@Vwxwd3VlYr?_fl;;r?R8?3b4*!e9M}Eb6BKc(e!=h^`3XH-DWY7FU zxycw8wq6?27Qk2TqPM8n!`|@ueo4BmxV@fb;;lUd)Y;KPa+^9^GqTXkI-BtU@9Piw z=tx)<=DJqaY`jo3HFeCOdg3efJ_K=HXRQtVDhn$&7R&;_wwd*3(un=yeXgLn_fn&jCLg6 zBpA;7zz@bg#A!oz!lLpp+`YqdeO#iU)vutB`r-F-C0)s%^R7YnTBl05Ou#IbP}l(u z6v=7YGe^f;Oxm2}6sk+ooV+(xR#g2!#6k7W&(EQolR3jy@mD%X*a$=rKOPKMz_=PT z3QWsX*j9XGOR`bk?AmNpGs=DZ5V=M9WRh=|fyH6{?Q*x&va5|Xk6IDlRgADu0ZLV}9BC1|uaY5!YFoU)}fp4So1wH2F68Z`V!0 zyb#*WH}jFEL{~|emu|EUX*uh@i=g|fb*6Q*`Je6reZQj)y$NK0t%NrlC`w@^FPx-v2t*ue5+_^r@? zES3p4K^pl9@`jVRG)^b|a72D;>-S<`|L>>;Wv-~q(;AZ}MygRa4C33fw5GL23xjVC z#oGdbK{QB^bNGt~Fn_%o&9`_@&&a7+9sdq9J)2*lxEz|zlguR=p z^2`Zat2kJ$qiL^Iy)74C9i$3e+;)SG^MRC6t?FVpCe-8m#1*r`xLf)xAuJ!W5)AOo zVelImxnfN#Dd96KZOa+8j>W5JbVI?G(XkB$WeGDX@CDnO;H%8PX3Sw$? z085(IJte&boY=Bxp|Z>g(;c20-xEBZ4K86aP4Fl$S@HPGTIl{x!oVtBOM>j<zDpqzO}muw~Ipn zn7QN{a(|pqWjnrgc9YZwJ+={1f4n;C%NjZAVplEzAjyrnKbhT;`jotF7uL~%S3 z>xJmfN1Gm%$G)6?F4J=-I&q=VM$!~x_kKoDmDMQrot%xzZFDy$zxRLOBe#v&-=Dac z&x9q*wh(;Vv(AmFUGSLy3L{BV@-=78?_PR6$I8FJS)bz)LNb$C+l6{5p4CqtTU(>b z2j^<8Q(bbbeAPH(>NdA_yt;_NPXm4-dkVEV~MZp_DJIx!rO_HeJ}ek97nLN8N=Surk>1SCfy zt7?v^5w;5gv`s$-I``k)4bXcBL;b=bFBAQZd#H+w=oe{PNANy^3}OcV>9o?bt3<^x z==c&q&}%4+a>*hCEaIig4RVb74eWPXlxSMsXdU?7HzreGELmlL#x1$)ju!_OG;Nrv zx&GwZ)&>Bv*@K@x{-l?1MOCD&{lS_U2hkBF!Kzm-QVy+u&~2{{!a-sDdsS4zB8j}m zjaV{H0FX{uvsRzZHD6$T_CR4&QcLSs3^V`jzp|P?v}SKo2of$Jq8QDqS{FZZx9_dT zZj^Utx~HBlQ!BMhS?Uem7JDmxk@uLKO{OXHU+72>i$K^4IyMMa$gAUF2@9JB99V`h zKpiZhzKQ=`$DZ=EcG~G6!3_3bd3n`u{;-P}8w#L@YMEvo63p@VE)VLOh~&I_?+Fi) za?e3XzUse{mIx780EY7(RV+06zd68~5=_?@;CNFo(%z7)3#u>}28NM)1OjevT?gA? zc_?nhIScNN1f!7vvgXjX6)@^22EwOSdUjV^#waa{aS&u-=yJbtz>~Gqr!^z|hf=&E zlS>)tG0Zepwam9Iosza0t3v`5H$!6d5{i8jK&w7UnqhXBYCpCs2ai-g*z#!%!;wo{ zbUYo39MdH|Hw+z{3uh)ic$@&$9dT^9X{71`%T>1Y*MphyBXpH%oHxym;Ecxsjjg)$7FXjjHspiL&v9j;}#+&}XeMSG`e5o;m6^%a@JIwY6U@!-22DEq&pafE z&eSnUNJE%PB!!=`7#r;pBnH00es?pfb0O6tOz8yf1~1K;Yk5*vB^oITwM~qm@B@Fh zvSBvOEH(8>9m2h;cBkDoQ+f`4EXFYs3cd9`j-kaqE+@x#)@=!dVI_|@*G%CwrJBHF zyxOKS08lTU%?z>`>O`>|f{tIxbB**a2b8WM%S>8%-qTi~W6n81 z!c{1SDuMUc-3DrQim;px>-auWE)3!i;i=)1(PeRi*%_skKmPHYMhq5}>#Ujl52VGQS5Xd<#{tlIlCo5;-bVjeh>M z+##d}+Sz4G2_yfW7r+&jp~?h63&|CY@_k%{&Qu0$i*asuWmIn)p@RzOTMFmH@)>R9 z0dM&}RY7ewWa&+dtB0X}VjR53=Dmzr6i4}h=_DwEW3L7p^D!S%RDsG3%Yu1RDNNIDh`f+0jnC34BVWx%|F-u$FMV7I3j-87Ziu>t7R%uz7VAO)y818{YW5SAQg<84l*9^pzJlAVp|QyjJ!?7 zbMgk`BLp(bP4Kewq4_-ou|mG$Hx#8>DUwvA<6lV57y920xNyvko#@rb&h8Tit)?#a zV6R^wiMPJEmqe;A*Rz>Ar(P}th>yx*5E|9i&)Xm(gj(}`F~kODHn-QYnjH8X$_RsB zPch&CA62;uN1-lb(&4|LcvUxVRmR}0+SjTy{R@o{V#PZFXhG7=FTyYHxjWZEL{;zA zMC59MqN>dqoAiR~_*bN@TRF0aqsZoIADf9>`{R+TSD9;Mul^I^`Utt(&p{8v8Z? zvVknhd%FipD<&}~hCuIzhcCIBUBAlk2I{C6(Or$^_bQoTZ6{|n6u`z((^lr*j(EAI z@^)B|do%e=)vtA^_inA@Cz~=kJXyQ_$emnaMJ}K8$nUAdpUjaKnl(0FEVuq-6-qHGA1gE<=^qaWXvsr54Ur>5dNJBEfs zGV;6sBbzBhtal~g3+AGl7HdR9+4|&Ji^ybKH=}T58HC#BP_1@p5J3IFrdK+nZ^jzB z^GBK9v_C1rN}LrS(pEAQ(P2o-Zm9`{PS___iMpvm4emJ9^1n$Um4ksu5SZTtW9!ZY ztf46&#c>Kfuq9Dl$tLT0LM`*dFFz?sdUkCRo7>U}q}50$C*a>VJk4>>!EQHM#=y$2 zyB3g8zm%Is>NIA(yw4Y2s!c#0&~_$FBP^bbGQagP5RsNXC{6fy<)>lYNHIGJjv)l} z;+3?&E>u&kI9r0VqBll-IF<)v)07tSO4}SNzBkN_8XLcMkL(FV(E^epp>PQf!=rbFa2Q~v7E23i2Ge)L6GY2Pdfl<}@)M#ojnE&a~$=x}h`cH~`j zO@EK{$R6y|GT)jKp*g&s;i#YbZzx@4QEgoxCErA9$cTsM>#uEcoMT#+ehb#?fAVDU=zr z(-TlCF7^*9GaGtPE`7`Zh3T7RxpK;*fq5m^=2E{>;Ua(8l=L?kxTch0sews$e3zru z8iAQciHpoBk z)-Nvq6$rfYlHoCZx=I>JhfFvRz9C0~i}js4xZ){adD4{5D0x8lpSw3ctY4(f2$w)m z2Y%2yLG zx(OCzgr9Kh6flfBFl{u=}suX^HE3+KWYZHhk~-fan1CrdE0|KTHJ!(T}<6zSYRT+gQTT zh>1(NGF^RM1FtTXuC6Hj+d3iUy`*BY*!cjFeNF944o1(f`lIiEE~x#?cbv6O`ZHMO zxY{^bj`0?h+3Qkz-e-!Hx!oy#a$1r8q2XDrvS6`~ixZG0^;jqv)i zMFHC@DV@v5a7F^@0ZY9@S7Q^L1CL9da1#{2l@h;^A3Zm&gWB1xq}%PoNk62y83pKD zC|d0AfZdi5>5pEwo{oy+AVlpCghQ3(R4FKsd!KxDX~V1Op#gOMNxZ>`2wOzx1os`fj2|~XK8q4xdqQO* zfAau$<-sE;&9Uvhuk6F+kn%BG3h`IUU$@b{I4q0(Nujai?SW^NQ{CcNk^U_1l0G?n zfz*n-WWXIEzvGcNdo@)?=Gf(Xt!C0c2pT%CI!`FGp+D%3==i>7ML-$8uIV$dr>pG) zw@dpRF)qg`bzO}OueN?Vy@B>W?WQN585Ezy8S@-Vj`3!k;jYr;0-(Ug4zsJHuR9+h zevQVrp{4&8tV^JFA*;bX*!SY^J4z= zB3uGpx1+i$Mv%VlzduyGR6uS;;VoY{M&2;rB1;6nV8vSLRlkd4_F??!e&5v~vyS;h zu+Xn*$cT=H{QC`Tz}4Why9{c!`0+$IC(kjJ1z?EB?z>yz`sqltklgo=*z%Ifnm1;Y zf2YqU`SBD+#1S6LJ2?*2CZqGU=SLER}4P@#dZPlEFUHSq6};5?KFoCxEM-(dXDBsee71<#rc zR{+(B;tiAG2%rZ(BpI#`w80aT;buVVPL>on3<$Xg2D1S?(d$$^c$sH#8DJ#d;ThZo zv>J^cdv?7n1<#!d*J8s}n*p|{u`Aj?g#W0z+^KcxVsn!adAdcMJuNNXLHJfOol2ibJ{0R?mOj7e>ZxcXFSMocX49T zwE}=r@KG6X0iZR$A_IOGsEI$xfO`V-@%EY5PcDX!%7n`SdGYO;@CO3P#=JQ4>)%`` z768Qpl>w9qxc6pBv1*E(p4?khG^WWF=6Ja*xCrGRFlF-qNEvUR1$PAc;s>(e0&wd? zJ+**3;mAY)%Jox(Nf!T0D%CTrsWt>14zBn8H5ZKlEH~ac@ zU?JW<7tV9N1e*(&0gaO3TXW%7aO(0?qNddGL6Ib)F+Y z87W@W`s0v^&)bn)C}E(GTqHNqUBGT9z3(`B<(YuZjs7&|e-Qjd9$a0^9PnR?18axG zt#9FG($^mAjsH5fzREiO;R+3XXfUY4zKYYjL(4mbqe9RfdF{+L|9A&XUc2aaTvIfUjgaV{(43 z4-=%GB@CP~HEze?m-6A_mXcsq_#286+%0QzR0&8xS(jAF-@2;FKHN(eolyM~&MNC> zQLEW%7pt*#?h_W6MX4AFf5?=L@bkU^)K00FJ_xfc~a-sw*4*VxI>f3q#{|i_Xv6EhD%m zqdgc1D@X4`5CgjEK6QKB)}v%?B6a+tAXNdblN{+RpXWD@{1GpTGw~lBv7=wXU3hg@toC4zs4Z5&7vL~=>CsC!!lSkO ziI^&C_!{`VEdA}`h+$x zx$9#3b-q0{3v;t;27x7!pCMFmYsG*WZ&!5P{6xa|sofbx1^siPUVu0`{WN1xpkhVT zPKx8nW|j4QJMIg?(S-R-F!)Hqqhqfslgiop^_UzoyG{L5D|#9bb*Gbzygu_muGBaP z1-l|hAUhK5(x`s3ht;ew74wUeg}4I(fYIfNl#M^f=j05*)HmA<(}NaBleLd1sJhL7 z)A;iuIO3LMLbK;<<*-L@jizOM%fHZQ_-6h^8YO-nVJLrnVqkYh!8QNomstHCFl?fU z6?!iEv`)yR*n78S1P}!a!rK+Yg)kCzR@F-&#)_dY*tS5%;skJaSMDjCCY{jtQ5@V?dts06Xp%Ltdn zu399r*o)YF?qMmnEwtBl;qHj-{Rq%aIHhi`f9sK(w%Ea8n^${NX2*rNACX&P$t6>7 zlvBI$=vsJauSG{1{>cQSpKWZoA5CS7YtdbHU_(g9^NY^Z>oC~br98C;{<=n6K8X*Al0;VmVVeDk!mPgdYlXSHYJUS;?$>{^2PJ_vVzG zn*)x*6mXO$FA(k9V4^$Ct3|bfW&XVZp>xs$GNj1VhQP{g2x6snV;j#k@v>!bZj3)U zn;aUzu!T--HEa2&;vICzZhtmgJ$$pZ<(YS+0B2QTEJfEdA&OAIWkTEQCYBOl7>)feH@C*AIypYVGS@b%HM#VaTjfS3)|XM`D4@0N_&0NAJE&N)6_+f@hIfAjL|i z88;SaRK0y%<{QJWUIL^S#W7W1kA)srLQQ2zWR2|P8b}t&kzeR5z6+W89Jwm!eZ5ih zLf_cdFU~As01q-&EC4K80+g$$@zaRPtXz+3R2Pe3!t6U@3(vBFXjkFDW(q)twHu41 z5RQ!f5Fnt;$6))JTkE5Z7QZMK&;mmm4}9bxs+Nj5y_$kmcUu(+V}V!elOo5wlM{?Y zs>eZi5WNYwal@I#G!%LN7-Wpm>}YhGjOP6vd@m1*O&=Bm8xY2@E8N&7I#CeIeU;gx z%uc$#ja$;;b9Xq$@1X?H_^0J?R?clO%)2`8!C5DPLPG|}RKG$l-$kTY0u^I}*X0RlxaFz%wot*q-@H zjhnS*4eq)p#2ApMqrPw7j`dv6LP!72#t7PC5;JKO3^Q+xmfUk->RlYR@Hv?8#5YvH zt$=-aic0uRHVp^O?qA`&WJtM*fX0);lfKQTrtRAIHSlJYa5?T`@_CHX*{inKKfIM* zDY;Z+`L_-3`n*y5a?%*07J`3S2}c7N@LQGeav%c#tO}k1gm&^&!@mMC<%07-zXg=w z#gH%SrXPh!z!^790U%IwQ*3l7KxdQM&?UgxWltLyRD`4*B@eOL4B7Z7*bL+_#06JY z#qps+hNEnotAct&iip_IVO;nZm+04;5GxT#AIW-41oL~-AFb)fS{+rkX>ADNsz%XI zBN@9;TzMofQBe+sY7Ao^kk{VDn$491<|c=w}xp>1gBG%eV6Hz2ylM;R>uNGoVHUZe|u~zqHwW`9dsTQ^a_} zwW0_BF##FJxK#FIpDc-`3P&03i3Oh3WL>(IK;lJ4#R6LiIh?gY!aHRP?pe*K5W8*b zmD->kLkBNbchFm4SN23J9{YqKaO`uC*u6CErW*0)2k$~-K6sN5Qyx6%KWG}C#8w7H7p}K8cN_Ap5%3W!@qByIg zdV{M(5)i5XqV)21s7u_ls&{^RiU$VocIxZ}VDvOYNLX8w`XC$6ObKFd(%`e_(EqhGzpA7 zt}(h4tKYefpsZrAmuTy$pFxa>p*1=m*QRn))d*A=y@BSO2rZFIR!SFg$Fv|kr4 zYAm{61)^hW2c(ja{ZmuyoZ^AC800&ISLHWRIzZ#$8AX!K=0=hBkZ?Xb3GQ!jbI^|T)o`D zf@NxU23gk*D85SnBQ;}a@kd5`bwQc+)+K&{wSK_!W<5b4`b{k7pbr|_0!s!ns!2lh zn&>pmx>cLI<)|4j#Q@`M>C|Dspj>0nMhkkc z1r0rt$d+DJ^y4KPVc_t2VnS;9vfo0&#)Xq4+K66<$3nYcX00laF1pXAidh$}RE(vY z9}!mw;K+|1sJ-%+c+<9Iu{Sg(FLhOqHq;c~Y>os41VRGP&=anZO>y46B-JBdHg6iI z9}?~IKQU9JmZv8Y0L_q&dN0=i>*mHY#)j1e(P;yBTp#F%&ZhV-TJ1_s{Y@KVpa|!v zw!woS-~elsCF913Qle zocnzVKJYQr3`uQ62e#30{*Zg8sdW3NwN<;Jz>YZc8G`c+fjzMMdh!sjEunt)*yAQs zz)!UgsE~hGN7hyyL5_-s9EaBRAkJ)gOzQ64PyQxmL4jx5U;3js=U(|N-kdTB3e@N1k=i<97%?3+T3OxR7<9WcXr7`y z=xhk#hVM%A6xNactTsmCM1KBMQ6_#?&# zRcl237HBrUL1YK}WF@Of_ z26=E*l~{Y?lRVh<4!Bt+Z&Ro2ci5WryBU}Ni(0U^sMu3GKviJV7pF&pV9Eg`pVo>u zy=cJAK>v=^tVT_b-ocK5vXhu0E!`&vjU3m;@lm1#Q+QQXHKZCPXn4)0KwbMcC1Tow z_=!B1M9u_7w}W=Q%ZLz--`?}#fuz2Pc9k zrHYaC0Foep6!0L_x*X#QSw_-F{{8S(btpuvc0{?mb@78TCk*GnC&F-Z)?e8t0n$0zgYlm(Z;m#nhWv%`@ z%^z*sKRSIYa6Rj5BBZlkTQH_oEnX-_{q4a&iHXyL+1Gl8x8CBnlj7@N@=%`2iwiOI zO)sbgy7$;#{qODn_n;bSlUh~~cWKDg>HL;SMtx(e(9o)-fc6Ml+|qNtf#50b%{ zVz<9EV#orh=;8ZY644Y_w49=A_FC}_e45!{Er%h&D*jfJYH)f|5-11FtRfz(87Hvo zdMTP7SDw-KuiEy;!1wWJSxZRvV?4})nG;_eO-qj<#<8g7dRn)+%%~RJKN=c;1^E!!;j9h6;{rMQo0b>5JhbjslmsE-+HdIVudvDbSFe7`3Z^5@5fj z*nC%t(Zy>Nh6n9_XmR<_Ul}9o;D+AmHdyq$C6s z5CjDkP!#p0e0YC<`Thsj?fh`gd0yv!e>~W+yTV{vITH%C;9aUrT7kYn8g})DltFsg z7be4uN{6$<%oqmK5f;5eSazxr>qpHz{q?JvrRr1X<)hqQO><+sK`%`2j9-pAoEvZ2 z#$j}kA0x#lkhWqc<6qwrOpzQ`w*TLZGMm2Ab2$H8q)atFX}C{n;l;H%L-UsktN$~j z_NcCjvM-52XHl{b-3{ACg?9bn-_ZJJIy#?Dm`0t`8EduAE9SGMZvy}K7MKa zF7}n>xf=wAAQ0Zg!=zU>6Nc@DQ^hJebJxNX-{1MLIxF%tS>J@vT;e* zlV07)GmRrt)>(Lf*|tJIllq>f8Cr@v2S@=p8r%D#t>v$dQq|Nb^-eEaX`s@l@ug=+q~ z*;F7KMj1xQ2NnF7V-l;zja-%iDG2yojbpSO{Q*$! z-K&yz5yUG(=emw^S>b+BRPtLe)0JMWBV2Is!Qf@hq4>#I5K1nemyxj|h4V}HJuWy= z*Qzd_(;p43CeX3mUGAVd%DltjJHb+ueB)jW+D%yz`U`B8e4LUFW;NWpkdwypyeeqb z@_CsxK{Sq3{7`5PGl5BRo!S&?}sqT2szF49ahc9E~4e!x4dc^)0^?> zYjCqD{TtpP1xxE&lDxq>0Ylm1U4|&>l8R|Z|E3~?U)37fD{?JLLQyOW6&Ng{Lnj@= zf++oP6T~y?+ivF1y*bGB1)c0|WW>RgBTQrR(Zq75f*t$4W}V`dt#X)6g*^hpWC+xncllY6n4|@K<=y z1dZ4+ALo{(Hq~OD95^1QO3DNhTKOn78v1iswd-LOiMt}27n4hp3xSFm@AVE>Utw8T zW+ARkd3#4T&6cq@q)h68hxrGd_TCQ#7g4EKnx%Md)XWUkuUdRI&+}%pPyC*&P|9~j z@Y(CWu%#43m>)$u+HUK@imLSfjLGy_S-wy_1Yw6eM*s`w!#RoEQ$eXaQ?*)(8;EY=$CW? zF&9(Z=QZKd4R3$&xb-te1!!*bKK-R!HNe#!VD)XS>@zhEpc0duZuoKgA!qT3@O9Y& z&Er`siL1tu~=P@aIF( z@RPi9hl)lQG?glRsGzm<&826NPZ*qzF#M{n``D@>#fPb3AoOZg=##A5T2m^#7q*EI zHpaB;TiLM``NuJZ#Of#O^L!mAGyX%EWelCcOvHV1u^BgV4q@Gh$&a9O@xGsyDoFY; zs2Xs8q3q!+6VYW4{LQOB5!TdTO*=&zu2(Z6EpRDK&S-D#+so&3Wp`??+TVrCKa-NE zN8G1Xz3l7E{6|^0V2uW`{pp8QcRQ1pCjDfJ4bQicMdqNS!k}VTyBl{vT{P&b4Avz{ z!&@&6dVskfdcI+;4>sI#yfHf7aMjMhC$7ce8ga8j5Nvl+2R=?ONp==`k6<@&<`-&S zhlcz=>C0MiU(tRinH}f-C@hspZo~h7(w8N2*kYq`_lkhqTTMm{@!}fK9yn%30pXO$m@R$q-3OWXA1nt;<3T#alm zPxRHSksQZ+@(LAR8g1@cNOuIjhjR$LU2%UD?4M(cs5LzQpGfvLyP@?AS&VMwi^j1L z?*|?5oQlwHU*V81;#I*u8l|eKA=EK6+&k5&6;<_xA=n$qg80js&0s3!oX5Yo z0`J1ExbHjA3chj#e)gV?0XI%gR8s0wL$)L^{JGNE!w7!r#>)Kwl=)Q&)!O zP9RM!if*YM)COVE2XNqIn%E=S_&~8zToDwAY)NGAqWBO4VI^%aUKeN{37GXa$ew{U zAJMtO=~QSz?QQh^NAwp6uABjghlT=e!A($#R^7Seik$i{*ml!>)?jUqxI66OA}ntj zROEv^l#kgoSlCS4DF_TCQpSa|*7}9En+TfLs9o8rorCHFN0czPUCb8tPH(<)|@_xDS_KZL@UYXtfcLa54kD{MS&;WyX%n zK0%xVL6LRCe6QwsJO=q!Wd)EGaL+Mlxd!Su$m4sC(%~FaBvIfm3xYZq!EwSjc#qGL zwQj%^EP==)?)jXE=H4YT!*SHM+VH9EXi9SErx#MQcpNw-8GQc`*-bA@rMTSe6t4ee(&!*b26GLKx@+r)4$L{T(s!t^0RT;F{87p^#(=NYkqSqDW_ zzlmyrk8?>^2P>}2=1HO0#F1pGc^1VKZCSzX8%Q)ujo@{U$391Ua$a)R?31tcoG9JA zCNqb6q)D@)305*)5Xm-Ix*ejb0HY^~AO(o{8M$r<-+nh5cJxczCr}<%OHB+@7e+K*SXoFNHutc z2MHQTiUzL>hA~vRK0)_^hI~qmJhDPdYfsBH-_t!*h-X1Z;k*9wI0lI;Da}J`gz9Kj z{I*F3l~CzTf)}(85r@E~r=6k>@u`~05MR{wdJTh~P@xwV%C;hyazW#TZ7RWJ6+!T= zkDp{#zZ)TmM(v@dRCSN&IKniw#qobX3eOr&CRVVuAn48j!Dz6#LV>v;R!sP{dNhiq z7ePNo(J#OnJgP_XJWliln^0*R`C(P4lEHPurdrb?nx_f6r%0y!Yt|Te1qBw$Dn=Ji zmr0;IH|e~3hI7sg6T15vA@W+pki*jQRJ@Hv14*q(O7AL zji_oYbsmcex*QRRbWFgcjXS^z8qx9g!4AEgC05a4v;~C$BY+9<*VtHej`cq;saag>SHB%)WC*2~zV2Vjl7puCH+- z`fU`7yPdiWn)~l9y&)yLd=+&$Th^VI# zDqCKbKgIPgsb;`R@;@TeDWH7or~{9vvSkqPgN+99428X0|5Gt-86m}KDv0G4q`3&8 zv)1awM_-!}MIp=@T_bOA-^kL7&bnk{Pa|4eV@vOR_s@O=PoTF+YsCG6*o+%4-Iq{( zH*gediMDp&KMW@q!4B8 z6%p?qln_dylpu=WpLwZ(TBC?I}BvhYu&Nff8WFJXyazS6(M&mo+lIjFqoP$8@m zPP>P>oD1L+*U?=}VB8GHjKFZ*nfPdI=FjBJgGe#Ha;jPGvNAJpE_d^$1p7PhX2f=u ziVxj0ZxBHTE;I4+i_)W?t7Xe{54Tc99Wa4N!k=!J5_4-IMJ1dxT9+BD8@5C>-$Qk> zB01AjvD{N8fNBQ+Mr_+QqlUtmaTChr_y0B`^`~AER$qp51C%Ai3BuhR--}eWYlhf8 zw0}uvQI=p*tPn@kiBs@#*z()h3PD1}!mo;5nc|u;vw*6qzUEXtH;(VDrBT?@)8x`= zB{2qC@rdgZ`%z^zN9eR!WGT?I;vwY03Qs3}-C6KVc*4@veh#|<8VV!QHp5Lgc z;oZ)f(;Ed5@T1H_qq_;}DIdV%MDN*fC+ABqw^H1=L@+ygnm{2$Y8p2t2rY(ESD=@mqi9bQXlrXo_p3h92w zb|mY8Vp`MpR&hYDo7fVCc6 ztzz5P36NLpEc8T+S~urf_)d4^r--&lD?vtEFj7jT&$oyt}b9l7*pO~MSmv*F&Q!7Yh6(ky#a zSJv9BhU$u??JZk*>BuBN1|R^4;-{$$Ds)vt_5J{S%P@85I9derI#1&x;=`}JD_LOO z_HW{ge~}N>Hp+t};`$~<1Pta9BjMf4jW6*T_e-hrw`b(B)$4+1hIt;(|r%M!l#vOAxPjy2x_qf_1P zdiSb}JN&$_cP^$qnE!cwVJ^n|`db83==0|2Pg~Z{K`w=qcnCd@DoLh%D2c&CsRBT{ zXu`s|TynUA7BMg`j94GxSYtRx=-fbpFNp=qnI}RIM8beU43&&4Yp4ku9$lLN_Er`X z6Wik`)J)^C)J0XBRkOj>4fS$_byHATcKxXejZ4iA&+h)EyY4$@Nvzn}V%wcEYWH31 zjg4Nsa|;~E96lvpCp}13SoXFA9;3^NQNeQ13p4%gXgaS-9D`EF&SXBfq`vJ3KjM8_ z9;Ui_%4P$gP9K-d-Mfk3pLe-j^3g@q(q4xnzrw3qc=t0g%PiOA3{**7QOU=B^Gm~* zJLx5ZQ?cS`d9UJow9<7-o0|=#H-FM49rAP?w&@k!zc;&x@LSVNFyM1i8u;(m_XFcE zn!@_!#@3}rws&q5!0wj1M!-4O@rt9u?x>B+)n5gcqE%M_gmZEd{uFH_$2j49k3SCT zLPB-jx#xdBXld46Vb>IHq@ZM)ohs8FX>KHw{DexI-Qwa8nQBfxn}*U-$E0^y_CO;X4tVnVvGW<;R5fJ3M(~Ll3$NP{Rd#R4{mDb z^JCOIbQW`26_i}?kK+Ep>MY%q%9qIA)TwnbT086%QP}qD;soU|j!_mUhn0EQ?J}CY z>XbM-@4AXi{ZCSNs;VYZWWvT~3uUNHM&e=|XvHxt1CYk1PH8Sq9z%{_uXDI^(7x?s z|E|Nu`J6*BJXKXhU0RcKiToN(O6H=y{^k8J3GI4ik4-APO4zo`EmL@>=Pi2n(9uwt zup8M`7K$Hy^w}I5m!Vv*m9pDdFVo9B5#O@+z6h^+VI^vA zq(t1NcmRJlglwVOMgh^x`d+Ib!Urj%+&3w-dSzTe!BceUrJa_K`qJgV4D4HCL*A`^ zw>ibVb_&yhw%%FMQXbFEUh371ha8iMxYQdmQZDTNYPFwDe627n97~_jj*r z2imVjyrWu=Ns6aFhdV=9pqq@X=v=1PHruR>Z}G(gtjCfjTd9)OChxh_X2QSper?Gv zF9Q@k`Mu14Ot#Rl&fdYADpFLxVZUzleWPlgN52CjbQd{-_v8t+^v&3j4F&31$~SGl zA~u%n)BomQ-KA!{G`ARkD(o4+!t$3&NDUtQ5z2uf4CK6uf!b=Fn>>XJet#uts)+so z4a7?)nK*}*xKfU|%o6vJft)&lMb1NG&)})ElCM*t;ufc@y;l!Gt*>7;5B;fly^HygIEj6xnJF_%ncMv8gO zCS~msH>5(lhtEl3iKIr}a_(0)ZN@u;FgzoblV}B50DfJBPA#V#M3a#H=~x2k+5r1> z2B&adCkQ{CS_eVJvat?&Ay-sV|8wsgumfEYC4HX~1d;1o7Fk4C+@?ht632UkjFCxX zmk$t`*5uF@kx#B9DxY}{wJ8}8;_w256eDP(5@UhccT(z@!57@*WKXFYS#C4DQc5T& zDP&DRI!q}WyM3j|SMS4T=p}7_PB%5QybHF6B7t>MG{K2WbDt3h~B5g8$%@84nnd- ztd_s6B?(b@KaXZY*2%Lu#cpkTI6oaN^>=*><4~^L<1~W^M<*~LPVim1Xsmd2tbw)g z$?LZ8U47o@hI8l;ZRt>Aq4nvzk9=&_=`RY>{z&OMdW>5?2QLNNUupIdt<*k`aVclI zCdN_msn`G;1bk=|18nrO%Lhix{9f|;Gn+~0Vjshe)$R!EusQ%-=<3{* zh39Hv2FUZ8Y;0~50$&CfV83-Az5yoJ!7v9_bq4cwbQRr0zPd(B9CHI7zjuCry^;Uo z+QU}Oc<6t^L*Y8X)Gf$O09MECnx z$@%Yyx*0-TgZg@LZKfzG1zi9_5iCrJh|{OrpS(+*!!G4H!g;;Rao^;@P<&IOl9 zjvNI9t_?S5WR@WB#l)au^_C6#Tpe70}1-*MgDeRxic{Tx_EJ8dk^V zsP!f`B}o8U{gLpXd1x7^Q!pLbGtl`XW%j_|AoLF1d()*mm6g&YT6zLpu=`pAjl2n% z6XkS*+F7*D$&UX~Hi7=)i}1XHo&Q~yw<}#$1|v%+A$W~}P}Mcf^K8NMLd(O7Z!K@| zEXM>r7Z%W#;)ne+%imv$nLxGnu?O~lHIWb`NpgoaGmuYZm3z$Yo>#Q9TP<;o`R=Ub z5eEJTmUedCvvEUY=cW5gB}3vTVH0W1w^!qTeP^BhkPw4sZY)7q!tMBd5 z%!O?AFvT#bf#0y?gdgdRe!mR&MUr$=@=xVrE=XVJ$=m?*3y&FiK@U6^;R^NPO}#*ee#X)*7H5%{CUu%mc}zYyK$`! zI}I@+-872PEU4(Zm;ImtfFt~Fanth2Kv}AqhMsb45 zN`g9<1X?Un(=*Y;Gl@n6AtuNmm@raXMFD17^;fmXJx_L0Ett>`=*)*nv|A}d4A z^Vs-TqSNP-XjzO^MBs8~tSsZK=G1yQ-#ur-qBwsN>@W}|kZ;(a!Sw?8fVQFH=sof> zp~uo2NwToUM1tF_=t1H1@pzedM_Np@f~k8EJ77&pt*<*zg(C4_u5zkIXj;2i8h=Hs z(JVlVz9^^H*$t2DhkA0bCcEfLD}L}|eb142?;hh|a(Mg=Z!vgLK8e=(VomXagXULF zGpK_yURtoTKs^H63E4DkVRalO;~Z)1DFN-e?;>vm=)zfS+`;YcR}|?H-EgT0c27&< zo+aBCu~eGe3_PUWbVo6b+AI6?6vRQ!=Eydt{g}-R%fTJPVgexygfx1z>#lnorP72l zY`489Mr;G90|5pcg!z=?o(&tDC+oB)oP`T`ph(X@LQ-`W)GWUT9NoTd%O+O>&qam4 z;2?#8ZsuCa+avAYadA#+W%XGQc@z`qG3Lr_=T7*7$gD=u>omFPHbIiLb#P)05whi@ z&z*C}tI#8*(5t@iLWI`|OoNbtsLh;^lJKw|lWkf=OrWc96h!P72geyJ({k>Qt{XJO zpwi?5S{6s(f)t)JlAVMv=oUhe_7HB)EiuyjGqWTT$K-BSAkqn>L~jmb`z``sdz@E+ zcSZ!eWoZ`_Yi~s>{3=pn$x6%jS}kC+?;D zRPe66p%JdAIm5OgFD-}I8^ed@Nsvw)`g3g(?NT^YoF9thT-S34j?6+iViD>3j1Lzi=!TKtFGdx)zUeVAhBz)g!szj%q zN9v4gfUaSV`j!t*8$`D0`fV#$f=l2mV3AJ*zhTK$)IOkA2PD zLz~ih>!8yRfAC1l`5b|MR)5~m`kylVpZ62F#Wsc@y?eIo1LMWnvZ+qCaETPj_qLAo zERK)F;oYgl>?)izxg3vh5WB_#0eUudr4EUMr+E7Ac*$Ww1l@$})cCEu@k`q5 z4phsq%$_;%AmZ;oHRPf8M=oD}yyoa&)F zeqz_I*7%3BYcx0bS}#?6SF|GQ08d8#gnonQQ_c8#`#1MADNd1j>DDfNL-*N)RJ!LR z`xgxQU$4RGG!)*C)yf}q<7mT^D74II2=q1A@hK|=U32Quso`^zVXNo8IeTt(>*I!} zvZoyDKk=Qv4my)M&pUrNKChW{{de$ul3E#D`W$dzZC@*=$sGu6&yZL)lDO|s(^$vj z0S~l?_fD}6_;8dVJWV?L6z2L=fAlT+42h->iK}+MiGXO$YA?O<3;h{Jl!=Iui6{t8 z&e(!r_N=}<8+hK?qoq=TPQR?>Ty?Jh9G26t=Y==@SYM*u)1@=mkPYLuRqh>VsPB4B zp&k^g6K(&a)F*`$*ZVK;Ds<>nWr)dsNaDqq-{Dw5A35pBOJ%y_(-Q33e__{~#zTr| zW24${n?e~V!{Y2&Sc4JH{b7yt7VY)kbzSynDxQWh_Ju!3if^8I(_Jr3D!rVyy*c&5tm zvi@)s`o-wF$qqgDqa$FHqb)hTzVtzz?bM|3mbb3^%VpI8?e+|ec+f4WOy-V~L)(j> z6-rusI;8ww#bmyqX`hqBlr{I5$l#!sYzAHyM6s2ap2bZ2G)@0Ke09z+t68fp3iFp^ z2p^uLT_2+ziJ^`{L|9O?Ri`-{10h#!W@h+CQc8O&R3AyjTNS2outfI2z74yW<`+uM zXq)PKHC;N>hFfE^{#$!S+Mm%B?n}30|7^&PPI*#%|CL?uD;nNe|2f=S`9+Y{}+pP=%W%?X$9Z0Ps?!g+@7^>^U6feYcXJQmQ|?2eKNj|wzVvFA>_5r9)0*}Ff7 z@#);oTY_%+>@sjJOsoj~ed8B2?^jOIX)o@zy)>pVx?J2sGuXDI+sX20hK|M9+PPix zxcFGiDedy&@8nenXP3}FHRefQzkK80@GT%(0b7y)lW1m^tr zOx|xq-Bvw^b8QTC{C(pY*4nZme)qWT$D5aVha;Q+aSr;icNMJXY(>|FNcuANHOjI2 z=x?3Yy`zb*2Ld^?l}o6%8pAeLB#C3Ix0*iqaco>+xr}xZKqY|C+Y(0a75-&2ypA3D zZz^imTc}5lc~(L76Y#N1#x?{0B7e{TH2IEn_|C2DUV%Ql56_CTX`AUPSFv7xAR{M( z6FaX0IU~M)Ak^|!!vcfsVC*ep7}DOlUCp8qK9{uin9{KF68^;Zz2@LHt0|}m%^J&L z<%wR!^II`;b9Qj-MP%-$_$U463<=)rUegC?OmKD?Z?sGl)b0Y>Ksdhcb6i2t4MYUo zATz`D^Z85a!3H;9q(%KD0qS{&_}wd(6+y9+!tF1g^mAED!1>ubc<&sfu@~mby|28u z^yN5kx4@Yj^A~jY%s#H9zJ;Gwut%%2-ed=ZF?3TjmnL5~%*=e=U`h(uf&5{ihEXcr z7p7bL{5&y`TMLzRGVkzld;)8No7FR0?aeK%m#gtF2HK@LU8a`OL9W|FB)ZwM{$vo2+R z4j62BB6@O_`J3jwx4}PGbKW-p%Q4xrhQ=NOV#Ae~58=%-oMZTfz6z%Xo?BlR*o@0# z;C~{{`yGNty8I>0Uco_MIjM}x9%r^6%kO5fID!i2X)%%hKA++o(MqEF!~X0nT$?

77ppns;v_mqko_D&E1f z4NvLjjF@n$Xos{Bay$Z`Ogm504SIrvLrIs+~pbUS&n^Q@8(=`1&*8 z7^Xu8=(4+CzWTd?H*CzN)g;JCXh8N0zrC4*eR?aO+k$ufExpbj)9HK_UTpjc8VC20 zIQMq(MZD{#E6okOm`Wi4gU||Y36lt8qob2CAs~`igtZSf0}&%B+zS5bViPEW5ua9O zX~CW#RW2(_jC{7)d;PQ|2O|sI905&4D)F4@YPyzZ0WwA-dNQeFU<~L*{@G?F!C1Wh z`-^UTgV>;|?iD&X_iiOijq_-xu>I1ZZKv03qtMr&p|z(%idF>rtznE=7!qf@w*2)r zC7zmD#9`&gc_fA7s{8uNvFk*RaO<{f;vkq-=Y-u(IM}jWRfkUshf6eG93(=3K=Sd# zIEsxohEL*nL5CXUVc*nzWUi40lV{E0mc`fK%3x6Ekw4HB56OtJV&gM$@YOnho2F*B zsJBw3mG9hcpYF$bh6a1wmZUbpRpn%XdUcvo9NzmAdqkBj-;^ANAIaYZo+J=DJb`nR z9lBn!6Gf8D?CXF^O-ghgVHuc}FKW9!G#s?po;0MjG8o7oYqFbL1Zi>FhaPKj;a!`K z9!q8_66r8dzK?8}mcVV2q#|!qHVAs6S7DjjNupczT-d*!_I(ZdJWW0rQMV*y2M48; z+WS|0?NIRQTh|*P0YTgiNU$&-wK9h;UsQ z6YN4O-t&F>BzewlZuvy>=_jnK zAoC|45VF4u-JYjf5r|4v{jpP*Ct0!i-lPaJSCCagm$E&kZyol-*0Zu8+|Il4NqCi| zGD}sq5oz>C9=7|mtJPTKFMGK$uEKxawvPRi-g;<=T&2+>pC{Q@o@;(7T;Dph{&NpBR}!NT(MPY|4W5z~kHCe3Bd0~}F%S8N`;_aaX?(+Va* zi1ElVF^hOmR{tuVXSO{rnHI~5jG$7)BGqTiFA*x`eqS2OaN;Ko`8)`JQ!W4fjdLaQ zr+H90?2|<0Rn!XoCqf4PWV5KB`feU6mFn;^4wULK8AYabm#r{A2UtDrk^lHyzIhG& z`SB-!LUk$TXhOMU1_d@esFLeVnVE2W%tn;E88!N%&ZipgNse!ap(tyT6VgK@n#g(c zX6&JsYCJWQC!boldB;@ni2BFxU!I&Pro1A@T~B)v4<^OdNEYC8qbi=V_*0;Qq~cI= zlOm6DByHWqa7uZan0oEwbw>60m$d<~jbWHR1*TqSB7Jic6uG$HY*dyV_`9Bir3HRn z!dWv>D)33`=O{k}Zd!K_LTXP8-8R#QQF>TUT4^DHlBfr|l}z$|zwekN@b2Jf)y^;z zHim=`&x}WW+3;60(V2oYd|PO-Ncf8mP^eD|*5l zO~!O`jrxoTh6X%LAfT&{vFeViY#E!6h8&0n4L`8IpJ2#=wD@e2E|Q9NRBp?;yqH7} z^?Gd&2ch{`O$>})t$1^ilqB*qO0Fkf z^)N`JbV3yUK><9`6nn+3!cN&#OOz9rO41~a!WG5X3x!R}q|!cp(#=(^oAIfYA~R6K zbMsi-Jlypv*qG5xJ5iraErQ9|Op%+!w%q(_h+)&FS$u{Y#s><+IP!yZxTj2!G{G(i zmJU3HW#B0H@%n^_4pbzTj3s z*iePQq#66|`f*z1D|Dd01N!hxI=Jljs32-b^mWmO7k}8MyD>2&z&QNKsQ5mDM#~9tRU>{&4F6L z7kHQsFky*|0zT@nqF+6Mg3G%H#Z=z)TJhBE(1rT>{DeO(%w%yZ|LaSTqTR>e$~{}~ zp+lJP@6*||!{eKvDhC)y4LcP?u9D=K|JO?{_nuM$V4E>b5ke;9?P*UqQSQbHxNpudWuV-no2j@!3 z&!d&d4R*0&DG|iZ|GW;waxqxsvB-6n|2ufH8!b-066qO^v8>y8Ik*7}@wBK`1-fiV&)L&=a zuk(_Oo`BRVV3jRD2JhLw`|}~<`AwTzzSioxXWt_RZ)@U;!A{Ky>o4 z(^=ow0{67dwN2i=$Z@rQLFWv23JTry_~+4aCv+c2sptd{tgSx@xTRa$koX@`b$&T_ zLnPjd?M1zc{TD*c8zHc08IXhdL#xh5S?+>B(~r0~dDS_Q5^EjLiLOBa-`}@-dv}-n z|DF0>MLfrY2vc?)pA_3_`=xAV4LD0@0y9hhnv~7&Ni2S!_ilWHqF0A&5+MT{lpm7^jOBv2Etrg*43);-Yk1DH{9n)@}2M z{vY2HJfa=Nj!9&X^%LX zdYLBMqpe330ddQ7i1@DIbN&;V4Y~s%KKAt0nG_{~f&PexER)dSdG&gCBc zy?rCWiRSa#Q{%*X!KS}bCsGtpUH-{}5^=VBN~P?V0h-zYO(Vq+lgd2nP00*Nl<#M4Ne>pV2OA%??Y(2SKF4lZfl&gg zWxB}U@oCsX7O~Z%Y3ZP4<*Q}APBvTw{m08-%vWB%@_f&eM`7!k^`X}7|Fm!n_%XKn zo6HkL1I3Fem0XUNuLk6N=H!TNn$D%#-c8y*ePbnoNv?(rYWd|~aAR2r!oR%2rr+|u zsyd;DI$;ju>>wRt_mEG}MZCZ`h^!vorxWu+Cw5(@W`c_POow1W*zE!T-quM_)lD?i zO>)pp_SL-?qf1KHO)1q)ZPJxW>(fntp_{R;n|Y|4^`CAwgI*4wUapj0o~mBHp(EX+;dXE6F$I@8TJ(}ou_dK_67e~!-P zbe@@be964Z=$P+Sd#6ziWu~L8j!BB8L6Ti^ko6?p_?N1|w^G=5p|rgy44c=h_!YyX zHnHJS;|r%*oGL?AarUT>Q(bYE>dFMB!MLdVRXe~fJq-V9LBdaAz#Aq^r_vHIfVRI7 zuY?LE&gN&Ew9C|v;#G6#g&W9qvrHML+*=AupCt`2Z`nTCGM2TDy* zSIk<1FY#7$@>z;rz6|4!t-VN(x;V>5@)!_WQ0n_SU9x7;^SE8G&55$2PX@aBvS=Bk%1u;&{HH4Z*? zN0FNw&})A$cq$9sjK$|lixfQzGdqiAV3Fajh2Cci<7!TQYCZ!kA;Xs>?NeT(zZRAm zbE<&=wTax3I8jLJ(!3r(g(gr(682ToBm)T$!fTrB*Hc>$+s_ikR6UOtn4pXn z??cn(Y*i>;2GXXpCJ3fM6NITWc3+SrBMD1N0F4;{k6pgOvq}qamjM7$W ziZ^Wff>yIe=cinhpba~Iy=mHjR-dk9Y*G~^jpMNZ z7SL^u8+ilbp_`kqi40|&rXyTwwi$Dr(EgnNeT8IsR=!s(B^r4BTZzr&-^y@v=+r5X zsX26dt%T8nG+v;b(@i{Eqr09WTCKZe8)*Sc9ZuLsemsNL?5<}iI%MjOZAkL8Wsv4H zH9-~9uZ|isxJ(nz)@kQfQ*duL@y>b5{d7B(DIHj-;5o&iQxG=&zAizA{Hcs&1YbYH zy%|$`7pCg?D#u}&!(xLm6%3urUmYYPuJ1dRXrxJ>55G$^x&1woSriP2c-`Kygs%RD zzA2+tn9Nw6TTHN_er}lxWRTv29Z689g`^uNj5^QWSg%-;c2XR$4C24=e?@6>Q$DI? zXVh&bP)5mtPJM&rmB70U98^@!{`*U3=kK@mR!M&tQ~3_HLGvcLb(@^Mc>)7Y^1nz{ zK74r(sQEM3GiHsr<)GjJWvZ67w_2MSVgl0T>l_Nsm!!-^r-T^3+}6?C{%2SMo*|WQ z(XqT~%7JgYkJQH9f_^H)=Vk##ueG>y&YnxLLU_)XNG-eQ%j#}n>D&8++o$)Fuwq0# zq-hd)J6@N7vMDUUt}Z6smVl<{)I2aYf4`YRIu9Y@OfgS z#fHJAkrHrUNi>PenMRQ)CPr*Ya^|IZE;u`6BregtHuq35#YF^9T%I$I^?RR!)*4Q$ zn)_u7ad4~NzvC*B#a_cCAkwjuA}JV2SVpcGb6ue(Yof9{F%O|w3xMcAjR^#zw;VNR z_AZCx((P}brR471ePB36(qjSWwyAnk8rnT^L>ytKq2f%7gzW~W4iM=wiK#W7=M~%U zADn+cK=RH-z=`{ytAC1rT+{y{HZ4yd4Hup(Gpkuix}vI8mj zy+Oi%`dGil->c^?TBb&Xf1>?|gnw4?lE$nHL#ZY%Z9jp2Q-d~@iN=m*>GilKPPl@C z*gqi@U%qM4yWjt2TB1<oQ>2r}LO={!9e@Q1Z84>ol`!q=RMEN?Ng|5-*RYGhqevyt-S63=emC$%ld@7T4ddbailT@ z$`gk#@cHm|FXcUS;w9%!xZ5@|JN+D)^=6XXkKwz6kFtOde^vI7FvTZ~4{Ulu}r&*!RqZ0}Hx!P<>9q zi9nWk1|V8f?e@E)j%N9Uw0ZJuPK_#t0{QV!4j;T@6=EIXf1fSoTUYPRN3ds-k_=`- zsO#!~xdf@!_ys8m5y8>{v4AqwrzT&o!@)dkepPWA#-< zK|H(&s1|*g!g&tU-}`E_M><*cw;y)Id<{>TJtjq`%-jhlc7O7@aiBxxi_Z}Ao{lj+ z9{a}Q5fRLs3hm@t3V)z}ZVipriwJc385dvVT129A3cmJ8ZCd14^t-5-+fmyIkvCBt zZDI|I9@oM=Qg7wn_P!LA@GjiXIPx3K-PN`C_gYU&BVJwc4^J)nm{I(YI8s}w!o}6{ z^_n(Ggzt|n`6Q=kcQ5Ss_|h5vQ5Gzxn7`e8z3;{bun`=ewU7iqCv+ zT9;l*xm6KhSo9_C-hX3{NVQxk-mgw7bz;+ivlJ6Hy`{jK=YO7iAkzh6ww*i%hicuF z_tg8WV;i#Uc?EvIdjy>;92+`++Bcs6kfK9+`Sor${#w~1lF{7Xm6v}nHp&I&wUVo` znLoq3uKo&qUOQaGchj<}H=sf2{2wa+w-F}r((}K$(vpPDYd%HfVz5AwaUdOakpPO7 z74JSO2>8DZ-3|ndE}AV`wpZEEL?hOFoRRyuI&x|wgn^p8$)<(U$dHp_KP`XxP??vm z|JSvx`G?HX{QF9UTP6@D0S1n4_@Id(!#4)Mqgk{uh*pJB?I_zAm*E&B7rF1YZ=2Yd zEP}J)taVJziq_T^gPsga`f;=FD-pKvTMzCIHk?~3hIS4cH*&CM{>E{vvU99-I_s%OLQV5M8kve%m547f(N68%|G5)rl7#F& zr-YR+4KQag_zfKWdXvDA%!zr>yS0}b7(G=DcU03F%nnuKo-HG;QOhi1+PA7Gc#Y3n zLN?md3QKSf4dD-59`v`u**F*-lg-^}qm~xH%zjIG_Vh`~Y(8{XiUhnBUt4GUK(XKN zV}EK111uK8)>Sz=sFJE&1G&|zJYy_(b-uY#XK4)G-1sbEK^RWP5^i0pDSqMjeIt}E za?<3kVskA#>4xxbc7e+0d$ZtUykn zZzb7ch2MsvY=dMa#IcFnI}{Dv_V)^`>|1$PY{*+NE9{kIIu;8#>F<+`rUlC)1y8r{ zH?}-GdDGbX9L(F)Mk)W~PzDRjEi8uGJZ&g{1vatODl4Acjbdz$%4>%9<6(rls;!bw z523;`izLpEC9c@Nvfl-ay!fj`fn^DZKxfi*mD%8j>WjFf@D-EK zT42JW!7}IiNG6r0#X5Am*d&z&t0@80pz_C?78KBHZK9Q>9aEBz*E^=K4)cAh2fd1D z!bYTWqvK&(cUz0+m8&WEVsK*Z2TL&Xlk*k*Y`&MT!ath>G&#`^+=5|G@5@y>st*pYuBEs+*|oAu2~2rz*iQ z12*En)nf?)cXXI>i^8pb4+pr#`=5@KDK@}>tlVn%$5eIho~=x?)uS~7>PFtVx9Q== z(~esHF`6b`+}RIF_B=(*@z-UFjB{YwPfpZ#ri!|XeWyQ_yeTp2>Rw7cegAfuMZ)U% zoqDY*d^iUi)4UInaQtb2Yg0I^VV3gi*)y9Ss`Y^LGKeK=2Bj3e%Puc|_Is~w?b)C2 z!>MVf&;f?p8Ru_a@R%zwotTRY3h4-7B}e1PxKWyok=KEbRD$pA5Ki9M(tSU9v4Uqv z$b=Zi1mx5f5E`if+^0q%`e4>5h&uuFIy(-bhSZGyKBWQ?Mo!ojAL#N zKPK2>X`&w{U$BASy_H6>LG)mNIo4t~V?0mz0lJj6m;5I2Vhg-X^etF)hxVvcluU{X zCm)-?+;bAv_a1K%&bqc+GwtrqYk^pIvLAF^Gg=((k>v7WlwG!Ui+<|?B8#1p)@^|E z6cPiTwLislrhmHX%}bZ;Y_KbvR|6=T1Y<$ei zs?&@x5^+oP<4bGrD7)1o6kUseq)~~UEm$sZh?68JlN_uWjcLM0MPPvo!*afgxj06B zSKeKQ%HC^|64|smZiEQeD}I$N7|#8w5<)^|9Of{T{qTvo+PrYP%xB(2@aB8P<*Qt} zOm``59x<^EiCQ@rCCI%M{A|uFtN*V#5tTSJPBedIuThpOlmJr4zSB!mlP~9LiQ$-& zP9$x5&y}-tiRkF*rrltIm{T=q?|_Ys3ePGP>mpqAne$Xm>m?sYyC&$q@Q14u#HNXT za1%jdr8L;H(`oXz4frb%RYM0ELlo9Vg~~OhN+*@s8FXrqWkylWnZYz3m0dUry;19uxZE0C9K2;6s+#r;2P$D&>~=ek^M#A;(ig;U<xVAR-@7_L~ZHO#G>fR~yuqM0)G0((AKQ5~%8aO0neJPjBjwzAqKUH5BFBjk0+} z&jL0tylP!neAU`2xX;31=$Mx~g;b6|qZ%x9svm{~GXOODX`2_iELe0uEa6a4YXxc95^XUw}cjl`8QG0F&zRm1^rxlhQMPrRgB|*otZ% zrIPZP(ys#FADoGLyY(7oB5l}G%eyWya=YSdt=nLaZcIx32$Wae6oHi@#b>3qGUp2d zQ`Kp+2HmBsnqMfWe^^B5>CM~b8Vb2_P*S$WBXha5UHu-zcc(a?|A>$V8S2feS! z>5)XxAl%{S?Bc+$XyT5yn9I-ErDs?<$=9#aC5lU^*n%nY_TDqOt<5gON;`=S4SV;Z z?W|JoI1@^~I2xVa$Mh05nj_eJKi8OCsw;u$1EC%!6R-5(I zXSo`4`j7m_l+LQFQsEES@4l0zV2y~l04v7vhaDWG&@3^U_L5qn3$AfNK7w*t7Zw_Rh*_rR(eIBSj#?4?oTS3n?{2NY_OEAUt;2RF zzIoV4!MHM-*QqAf=|o@tHPBTLb{H^r!lyA)V(B&oAWR6{Ujrgy%NCEaS`ep3a6{f* zi=kJcVt7*6M=~(dSf?{IUK78*aaV+R_F;s9X{1~ka)Ej{duWlcZ*0rhQwvAzvkr-aiIj^K*v1z zagwePj$7m@kx6@wLpla`%7ibA5h6xiatSXu+9NrMQ6j=IBF6k0vTTwAcnwc}XO9XZ z!wCNjh@%iekiW2EyDhmq3xI^ z14Pujl0E2?I`Naa(yCb~>EQ&BbnpR80M0^^bT|3E>o$~6&wbrpW%0zZ!3 zO~>X&qe0w@ur-~H7)eikMZuA@Pn!(y*Z`oESf2)%uZRQ7!@^ArXTg@Wvabybzuv$ug6-@zQLT25|c@XtRT3tyyvaUFoK$|sTcQW9Tb;jDR9!T zEzz;9GlGXkEyKtWG*ecj@LeH#R)~Oh7QcR!Gc1Q6Lk!q3WkR`2@z&g^2eofx&|oU? zTh$Mu*huJ@$ko{>c1YZlh&YBA(kW8}%@=2cu(33rc20LSe~=CHR?bnDC(3dJXZbuzLHK|MAjEo}W@zP1DdLY3QBwUE$Qb zc8}DA@t(EQ0wZCjm)bzpcAgq)gdSLGm;uq*{6av?VdQFiyt>DS-v-ntVFXbyz)E1% zAEafLpA(rH^73`${B3g?OfHC`ml|H4ckq3xEu$Fw zC{8TFTbFNgBBJD-&e+JE);I2E)N0Q}5ime+>g7lT$ma5&uZEbh&R`&?T^bthpx44f1 zj=WNU%TMIuyECNy1CH*zt_u;9N~q0Zg0u?^CV1wKud^<&7b(}#^K-jagr%G2PypccqRlHs3ItgBd09&DD>YxC5-rf zu>`J?H`xb27&+coxd!I=?H0b- zTkeWu6L?cqr3$r2;$@x&%W1{hyUP&5qNJZYizdf#XwNZ8$Ncw`36~qgq>bg$2VaPq zM{x*CONtDRWZXV%_30WSGu01HMA>j%lBoDbeohfMBl2l5mo!s6@iB(@;}F)|qD3vM zl`NHKajdaet%-za|1|yo^wWLj(9aGGF&>bE_+e*d$lKm%YaLH* zkdEkY_QDZcuTBDaHxvlT8=m?OnR2C%1pVe^?HOb2pTB5>M6}J`zr1IN+s%smB|Gg^ zk=6*hF4R;?JR>Wbl+WFN{L?VthMyXU*QvkS1!QBlRbsBq<|BC)FRuL)50tceU;0gw zapan+rb=ir<#30F>)zj~A@9dTo3&Y*mGr=k+27nmLB)}nr`*qNo7laMc>>!p(**Uk z40`X^qL`l&2zdhTihA?0cu>3F?R)+#5K>?(j7E`wXyHXU#$lz*5COsrN+6y1k<;wxNzm{>I z`e(uwLm^?O1s?+xhMdHQ1D_RPATovL3fvpg!TOF`2a%E=V?bH=?_4TQ5k-llHYG6G zS^dC2FY8q*eNXZW(;Zw~szCJ>_7RFLg;e$FG`G3kqaT|%W?-E4W+^Bj1lkL zC6cE_G@#%dWMX2nPR4&RU^->_Ty)OIBk^(NfciPPfdzjafl* z@Cv5FM*XUixt5ZoNfcgRH3A7~6$_2N@#mj!E73j_@7jl-`z=vR=1L@;#36~*_g!m} zdn+eHKOTT6F0C7viF;u(Mfaw97y%(10fOQHRx%g`x+s%_FkjBy;ke8GS+Fz?ah9jy z2Sz~7$;Dp>%|=AGKyL|QpWI3{=Kc(9|9Lj8M1)>8Cg6ZARWKZ%$}%#e7O}4wfoP;h zV8|1+09YRIE+>tMa^lG!RYClhWv2LX>eW$X*of6{Z6c_Iap1jSzc*w6bZO}11SnWR zv&i@%+N*<70HXb+yA*LkC}N5SN5MMyaynF9{Ex&SNWK3rY-B*^_+B3KzIs+~SoSJj zKk8^q1@l9tKDw1CaD+QPhLuDR_QMHicyZE?(2;gAHTwENPHnKUAn{|@9*&zhU8=(MGi04*Wb3UJ zVPuH(tN6c<+rJ4{p9O5+ig|a~L~?BzApC6_x_r{mN9S#ect5o^iV^Wh3K&{GC~XuL zE9A-<({eD998I}~yDH;RMvkH7U?+kQut6R42iB`M({;uonR#7ab(=W9h~i<1;|yZj zWX}{9vAr4@HCCXU;ZQ3dg7Pq})XP`&|D9_SN{t~sqyi4m07d8horMn7mPZ#F9GX7} zD;%fUG{xv!&4+%+sTwNUd?IS@CY!hdnmbbvk=f11HHo~EYAU~oH={~4raf1F$&8G* zX)**fcq{C^qH;X!r};sA7%gMYbF*jW6LF>YngjPzNa^RO4&EyH-*(R4G4MpYMjiMz zL7|;=hmr2w)_G$%@MZ255_fpW$=-5T;05=CuwOrR_+tN@;=}*`nSR%7{X+Nx12z^{ z!QH2iRd6v$Y>T}rw<}N0*cwBiF<^VGv?n}FhyC=#)3}t{0{a!i1WS@0fr+(m5hBwl z7-bnUKQ=1Y$Gvap+7{24D&a`(`_{djvnR<%`XXuiQj1=Fc&hAcTzw0M!ujG{2mi0W zpJ`IOVM1{L^G@lKplrsADEVxBomn(@*HTjMn|nv5=4BL5*jNRKmI8GbA5qhn!?@y@1^kK@=X%5@0tk_a3VlIl3L zh*pYy-DT;x`_o8=veL(q%g)!oba%|2bR_6bFB>}^)%g0fBlPiyypNBrUHoI+O4H!} zb(M0WKWZy$AOwolNpT70&3&sPz@)qo5nRgFtzjh)m<^VowqB-3J-To5hpw!I#2;w# zB$WmQuS!sK&rYfydKee&Hf|zd%w{>h;h&#FUsgu@lzpO+68&gBUXMazFN$XLgoG)$ zGp2ks`(*X;_h*0qaU786MO{U@zS(IUj1)gIsl;8gr%gj)be*@$dHsG1rx+zT3nk=W z#*xWtSF{;IJQQl|D&)8OF*Zi510Iv@fN8Kr6&xvw@k#6-bOkPLQN^g z$M>0a4q%PDf&X2)-$?Kso21+k7Y z)x70RCm~@dx<_Xc3~odicfG}lt)M6`{YV_`uSxvE(*KB}LigJfUR`oRE7vtCMK}}q zEz`hSRb(%UQe-5gl|-}tAx+dzmw@-iXvKoIZ}+4-cnIpiFZ6P}1s3*9-j4_l+vrbX z#e)VTgSz^Vg(euC>*Gv4OL~s~nDPcupK~CWv?BPR@JrE5OdMM)VYI=QHqy;HBQOf} zDl!F}PvI_{izu#Gr&5MjEAg4YivH3c&~_$3qt#(5%XiW8&Dv4?GBA~y9m|0qdi;V2SfVYY?A}4O z(xGK^`d!nEdQ?KM8qKtV`Ei+g#klr;Z%1e;_UJg_#?or)CXmX(IUJLhVEiyz?=B z=ER&=1Q)A&pvaog$lQ2W!Zj&p6K2~AP-P@n;-#Thy*i)jnoJ^%Z^YkuGNVOJUJ@c(&s-N8i1)mWGY9k^Rk0Lt; zZ7Cn8wAv}<3lya#*=ioUTHW{b$Bz2H{s`Hm>JFhTeJ7jXOFg{Ojvei}cCxTQS7)Ma z;ElA zaKkDctbI`8#DH|(x}8?iGptE@MW&|7h<)6lTXJjQ&|*>CZNGs1M(aQ$tkpIC+>DdV zPpRCUHm`kNKqJLEX|r&Y(-W3UiDG?4x`)T*_QiBDKJIvQD_`A(1swe!zlK#KUd&ex zo7nq#DixCW!^y?ljjCmN1l;oDc23&%o?s<|S5;&&KJXT&ykc5cDH_9RClSpbEUl;5 zWVoyVH&SAsrA5e8g_rGo8HEqrdK_c?xXX>TC;wGT&Plz8{q1U{L2u`0Mqszwq`kjN zQzj{Tll-5Xso4A1DJ4trOiSdo!1+OXue6KPcDCds#p{3GrQDq0Su%dhI*x7Y9Uq(5ss7rz!S{{31bU0m=06vhB`8bCV(Fv3AdV-QOk zh+_uC0|)aNgN4$-Vl!YVIE9=s#g#M))ftNayd{s;lTw}{&&Uv?G)4$%12WwRp~O>~ zcvDUqL4-DuNx)%Y8P&bCt2De+_!(-_Me}79C8$soNZSSZJj;74S<)7R`1Uk`=eV4u(F5(}g!ceH);up0L4sSl2f?T5R`lSsiVe&eH~eFN`EVeCDSn3$*BN%mC#Q1&k8KS6-X7;m0*^Fi=O^m4@4v|>DM>F-sFg{75AxG(F3EcEP ztPSwN7#>P6M6muis2x8Px4dwMPi`^4f5Wv{j)-!)93yh?rE}j&*E@3JS|b26!)SLO zw7s*qS|s_2F3>t7#_0n|XF9!6~Vl#c){R&Wx+HA&!Ha{(5%xk6`!c3hzQCc--iWOoJf z^in`_65NhL#P}jchByZI1(Qu!G6`5vgi!8N?64P5vWfc7S1)C~whR!rY|(#&5jk3S z4f!NoEGlxV70&L&gT#nz`bxfzf=*Nbq(UbV(yY`)tJs*6aD1z9*OqAJ-D?H2+{H}d zYR*7fBj}k6{osWUwoz6r+f!_?UaWXi>}>^7`EO0NtG$x#ZU8uMgsX(L=LgDidE=wk!>&y7dBla>9*0N z${46^Kv6hQA%N}ML>7`&QZcG>oAMi2{JrCY3+N zD(RwE)8!2Q-G}6Y6*pXxvq)ItVYGP7uEau{npKvD1p%5Qr{8#}1|?sEWO2jVFVSK8 ztv(p>3xwoYJ)R|9d1F)7tPbNpD<*ebqlf~=exN5~G>ZtD8(7_J7u~fo-QhAhyDYsv zKWqeAx`- zP>bY(xu`puD%Tz1ADfA)@iLaJL+P5N9#_I^)=glyL>{34Nk5TJd2y9UnnDaCcHTN~ zPA4&SXJJ%IO^PryM;LYsu;B*5Fnd$lZr*AVVm-L2`*=<- zmDy&nojW*!B!Z5lmd6QS!9joD$LivR74Xc@0NXtoiU=HY{}4{$M7YpjI&_^u_9BX6 z|B#jeYrp4XPg!;)+{{4+2bCSN>FVIF%(fMBftR-+uN%X~PmH-x$*2wtjWgHtA5eyM zjvIRz&K3oF7prR-5}ZEPv{y3syeLDu zAZ?_YfTx|F%08Z>S~ffBHkoCp&H!lz44oht8PkdgAz!(&e!a&9en(M69&~3ro0_*QU%xio8O7uGBS%AZ+BA+)J2$@$zbT}m*V{}n~VFrfgV$j=>)|a}> zx~&}}?kDMa%0f-_WQBkK>MqKHN*?^0SO@Nq#;wzT`v|EnbcM5IB z0N>)LzSJ&AEu`clKx3`UgSO1Qm>hq2x}q)td#{?l%d|u-wP+B={Cb;obJ)O zkp2XQ|FskbbzxpvMeO)v1=06kxF{pDeQ1Zob=pv>prB#8+b|cu?|e7aO_INm%J^8U zF`WoWR(U@$)>kwoQYN`_+3jKuKP4p5V%NLLww4z=Gt4(9 zVPzb&{}S%K$bAJc{?&Q?xf5M)9ybSGEDz=S5St}xOl4ja#$;iXeo1`Ei1vR2rEzA4l&0eY(Q_s&dT&ZM zhJf8Do%Fm6yWFIyLlTH;8fRuMAg!#z@=I*wsMghARP7gMmkV>;S*?4Qgh77E@F9{> zrIe)?Lv^S>VJ4(ndTpaDh<91A7I#S-feQYthWTq%4ke^#iR7@C50|A+pXJsqIkmVj zpRpO_nVYX2=B2YyWCf$6X1QZAq>cFp_u4U=L0;5lh;=p!(m}~%)nCHT$lP)fMvi_m zf4d$opFI>J82$3Yj`VWB48h26)c>5r6p~|vdd1Jqit8>4bSN-Z%r-Y@%lJ14X+M^) z!d!wXZ6!p5BAwX)ZEK9fqK?R8b)%nZnrIRE{L2lrJT^xh=oO!g35d6Bv;cR2O6aBj zNXUkwsbpeFz6hlM@30WR4&GkA8@(893sFcxha9-Ks|;EHwiiK;5eR+yM>5a;^b2^s zW;mvzWiD@^Kp3`JINFXm_G{R%77it2zM0v7WLL-p(&V91a{GHIQC@ zs&<@*!Lh4r{1&r}gfamj^!npT@X!D@YHhRg@r7!aT-1=zxti#eMcvE{t=5#{#oEym zM^H{ck*a9bW0AtEV#Gfjk)eIHzayJArLVo$lRk;xZbOU%uLjTSl`*d-3+ZNq(O&q1 z9nzsa?PmSk#eu)?F~9q`Unq&?6^gF+kU(KgC%sLKW#os1*W2$gtA!YAt7vK$=9t_! z_c=v5ukyM78D@KrsmQ@J&fcMR@qKLEE*CDDWYI}~rB{xS^j}DaSy!t?+tWKMoo{_# z2o25hwLXPn#}&9F6IOy@V3%U>bTN1$dy}--M3@MC{id#exA(DV1!v5_h<8W7+F{Io&E8eYgKUrOVA*VUj2ryW9?%9==k@g(ZDBO2eG)nFCG?sPYV|v zNiQ9&;QL#oQTkW-OCfhx(W4JsDQ}A~>%ZRDVLv`BL&U99E0w&D_np2~y7Kbx%HsPk zb^h-dhqkH9^x+Zrm3=C|N4GbXtuk%~ky!k&ivMu2OJ5h$<5XvjnPs-Ohg_&#`W=<{ z{)dWP|1WrP&RH$fhE?CQUrc;;e($~T((2c>i)VfK2k5x#Zug5Y`rZ0ePM}?5ft&{- zQCuQdpNqQwQ|s;DgYYsM@>ta_eXb;Miez3p15V6%L=+!*_BnjmGx>T2YhJIc6Mt%t0iNBk_STvuv)t= zh~p`!Wu?c{bR%Nmd^Fxe&DdemRYa5Z%J>^BMFNFNQsIe=^LV*MsW2O7MD=*uGrXX<2Gfv(1nm6UznHQq=6YV0?3Dju;Ngm`{vq)IoYz5e)ZobKB zIEhQIbKe@nI_t8Y-kSBUJxHm{VzLuk)y0a=ABD>38kle#(2VVkx;T+KVy|!;KF;Ig z>kl#M4d)2_xYF*=sCn*sfYVQ4%u|bCEfJiVu2A(aOzQQYdl-uq&6~%RVcO(rar{mP zW+OArl(p=3_^@HT`?H>l3!v(F1qVXAuSY@!&v?vrxN_mlGz&y-p#P0I zgh)@U*@)u|_)?0`ZJ0+pWZR%z+%Bj-oLIWL@{TwfaIRN^7zuOM!-HDfsk&&L-n>wo0gQ1loDdjUiPxb2Qe^f=z}#MUkv{8#_I2=j zWnNasOXDY->9-uhzW8s&fGNClwX}4Zw%*3v-i+C`4hA<1l{Sw}AaYt4Jog&9KaV(> z5-%r2Ao!|^GbvVNFbl5HBUrcJ8uP@u!dAc%1<63y)}WJb{EFi>P@lC(a#3bSOLiwD z&fT$H3Xo@O=QPk`QLhAJK8atLlq?jRnlrdoM)WCfj364o2ksi_Q|)F0=Nf)eQ7w^* z$@!kXbHV_%_=Ir{Y+%Bqn6!!df{T`&yhn&v%>IHSp;P4#$#p%6$SOJyPk1$rM{Ycl zF$iq}=JI%K9Cz*7@=Zg+W#v1OJ-NR9K0@N_@mu56j@xtB=Bh;DvXp>Y+pQnC!EZ5#I1LJNejL(rUKGKpjN{VM5W0hS@p5#h1OIT%@614mBCSsvjJl*E%#KW-cmMvO{)Xo7@!b7u{wI7k24==f zf#1U$oyyGvZ3C^gXdZcnrz@tr8L*P~IbesR1uD+OYm(}`zRf0lK_6PW(nZ*Ks3u;d z{TR>)r}D5Sw2!4(REY5AFul%igrt9|-}J3|r(K7R%Y1>4xy8|I?1&x0C8MT{IBhhD z`c{ZH_=*^AGcIe(L2A*MdhrImL=5}@4pLh87fIwg=SN?rvt6U5Ca1;yEV-kzM1x2Q zh>Z-D&1bx`TTq%|7`liWP08S@wnkg7Q6V%YTVSHTsLHn>Ow2Ux_?qIKQcfDWk^y%v zL7;;<05%s1zm2hrST?Ew{Rg?S44&D3)&7 z1>=7t1FSTQXu%6WkJxfdleUogX55A`)|uLoaDk^;H^m&;COpLf`p#?EQT-t!Hht5$$!2y>>Bjuqh- zE1StuJT66Cgiq?zw`zixG8vH}#==5MvR|wrF0gbrjdzfA%2&6U_0Ko85BLy|UmX=# zCVHZkv7?c~^B5~AtMn}rI`eXIK<*l1)K^UP-9$eHQY3QP6fUPXihA;!Xy3N2RY{}z zass-opiPDzEK;we)#`*lwH!R-63BRAy18#aq>?rgaxoU>Y7y4FhkX@UFDp=Vv)mfq ziHjyk6;~NFc;4QemIeFqCr*CwyrpLcHxUzfx_$|18hVrX8*zn%*N9M|Z-oweW9VF= z6uRGEz}voBO1pBv7@yRkFD&@G<~|5Z@om;EK*>q!h)NGp_w*nT`3YTqB>-=ZP#9wt zusWl=m~m%PU5TYEDrR#D>(PVo!9lg!W-nDsvoboPVvC|=Y3-FwGg4AUa=zl7^WP0G z+0^6?e2XpA=qD}rjUUMig0(NFtZ?)7o2hq(ze0IrS*)4cg2d0bw3BYviOQyJ^B(#Ks%#AkpQSS^M@`|8RIBYyuBRz9*@B8MIcRIeSCEFplycgN*Bxe zSBucF+vn#{3vQj}5%E5A3#l&~%cF}c1cX~+K&MU!MVo{9kc90ho1>7BTs-#}++-$X1|Kw9 z?M}HQ_vt5_K|-8ESKO?RE)ASgFo+aW=DWgckHJa zQld5QN-8e#FGc{V)!`w+h(SW4jEoz8T;l+r^h6-hk2R&mm)hAlQdQ=T616sO%PcSQuQQ{rbR)ZmxQ02oyy^*qVi7uy1L#z3xJYSRGK zn;K*RE@j^RAzx|At1l@t!VeP{fu1;k0Zuut1%c?K$t3u#4C-H4rnQ(OG>p?A%EVyl zJ5-pvv^a>4HNuuTq4dP!l5YyvNsEkUGFb=aECJ{YK=lyhx@_(TF=Z0IVh zbf|Qu3xXt-v?RxX@lwub`p29>)XAb6N5sM@Wnk&+3h8rh>8v75TI4jk!3@YtPK-^O zKPibX&FxmEjy(;tf#Zya>_`w75L))FMwPb5FKChD$RI z&67RHg)E@TkKN%R${sh_@&KmC!IQl6{+l29V;+yS zt1Md+JD0=SgY#tY(Uhlb6FTVTJoson=H4>9k4|2~j!?7*(&Hr;w+NGce4g==PKkRg z>AHW>MvuS)wq(g)urfAe-8iC9nG@ITcxkDaPGo2Eu-FN9e{Y5l^UkkGk10uHqDaW| z4@NBJ^VYx+{mQg;2Qc_={XfCF^=w6G&r+!6;|rGEK!qOO)Q|amk$BGlBXWLmD}hqD zplmljWVNeQB)xRpMj&iCvRb~}*#t@|+Aagh7S)&(tts0u9!PoA+)#=vm%&?K3;~0= zF_i2G+JiLMjOdzzSaBpkG=`KgA?$RDdCVau-Vke9c)kZb;0q9TP!jAEe^)RRm;r*D zX)bAGUNmL$8}4c95JM*j9pGG3Axo3#8S}|8VW~>j+69EUrzGcOmc(RClEF}|S8Bqm z(&TPXs4z8uQU7-YP-p^jpZSXqD;O_JdI$Mw3*hv+$eX{biZRv6)#Z(zrS(sxnkEne z6TGY_;6%&Nk4CGbS3Z^v`9q;D#Z>8n{kO~ji~4_=MUE}%#k}?1yihB6gH?pUtY||M zb#hOxLxOv`;+u*j3J-45Rvg+VbkY@JO1%9<5fJ|fr+8E7eJdF)lTfvQC=g8c8cqHe zpqn;UdCkT^<1#N;71kKVwdvBf8zPI#RodiD+91aDf$Ry)gUpmTh~*zM+L?@LwJPNpw8G`}S#GpH@h>6oS=P;TH^%jo zldrixX0omBLZhWuJduZ^-F&4M%mt<6@4KG}`jZg72o@Bg-43B1?{km~ZwiHc6tj-w zV=_$ZzG5Op2{?SK?5}-qD6-}7DxN7|zM2zZj<}6T6wa1usjL6ugq86F&2*aviDP*~ z#f6#1_j=V^Xc{t}UF`Msv-b~j?%!rPN2*?a*7t*Yy#0T5hlImOuW3bOOmfY&dR5Y? zNz<14akt_5X2TWjaw?@B(qSU}?TEvSL1Db%K`6>fI~|0Qq~b`mqdC zu?&E!9=>caLvJ|5Y5RZhfTOP#sNe_H5F;XCWA24xb-aRa>&E`2S7o(&YweHu^?QmH zl51gI%=ql5N3M$}a6pgTbB~F&8=lVvv)B|22 z%;Sf7Ghb3r6l|>|7FnWaF@+E$D!fw^+~_a zNN@k4!?0Q5qFK>_S@9ywkL#ov_~1;@ai?Xv=asr16`z+Xc>g4}sf{tmLfsJvd+`dXDoNQ|k-TJmg2Wd}&x; z!JM#+jK+tT(Q#RucAZ(Z+#U-^hp&dVAqxcq%Y`47pBTLGcnyb+h0W2RMPori0ZZIP!M8_}3lolTfLUWn6 ziJ$L%mG#FpE94(C0sq$7i+T*Q zKUzQd_^%@D&m@Ai5gDur{3p5T>hRg^!DshIUVd)#k-iZ0H)JuUc?Co)9~eeGKn4U9 zQGm)w;$a%zo}WnqVMOVzd4Bh=kz4riCCXJiRe0jz2Sn-Su?vwn=MCB0{$`n>W z)NtSesrx3P2u^tDw%L!IV3|!X>(sf6u>E8?`MNwoXJVa1j}Ve%Dtdx66a$_=*j@ei zb)Ea$6NAm~#CrvC>+Z0U8W6EH@ayNKH%}hy6w6c%%W=ZeijLl~L*easzn$Lj?TFxg z72eQm^kXK5;fZPva76TEc=4jnSH{d`mIrehCf|Qgecya?$o~A0lV_6uiSjX8m2f@U z!3uCFppFGdrPZ$yUmKADH)q@VzNc}nGp^@$8I%y$b1BGM(gw^z#Ye^7vKLPdgj=?* z;SUs@muS`CqfTLl)+R#)>x1dXw`(fXCltWSJO8YKoeNRj>v|?4EISs!!IqK z)%n-INZOHq^7Vf&kp3gysanLwOB zpWr)gssH?=PdbB*AK*8jIyc68*|Dc5x4-R5irm zv)UsT%*jO8gCm-y+&U}`Yp)^}ksFK!djn?1BNV(m#H}-tvZ!=83r&V{zy>(m5Q|+3 z3aoq?TP!YmeW|%DIziLR*CFpp)r&|>}fSs*f-f(22AkgKRc+PB+N zV}`si=Vc$8)fxZWe~EtQc7L>r?$SveEseW0{%X{rqh4vSiOhn)9K2~I#4^u*nHOv% zh^#j6;{t|=v`xDjLOL`-SRhw$pT7b-S?1nE>saPhvSzD-DHDz-+$(8zaPchxIZYU2 zM6Z}eJWJYt+uWRR7QIs!JC${xcUrtxEH(WsVLamDETjYHH0zd`gt>()j)YtmsK)t+D{jf4@?M zFJI!O*WfGh*0=hP-_0MHMC#Lenv)c6j$UyL7nv|OGrX-LGivlx;Bu^`Cvm1|$?NT3 z6U$+!AyGeXvEVgpiokaHED*n{6bEVRw9Uh*MS>cH`z+KWmnA=?u zD%E|4KL&@61z=4dr9l(BQ#x2Y%Zmz3CH=WZk`31*k~0qf_l z``jB7W@-?vEC5*JcSiXwYA{LqwnwZBSH$X}rrNKv@zr*-$m~>xqly(OyO8S5RiC?Y zrQ6T`SSMe7RtB@EhTeF41N`;;p)WQ0x6OI7@Q?H$st6j{hs-*WK!P`^atGz7^Sef_ z`|PX1|50>SVNrcu9G)3wV1}Hb1e6-OK|mUbp}V_NLg`Rp1{hL7O1itdK_n%mK}w_> z1ocmfe0H?e(tr_q4E6>)=8#sc>)%gYy1v5#yNfrQKDVa9J4w31y1| z90Hmuqi})fGtso|m+Uv!S(o~4a_RgeIF6aHW&HuU)h8in13M!KI3HG zTw3;HpMgzF*7*|K*xeJ_)(SxQky{l}+Z6`%Gdp`|Gr?;Lu*ghL8in%E+|L_o3 zM3HfHVy^6dD_bgjBIIebopMu)D65~Bd$IKZ?U@IjVzMm@FE(FQzaA>d-It7;kiX3C zAI@aXm`KinBF{P-NO>DdqEqH@yqk(=ts6q()wRf1=+S}0k(91zqJSu)K)pk4B-nLD zlh~nu!EEVz(}u@2gi6avUGc%0k|t?!#)(n9_W6W`9xCEeVp^}iILalXnBP}92m`de zS)7IT6zNQ4-Wlr#QHj zf*xIh4mb{j0kbCHN%>2o1SYH}mY|1;ckd4jFF*k3_jTR|>T2AHze7e+m+>5dwv`V$ zL}lVlBV}o4zIB2Dbrk2Onh4!5PQSM66DVK~cwQ6P_OfpthM-oF))6UfelLv%-Cw4H zK8JYBAX`*p6};F09=N-_#y-l_cr*8lCd?O1e#N0Gn*P%WT*}78#3R}F9p6mIM_L<= z6&T*6OeQhfQ)nbr_>Dox_H<*>NCg*4rmeY|urKx$f9+4WV~on;SA_rz!pe+S*A|hB zHDUfLnE#%3!nbw7ZMHE*c5$5DNi7a}EZGObj&S+w zfvvwL-qo!P2hVmU$X)&Syl_=bm>gXs(IQZGYBO z;fF|zw5?2H`%&BkX9^NqVPZP55r2~gq0A@AyyMj%9*(dJ1~^c+u4r6DTrhG+axYu? z&pSTTpGr$?OCPa103CTI-~ho^>^+rFm}d6ihVj@GKwF5!2A@;mm=F*X+&A^tSDES& zpxuBR#sURqfr?srIJ)i8QvfQAFT@^DIg;!|6+BGu)b~Ku1&rSnAIX5=!m`?}`HTYm zN{jxOMTL+KVaR_L_;BGk1L1Oi9rjdY!;46t8(z^8?-mJWFzKuR2%yxStwS!hk=T%d zC)Ve`Pj5P$*={jR2iRIGBf!yM=jd@csnw~*ei&SL2&eZ#6O8se_;pIyAmZDgp2yv% z%rvlei;HO_lCuYV=9`qE4)|CeXo|&y5PAQWQB%%ygf51#(0|q$ZvNzz(#l+1^tuO! zIL|@0D*%9E??ZGyL4e3b?wOMuF#?6wd`QBMCQ!~L=wY_#5J}Tjx|Rn@2|na{j9mwN zU=T5NfZ&*Vw7ow9fcP~9lYIg_6lH!20H0y%3Ho3!YQ@#4SmJS^*{>Aa*uAZ)dvqt6 zPk_#t2SOE_YNyZaeC-L!@_?}Qe0$$xxy@j;+K8m;1wN}0m2>$gj>F#rH2-XOZJC9^ z6YT*Ew?OCm*DjcfXbX5ErMy)cPphA9GHjH5Dj7xx!3~;(F9p?4j!uQ@-t;HDe3Y?JNggVd=-Z z!q(9|5OuyHJ(=dpCQ@PE zO6%mj6&n7{5eLuT-f9fn?+r5RKJ5?ztw2fjdvdsXSl$zP&yv%%;b;Jg`PW0LX~M$T zAwO=V2p6Tou0Zv_Ling~NLDya`qIB`@S>61Vjs(Th-@)<)|i^cnrCiJa>fwZMM^OF z(+O`3p7ZnmBN6F8{ogiNvf4ts4tYw)+VHqRxo@J!I7!P3Nf9v{B@!`)0)__)2MyNu8s47~0jWVR~H%efvJ+@fP+OYAiJSjo{PU#MY&B2)cVj z!ECJOxS)q{j@EB!@EZby*}|djD*r?Zc6>`)>K(0l)eXrCm*qmKRMh1r2xqi~x^%t! zF4o1I4%zA8u&K%(-h$RHiFlI3ysH|_-}0ZhMmsQnu}U6%tB?OuErF;G5~D0a4h)Tz zDNeWozLJM3PW3hEz~mddO`>|E(D7elhG|^{qYU_kp16E|$w7yDC;fQ@hflZc11c(h zAUB(x4cke3)maXb8OoX}3C!ZZI8wYzRE}IsahAx6K8#L&OA9t0c}|{``Zrphe^lNB zo8kc>n7YrQ^@uJ+sRkvhe#e*N9cA!X&4bMmlu4+($(N1s09AEm5Q~2aM|%tj%Y7yq z{SvkhM(MXS{{>$J(t@T`Q-;I(yt7Wu6u=p^*B<4WaB!DT_s28#KLnWQq9|)Mo_cP@ z6zj5YFu>c@+K?&v0B^ON%CYh}^}KZ@@+C|RJ46Gn!NELSt;+IFxsrSX5JMIA)I6F= z8vxeE?3pp)$zUGtp__})QSWr+B9%D`I@lG&qTY2pmAk3gOntwf^Pai(em9R)37~rzWFbEC}AwB#2)n}6Bea*Lnh8Q?@ zjPM?S3;%4r*@Uvm zH@A7I!(n6ZD=>ml*-e^hQB!XUr!Mt%3$FSo-$aL!!>~S4bzZuqQBiGVdDqD#F?Ek} z8H*TbsN-&C(88wF*=NE%cD(uem`BwUabi)M0)0F@oGEfq`~^uDG<-Rtv$)E$-%Ms% zAagPnv07~)q&8rc8HD>FQ+)86vSR@72M!&B9G*XFSsdxdTjls*C zNPuG%DGWgDI?i`s&fz(*Goaoq+4gQ8C}U_tF^ArPNy00M&OnmRU|$*-`%csndX`)= z4{GM|wUjEo);v6>+BlLxDrQ)Eo{`ySo8W7b9`?#u@D8d<6n#tvz@u8o&SPTpFyVXP zkjmR)A!A%D(TX#(i4@P14NNfqE#*R%^Rf|xcW8tLBCvFcgMfM1Dvp`-H!e-Nufy-ktO*32(|EMWegXeyr-dsSB-1 zIdzVSa{1^$bfbpZ50jM^;pHBR)n1m>T!!U7h1CudY`D5WIgbV!0V`8L3@Jb>J}$Glh%6ebpQn?Ko-^ZvG~k!{gF%($PaDv=f$uvr&zhU{ zzJIg%KJef7ACR^6Pk9p*Yn$I6Dax3VcJ>YNWDbAl9F>BO`Qlf)M=$P7pZ+za{c8DO zpt>Cp7$S=Tx9MbfSXj7nAMs4a^yu{gXma;0aj(`m$*i`D?| zl^Ys9l?ZF>xi7}Vua)GXEmNqdm-I2Xe(QKS8pkYa@l+N?)(x3AdXXNWnkt=v@se$> za!ABFB5plqDkEN{TzoT{;6l%Gd0p$z`rXG3>Jpnu&cgHRjVHTs?Y=O+GP!2kwOtr& zWDu|~92J#qIlhw}B|0CqyoQr$U7%f^EA*5$=5y_F{s)gGrn3U{Cz^EDlBjIXoQ;)e zj+YIb|3pANwzQ60&;0CKI1)bwZHf62D_;GWC$}CZf*Huzav$53tW&#mfbbaXHSgH7 z9HQ|xx7m2{bM>FujN^R!)UH~cjueL0>e%QjY^S!d2N&GiXL{JzVeC~{L$yk_^b~jW zQxY!5v<>_m%02qfgWT}st;U)@KJ_R^y4Ok5C(*C zPEEG>87|<3$l$@CfYun3FJRZFM$;k}`K+tqaa z_d!?3{ZhK7N%82dUEN~a;^BY$Ulk03UrUq!*xm>yFAwm9L=dga1FDCzH}v2Vk$4j?`YVW0}-hgzphVI`np z3Qm9c>xka<;P9=7(5;6s!VgV)!W3V*j50pV5Qu)llPQri20V<>fIWWxaG8sgepvsN z=ROXH;VJ`kFAb6G)mjXpW}kiaq_xc_|7*?%S)xaf>%K_mDx(ko&6)vBouc_c=BL!* zwEGz1D-7@YZXzk_OZ~ix5S$fSR-=cq9VjcygTa#}*xe8Od!WvzLTRF-1+eAcOMWtRv zmj+-g!g*#IV!mC)?p?)QUVS_QLvv0)uw5sLTqh}ACmUUVbh=LQzfO(3PD{N`FTKua zz0MrE&iZzpy?32+d7X=QllSN*pY5hV2m>88l&rr7DG#Q&x=@}?~HrW{>*Q_*@; zIdoI??WTI~rsndd7Voz1(QQ53ZG*^dqtb2WK6Y)L2%~k|8hP86dRxYzyPS2~Idt3g z?Y3Z@nrZd+Gv42xM{iRWhkHf-_AC7zS|e(?H*b067op{>YnBD)1Nb&gDlgwBD@@-LZHD>4)95 z%Q~rKJ}WM}TV?yVDe|v%DTuT*Z9_{6s)fJ%{NH}+zXSg_Bqj#BL;q%8#U7U4E&fPL zlEmN7{ddlGKaYn@p+YiDlkB{T`E3>b2k##LJhHGu82_5@{&oo6^LhPBQ%l9eDMk(e zYZ1~@~lF?~^_Y`Rs>9tH_OqG)3wszDifFs+jA9B^Y>#fXVa)Xg~F z9wn=jbrvEv#;gkEbf=7YdY1Gxl>`MsrYb8_5uz!cOTniS?FN~^rZMI>c`TR=(&%*x z@`O=f7ZH&*^~eh zyr`a0!+h?b%9sa*hPj3B}G>Je^zbg3F-mqHjy6-)Iy^Ijh_)sO1(cfuM$~S#1KJ*+}4}vNf~M1aZ~F;cXH5I{DB>7a?g);Q_=KWe9-= z=>kHb;zkT%Mmq@%p^D@I04z)>fH8vFrHwI?_Vr={1Hlv?CIFX5F*i`P8L#IJf+Exi z2S$;&8U-K+F$nFM9i*6m0W zm-Zc<-1TBWs*T~msu`rl7?bv*qMbF$SA0sMj2#zFQmhB77j+7^rN=_0M!H6!^;#jXzrKcrQ{|tq$T{(?2G82R}~$H z7|RwgYo%G@Qd&AsJ~dZO`(X!H?WbiQ2#ARW9xf*}BO-(Fds_TLjeu2uUmkYOxCkUc z*GUujaEX4d*EG^c=A zjqla@ox&eYATn1sZ}H|%c+rLn%wtJ#RUALEKzkowq5ndp=$q^vJ~~4i2WL@Arp$lS z02LQyq2Qje(sgVBW+~tI&d3i}EaV$PH)yj5h|3IbUrc`^B@8fd<$b*H{Kjv0 zuQ)SU{O|=O(L-|Z-^U4~wS5}%O*{?}Q;w^!=7L6^qk#Ft>d!UW$B;=nvpOE4&!YYK zo@;Lor`7lndpTMk4AJ|hD*;lM-{0JSGUX!G9{2< zR@2u9KQ02&Wj@m&e)h2S%ox1FIE>JRC_D8)p4NpB6XM4bp0URayabRKTN-F?!P}^T zd_(e3dMXUyVjAzY&uz8=QnWW(|17lC1QO74Z-~(10bqW;K{F838}>Z$f`s7cGLVF^ z4=^ge@=dbM_XYb?$Xf3*wA&@1z`coD!UI@nKE1*FHa2E_#pos*4Bp*dJPjvS(U2KQ zv(nTrq&pZ10wEu7u@8ye#9(<~0Gv4|IR6YAFsvY^)O4VIWyDz_SA0uO+n7S4h3f-i zqtN%S^5ZJBSZp8>qn+Hi@{oqti`Xptn8!HaA+5xQ;7M4Zu*nA*_b^+k(` zPaTVsnsN)s0|PlrOcekFkWL|klh$(K`ARihfN;rYU z{MNHKrzwfp)n@`$YCO2K`8!W`z zi=O+#;pIK-U|KL_GRI{)^nzFcDq>K{&@3uY&S{x3n!yIb6pHZJX%;ucG}AO!;~l)v z30cmJ>}am>`(Cb=B%UBgSSqO#NZ)VzYg%b@$KtQIGXDpRLGAW@CF#ZypZqVH!4~W* z5X-(S;URe)2$1Xlk=;C+(`aq#{=dc&DKw8rYKCx3-A-zZ9li+{S3;@fuhIk}#}l9J zhk`JrHN^sHtZ=!2*LESCd$nUt;kBS%(#)Y?M()B$vz#C2CsG{C>(|(+GR!%Sq_P=z zP1RLHtAJgfAwv;SbrZWt?2B9%N5i(x<(Rid4Yj}{9z?@xXoC@l;7N_&BXNsdw4ss6 zHzNLreENX}{7X?q2AP15pv68Nutx;`F84SW)s;(l?@^!!c5;UP;#8#ZPGdBHR!$e9 z=G`N~t%(; zk~d9izm)jYYfIZ;ahYX??+F6X7^mh2d`^$0hj7dXKC@@K(8qSnLK={fUAN1vv;nkG z1mMKfZO4iB0{#7Z5HxsOHB|+Z`25}=Dr>A17wU^C2MU3521t@^gfWNw0m1nX`0l4i zbN)5eu)j-{`rX?HQ10PeP}??pl|2`;=0uC;ee0Gs9i{@< zU;cfD%s%t2MH?pAF?Hs`^7{^-Bx3&3h2!&`Y-W+^g6$iRp%IdEo#KgzBk(#sFxe@7*RFbRD_!sy+*EJRm~_ zhz?{+B?S4m1E9|LXpChRz!SOt8kwCZhj{kSBUS1kH2KSwmOW;J(NnQGjp1!yMET}!TY-%J^Sg@B!n_~O3n;Ww{q&4 z#k&rwfSb^`0GPAuTEsyk5$la)(R9{y7k*(MXt%@+ki)BR1-odZn&r+w}R>|bQX?gg3Q%`59O#6V|NU73Ipj*tN zUWrDQ%jGU~{ymgBSx!3`Wu7^_1hXpa)&t*E5K76_xcfxM{})in|6kNEOTXnI#kH@RQy=kVz>oqedfYTx4cFLnTqP>VeALWlN z!VJJa4XAe&@Xn#QbkreaizX{3;M;8Tft$GZy6?`lxRI(Y zfoQCa(*3b<12dKkweVkph4S1Oh<)q>Op#h{qg4RY;L|6*G)<%n9v2>{oVL3CI9}qW zMn_I`wv?%T{)6=*R$d6XSwDP^lC`JKlcS;r&Si3!=TI*c@T_g>P8mjRZ2tErc@~(d z1jW5fSDyZ>Y=4rTFhV$GlZO(`iAB*Wpi%jg%3#n_O@%3CASTk77NtKzsld+YXaR;z zq-v9EFr9wqpO90O%9B0b_*MObJtG^DVJk1Rxmh2#oSr&HP0F7!zIcw5!7Y+;{P<{Q zQ>GwJ?t~WbJ~#NIt(*@NtKvX&dY;^IT01$(!B;s(>=zwvE5HC z;k{o@AlS^eL<~xm*j<@yd1A22;&FH}wo4j$@)KmFrys5VZb=y~Q9abok^pr&W?j}| zU0#Pj`m1*C~~+E1)R zYv@#E@%iJn&7PS`9&StKB=hK?u?fvPvgXJm)WG>2lO8dv4P}XqUo2a7sOn8Vzw89! zLTh*`|3f&QMfa?+z5!#5gE11zxbbAep~OsgcX~s?h-Lt7!}6J&Qu8Luf|79gzarFP z!m1Rt<@)lP)P~J&$;(sLR~0dAArzFl#h>(1cLH06qxPsXx|;BLW4I++0T3r^yN$Y! zH_)I1pBrovGM375Gb#MTcca<7h~KpMWp9~SY;A%~_!yNSZ2PLE^i4P0+m=yQUOSlK z0M)5&@>d7DmVxJn^9%U~n!$tTJk(3cyRvXgbNnxE6McHNPKIJ7s8yyO6Qt#oEuy33 zHpod1Zs|KQu7MnQN@I_H8^<1mzd%m_%SVP#^LKcQ; zm*CVt1#;KUtd&qHVVYQ45Wr=|5#va0>9Z$m&OYDe7}yu*XG`zQ4!+7}PjM_yd0DP| z3}4b`uoNE%)t&c@P9^1EtZ=l*Y^ zwK#{qqjNH6YH%o9+5~751`zV%D125?D1Dgo??Y}?es;@1tXy6M%|M(61?pe49D9D0 zA!Kudbt%fZG{!!mBRiMy0Ch~ILh+)^6dbG1mUp-gBXW78LzT4eWS>t{^pCR+*R{}4 zD}m;#a+NacDZ~;DSXoQRT6q{%0Z}ts4sw$BQHb`o{AYGPu#@RnAxB=W%v%^nN>|D0 zs^(Lgz;h@|E=OlRhVv&gcgn>=kuySimm_13Di-{{;>EmYW!*on9$ap{i(E#ca()_M zA8S<~>v5cKsg>ap*;2(t{lw?;j|gVWM7DZ(xuXK+fu}=bt&!lLACG{)UdY``PUq9) zg7kAmR8iG(2cHzN`n=pqrGTbFIwt;dZE(*O9Q7XB>C6$pene3yQFZh0>|g-#9|YD~L7%6}oYLXsT{WB22*LN`i;mLUvpL3g}IUrt}r zvex|EJVd?EU(g)Npg|oU+v2pukqz_Ry|yH(Df!jnxV!8sCCzt@ACXDfCq)_8@wztS zk2xBk9FL3UhoWB@FC}p4qBvuo;Fq5DZ>*AiT8_aUH|kh`9}Pm7WYU&?qLkhLU7WsK z*i|OqyPw#%#!8%K zO6F7kcU9Cd9syUebJ?z3db~Qlsy+lN^K-;`iuzA^b50hg239r&AcFoS9oSOFRps~UWzAdP8YL;)WX6Lvn%>6+GL~_c`tB zR@}b7h6ySB{l@wDeAUBON#Z}H$zN`41I^_v*Hq7Rt5TJ#QmrXV-}S{?KOP7P#J5%g zGcBz>&G`iu7lBZ4`Vb61-?_xl2OMzfyE!l~=_9GcFq%vke84M|^;a}=XU!`u?8V?S zWxj3HSq|EX#q|-yy?u<2X9-r0A zS6qJdRKOtkx!eP{s9r>DK>Qc(zBIVGUi;*De(a}xX~gQ^G$4{X_p`(yjMkW3>q*c$ zYtR=5=g(@wtP4k{*RN#WRd;k$NpPBreV_MQnD5(EmZ|+*^7RfKa>*66Zpefxl`|+R z^iFvrTCVp>{dJ)306oCC36LZv$6a6z?kN3GeG84C*Z~GCCVZCuW|$BQ*0nmKQ=0a; ztm?##oxAS%ERoVTA76;868nl_rapJhN$LG7dH#}wqiKeg*V=IUOO2c+hc>0HR}KE` zOtO>P-Lp}TAVD=CX``z)sh1JA=$XQ{eQFFPpGk zJ-lZ;&oh1BPf}CKkm8Fj~hfO z17gRVa`mA7zjgn_+xBUfhG?z-aLIOHLe+zM*yJ}v?`I-AkGLol;#RCBc8B)oJ`A1P z+Oh=%>j`zsgw| zL{cN?A;A36B%6j*R!q+}`CX+mjrlxgM+S_mMl8gy3+M-lQT%xlFp$TPBz6tg=4>Jx zEz^S_*^`r8jcToWBPb+N+)Nssrb`SuQ{2sJHDel{9Hyj_2;ftq5p2?x09iY*x{kQV zaljFZ2`5>+2j<7pe-F0!?c*4j_jH*F$V=HK=k;_unuwJv&&2s@D7!grUbpg%b?AuZ zLPgd0`Xh>QVm!br@#|jY#kkBppQ%|)URbV6?L@oYM(iRXEGhJ%*IVb4$ zQ#Q&f>nJBU==KtQzW42OF8V=?1|+Pj;-V78U;toIObAjH$CW8U^H)VY9x1yF20&=t z6D7HPgT+UZE9U{3n(Tg(Avp;j8qhS_6Wsy2oA)0da%(@Ob&>{ z&x9Fddb!OR10kkj0DwpX7-A~GRWqYp^{C^dt+KHh^cY_+q29Q_2>0x`;568cG2%*j z_N&Ood%X#<`vXa5@d&U-PZZOYFH?rB6)$vGV?|@u?7n!FRDLQ=HZG@E?5Mf%p2Vq zJFI_0+eGs$EZQYh|C|V+QD0bc%8&I!szQ(k%dYib4OiR)izzX{HX@@{&*vJd>|WCv zM&Esx?tUdjn7bRT1s*_>N<(_8jeZ1OpM3k#@ZNcU5)I>BT>nh>WPd%J`sJd{i$}EV z7-ssK#m#pt;syC?0;h{xA7rKf#OTQLF4+fXqn(F4l1yGM?WF#9TZD-S#xCthgq@2YG+71uVWMfM!k zkMOQo#l8{mIc{E}6Ld&Hx|yA}A87iSM1qXlPd{C^{B)0;J2gA&h2hN?%w_PHpAX*N zaAz`prTSq0Yh>@eRvwThE#uc$u}56^Kp8%n5WGL9tAA#7e%8V{_bt#K8cp z{o}FJEb~Rr>dPUdwAleib1>s%K)~)HX}>AMdBz}T0V_OxypIDQ8dIZU4vr*zLn&T4 zS4LEj8Nztm&*TlA?4blWKi(GYE@_E`c(!@pWf<_P47Yv0+c1d71E5Wt>(He4zj#BU zc)rtHCdusf7Xz7zjIJw0BA-vw0-T3f)e@jMxTJ09S67xM2O7mCigd0#Px`|bmt@pDo^`#-wN4zmW0?4N&8ht_X`PG8s6$+N&zlF@{5W%e z>^c9kE`5UUY!*~Orv1pw{SNfVd;x|S*giLWeg61i>b@*k&M!3hn+V|ih@PJwK+h?? zz5MU)@?q`Z2S7Yhubm!oaZYkD004~FV8ANm;eAh_;%?*Qpkd?m!p@c0$;RE?Mv9+T zNcjIx>mw(sZHWFdv2aILACxI63#rDx z9%rKCsEv$W?W81EPU5HckDS{xNQk#8owN3|JONGe6b_lwwvHeFpE(rC)6B)*0k~jt zUI;GFI6s&out+Y}xi^6L?Pfq}^!1Gw0X>88kY4Yn%deAXf2rROCq6qja~a~8z_cy1 zU|>mrA+`8~NNT`O4D49_83W)sdJwYZf0jg#?h%M)tl|UeFJeK!eMXP{O)NX1BENQk z97Rohcn1}uQv60Z{zNszuZ=-qdUqh z)zi-8d$K2=a{DlnC+!a~AJ#Ehhi#HIvnyJ>t>^vuu)h8Fj-k^Rcqxl!W{jjd?_Y99 zQNDb;wVH-`pQtVG^*T8dmx@s#KA&zZulcUDzBzQjFgh^fU6Gkx0&PpeA&7@oz< zqBou3H>{iFzp;I@pqz`gw$@GI*=OS5vLD4Sm_gPj@BEmu9*MJO`mmgwxg+g0M!y?^ z>;zl#SvA1iZ6iL$ZYy)fwU5w0)sqf{vVDKp0KUQu$b!FR4U7DDEdo{6V@lGdmj%K# zJ|xdZ3@0m#2exXaN(#oq1K3#1rVv6?g6S6nB*IVHwA+Q7a^dKky&Dh>!i2r42%roQ z5CFwR_L2KOsV}Etdpf;rkjyeS

i}9eL@potpffokre;Ua^b3Z=m>R)=hJDN>H87S9ydbafuR zE-N$ch;6Ke-MF5BI^iw>%}w5w#qvF#I*a#Dd70uMYpl#j6WBqh71&q^iq(kY^uY#@`61 zW?pYenJ&@clbe}Xn2i{h`rz5FCZdSCl&OfNbtRKC{pVucO#*yngLe#veB(_eWUSS) z04YD70Q6-{vzqf1tcoCwcxeqSg2%|#_g-Fo26EOPP`SaY`uqkU`5-izziqUrsNWie zo2eN{6MYr^NN9P^O~Jfsh-8Rmpd_q5z*=PM^9beOKOKP`WApfvzKbTfiEGlmpF+&4 zv9EkM^r_!CX`i&Q(DF9BVw0Oy{N|&3Y1Hmd!~Cqx18LMKi-9+)p?+t;q6KM1S)Vpi zMe6Yv-YJv9r}#Q+?)LPLRCD%u?g2N0Bv;%h2>l{5onXZwYPf9@Q|TFM5@;O$KCpp1 zy73T8mEjRXgH-;PpRhrCH2-O6#!8C67!T{(V{=3A7F>g7!9N^$0cap{bO6Q2#_Qdt zu&CECgi4WVGLlJTH3q9yQ3zLL)PCzuz^d>#L$_4XCaI-tQM{Z%;g+dgiN z%hf846A#VDYd7O9W-WK^7s_oT&+mCfF+$QJ>X$16>Tgf_&BPJ{Dm6Eu?E%NC?upjF zP z7AzjQZ|-Zs7OhmRLKF1hKVW;+lu2Jr7kSwp#NnCw=wjls`!?t&p0Mh(f0_ZG8l@HGpC<&R3SLM^nE z+V+mO#bM?*CU2?bYV@===p8D;hrm9}59eIg;KeiT&Lp`&TOZK-!xNVDuwG&jj7z z8|GI-s1PCWcQ$xUxFw=KD5=q{Sjm}VBV-H`D*FsE5#i3_9DKlN^hzJZhmL|TSvv@_ zlM0B6*$k5jU%e4!rxag=7d*luJaJ)D;e;D+DaZ|p1&m*l2dzEQjNA*?j3U*hlGs!X z?~KG%=f@#W2C(phEg7U5?zOR^Hj?kH@tiTZ;d!C-vf4HNP6Q4~)?Ld5@Rx(!3SsR;ESa1dkO7))IZgkU$i^9tc;0q@|(BlInco0}uo(AD|nU z`XR)hczj|pF~J@vAvNjxlzfsNC<$QFtSmBL22Z?nP>09y2n1jU<7g8Sy75GL>R_;R z(u-DU7LNp|ED7`dPQ-QTYZZaG75lhRJYU#!BB+J*_DUYo4hK2OXNvlPcjA=F>{ zc6O$Ne3D~OvRx6Kj;`Dd$?8b(BVe|iK`xmmzA25%y>&7F4ao|%rUO3WS%y81XPFn1 zi`2ci1CEZx>p773==)dXWkMlEK7~ckdW$xU zm1+$~*Vv3A>MJzDUEobOioDKf#I?8>+ORY_%$Y$)cT5Fd;1W)mPY|>m_IO$|UI=Hz z6tM)TO2!sP+&Jp0ibO8ec3+h49DLx?$v>KnRNkn5r<&0tU$b*Vz83?3K2V9YY3R9c ztRYS){3KX=)AahF!Gm1A!TExg)20nGfED^`1BRB#h|#Y-dD3nt_B% zGl_)Q^lmVzXT6C*)z2$Okq8?G*O&JmEvFd;j|K8de%Hw4H+bUI2r<_1-Zp3;8u99z zy)#K)x{5baBfM^tF59%fy1<{m^OLPKMsdN1mR~1{!_^2xQ+@6HE91}X3i@6&M&kg* zUEL_^t4tJHLvPx9>^jgTsupFHN~$+itA^nvzdc=6ya*mEryd~;@d2U|#CE@dJxDQd35{RT*5qUso%TmhOycS>_+*4>}w zCgG@3G&o^`V#37$Cg8j+zy?4STG?ibxi*sg{%HB)`@FmooPwFow)sjpZulqqAucJRr%N8izlJq=E9K5f7#ga`}P6oA|59UYd=s2Jhh=<5r)pNp=Y(yUY}pDmeH5}`%(Jkf+R6g5cNsp5VPXKBF| zm?Kt&<5}o>;8#|3%}uD2PyL-Ev#2JTo77|K5({*N?==_j=#KJ*4am?`DH=?S$NAV$<-7G{pX9m6`nK z7xqb8+Ktp}bvTMhGU<*K@pUm!Z5mJKTg5C6&M~~b^8w73?REDqy~oVYUMvABdx`K} zKKm^v>ycIlwG8Y{qH%TL=PS3z@bV{`Xnx8mBXO$${O5~=iy~%o)|WGM(={c9-@)Un z%H|TS1m9&4^B~!E18k6xfx=N$GBb4I%p1SXU7VD2Ee5p)*7*^lzxX}N02x$wCa*q{ zEqc7TfCX0xdM4EgcJDl#sypBl zOoj_-+3*w0ypS3EIh_P7yCnpj46rkiTGxi^yv$+G->LXL;hDK8-@C05N3QjcB=xQN zdd3{zC_<4=gkoHxdv@82EW~yKf%p9YYI8&gvEd3XXvNoKoCt2dmraP_AodT8 z71%S00%>Om6OQWzaY*-0bQa-SZf?uajcB{1OzF1(URQe+q8FMX!6#@$n8hBdcW$yv zn&97|B;v@-ZNY72qM{p)`#RxSs~I=m+um+OKQSUKwh1b5)aAWd_1;~OAE!9!fIoW! zq;tyk2EM{8lH_<&VyKW!T>fkTO;_7J&34Wzns27I-F|N>`;>3>MT=xkzq;JNTD*-t zmG`8QHKIf(Q&qg=H52Hc3L8HUs-iC};nG$T-@bbokmup?mFZi+32G5U_wbmPm0__v z$EzkmV(=3Nf|OCX(Ea-J=ji8baNe7m$8-`-Ja8*I33CnjxwMF-RXGvkX>>nU2k*JJ z7W{};L|t3$Pg1bl+S>PM(v`?*iIAT$)jySgZqH=HgKL#wfD1Hu;}^IBkzOn6Yx$oK z{_|hoO5dpeq_~3n){4iOOTMlAURqtklW<`$Awk&jsp|IyG2$2cXPm568q!3eRtuhC zsBlejnJjpPgP2OMK8Ux^Ce>LDu!PTQiVc#GcIS%f-xDV!zDUWegT+w)^$No^qW)J3 z|F?-w*`NF;kdBW&{`}8*>7UtkTZ|ysOy&NX@898v6nU#_z`54COelni#vUxQAs0bJ z3rh3RM)qP!cq|8o`R511C;#SX&hP(XNi)#^LMP)i&INyg=869!|G#by^FpW{n`$9S28Tl zS~{8=O6{E|r$p1<=H3q#@&KLY-<~H=wA#u?5OZGeDSec4cNKkY!0rrG{sCwb$ z_uk{|MAV5ar78>JXN`Ib74O=XalPui=t6d#2&Qb{MJv{Fki#dM+-eSGW`IWvTy z#);%(YCz9OJ<8OB)U3(2LSb5vDxrjgO;4B{l_<-jM4bq?qwp+DGGwGg^Pga95|bcZ zYGU&r`@9^OqNs77Eau z?qxPwrrI3|f61O$u9Gi1{{b8MBVakAqOsOEwhBa~`<+nVgFXgZvyu@;J8iYsX1i^- zKU5ed+Z=1B>dCI;NM*04?ksMYa-Qhjl{6NpTa(Hp8>5h2vwOoanUX1|E~(RwFN!~8 zYHqGCig6&pFM?QSlo1rGW|6WkRU)w#=V)e_d_HL2f1YM2q;}hH$KCahUjA>bYZGhy zBG?Z?LoC2k%a$pzVf(u5%$6@GapxsF`)%v5$3A=Qw?Ek8m_4KBbInvO$jvoHyZNXz zGsaSPjMkIhBGy?8{-NpzDn7}lh^{H#iJ&Z+i1as*^koEZ|8So}pk|iQNu+rnFz6U+TXQoo0g4=bf>4NtscLgsZaL(n5g{9HIC?$ywS zH^gBMb*LKeaVj*j;GbrAClLm|M>P4vP6m6zw123uCoz(tL*};{68a=3P83Q7N0L0D zR8A~V^UweV0zix;%UCt(oIr{w6#Yy@Z*O`Ee;HSTt7;u3jW|J~P=@!N8G`OyYcUu1|8gaJ6lEkG5LWlKZ5v?1hm7ID{&@jWVsMpZq6hu zB%ZcJ(o1p*@F+|iXhz6$P=|bTofc^$f497Hz>%EvAzLzt`GkT|g!D`#YkX%)4`NZ1 zL{w>mA|wh~gHMdW)I%AEZB1mYHK8d-89Jh+6{MdSxl&mb!cwF*e?+G> zWr|U8QpcXKR3QH+>(5heq`|Z}RUty_omUhKPN0fYsH-vDE4^mfv$&JAM}ewURl8c& zwibt2wTMl+6a0W&$=Hc42Z@zj`H|Bhhd}hBy!p2MsEa)nmj?yUX&3e+8S;2`6_y zs~Q~RrM~*D{|SEo(NrX-7Qj!2a+IaqApx_5HT1}(Zzf{Po|H2&HJ+}!NPG}5XUM{& z!7xsSSrZn!(ZwKU%D6l#l-n-!BB|iAMa(#mBC~lUS%%3SadKd@#>XqsEsIS#652?5 zd1LMAOncuuv1raOl4}5n_#b74 zNw5=5S&5jsUzipMPd~zA0tJ~Pt-gq(OGD_4yf`+R)-R`#T$4|ef7;&n#`mbby%1EF zCL6T{@BjbSBH_d+n6AEsiLC|l*W8?WG|48JnzySH^h%Q0#e&(>48rJ##8``GY~Vp4 z?rNy8+ahOm$)TYFZ-xB$AI;S!xc?z;jBps%=I#}xQxol3*=ycOHto+No^PTT-RPv= zw?g_|nsyj`CDs;*f2Cmpb*TLMC~YnXg&(5uf2g?OZ(T2bm}2vhV0$GWFGzW_YHXp{ zn&l?pRmE3=^@YFrDKTcqj34V2vWvvo*A$7_BPny5U!?DX?5vQzqHfaM)z3#2`by*- z`Ha;2=$FTQ<}I0Yh{OgQcyEZdV7w;P2cg#cd=s^jzzkTj^ z-}~Rs_4ma;e(twG_60cu`PKh@lW%kV@83Q(H9vp)*B^(Dmz!)j&)}@%$TMd;HdJaX zO<6s#qalv4e>1py3jDh$<@=tDs|m;Y2cDY@IZL~VBfw(Q390)C3B;)`dkT)r2$%c2 z!4rwXvxw4ris1z$E6N+dGnE5gZ8LSizvU4SE1QhB&u? z>I~ik0JNhup^(7zcoEhM4cBX$6?zJWQ$XhPp%7sTe+lF~-8hKba|q!RLBM*7x05g& z%n1LQDu|?WxwktM=NmidOTKE-xztENlkh!&p}~)^K}u0WhtNSEB*a2A#2jibAzY0- z>nMrn!~W?EF|-IJ(>jNE!tjW~T?;z_T)r#vit|f3;>*1VJP5C&kubzSNA!v_D?vXz zh&8(%#az_IUF5}H^hHoa!H%QD#5+P4Orf=4LQHu?jQGPzvBkVQ z#AuYpX~Z51tO-R_4bEGh56q&+utrGCiArn;3q(Z?kwVa*!qXYHoM6O{@S@BaMVKJR znb3?qT*i+OzUs>esw0U_G`36ER|mMjP$ z^vRbL3R+^oj~J_wK*^O5y$ck@IqM0%9KOu>7m>^e;VaBW#EEY-iLD%nxWtITgfT_q z2x_}YsC+*5s>2hy%GFRpeykLrbcmURf0VBTfUqpf*`&?d%!y#g7MT;KwP3^3;LHD& zm`c{nh}~)_$xyNhJHCm4Ly+;y{Tc~<49b-83dSS|Nj$Z9TnWa6&Yln($c#>oXuppn zm#XBEp|lPkQ?H`{Mb(JPg_z2iEX{(L#fMK_#=BPpnIY)*3OUcnP>4QlJ+(HNxtyj#9 zHuKJl5WWf2ENY1omC~p$K~Ism&yT=N(VRolBu_g$P1RUV07wA+e5MkpPu1Yhh49Z5 z0Z;;E(k7kFc3_0IB2Iz`%;f@%f8rT}BAtlvbO;L_h*$#v2+&Wr+@z<#ONEH2|A%xi zO*}vZgr+6&iW@~tcvQ?FnFzI9#ZgJcZZprTTB(W1O7C(H&zy)OZHP;BpwVd0%i_>3 z0@37%4Lt1$FRc$j2~Z>L%79r?C*{;mjmB(11NTWrfjHBKNDRGc0o{~{e+13J=ah^R zP}NZ63oRwpqu|VgXor$yPT3eajDV_M^`qjHE2r_+$6=l^D8q^TQ zRk5JdsJoB);Jfu42({>exy*@01=2?C35JX;*ih4zU;=F|h<2zgf|IXI1(;3s)On@X z`3nZiTnG)2J=koBDMb)hf6@SN#ge1M2dV1j8Xk5!xh!U`aNst9(K;lBc;$6iF4xSctnXOARNES16w1e^NH(9SUPcIZTP*V?){Aw4ApH zmf)JW)LPXHHm+IV1y8=n17x5FaF7LXT?ie%;}V`*TIL8f##=rOIjfXjU1$e-Kn9$Z zB0Q3eUjAiWDAh*Ji7NdF2zapqjzFD#Tyd=l3f^Q0F<|Er+R_l^Oaa|fmgjlCo>o2- zP&No~e^A2A(AgAro`y<{Qe|Qq`#KBm(5Ikg4cWtTlv@&gI+1wf|JZa3y(OZgGF*Sg z7ahLal_-HiIE7QNgHnZn1}$eD&EysYV%Vr*d=Ze>cxOzBXL^?DnMRm`?4Zr9C2gu! zgGlA+@mvZ`Nj0lthQMX<)#Zs$=IPPeC&|e?f8IxRyr7A0<}=nNKt>?a(%~l3rV;?j z9vfDpKIzGYR0wfnMj=wycwOuA{s^$MNYU(o#08QwxfC`YM5Xe3V&77X*X5_g3 z)=LJS@fC>v1^`YjjYP(my7r9FzQOJW?+n-Q4ngh7C@$B{jGdkc$7U3qW^agm3J|vm zzqUB2SnWO%aGZSEkh$ae+_Br zp{KPv~Pmf*)vF052V;9=(f&g$s z3G&%+p-|C@Kwoelme2By4K~LYg`M^lv0fMM(#=mYIdr1A$J}yf7f-yJ91X@ z_1H*vLy6&G-)@*T_GB0Mfwyr!FYYv_5L^chdSLh5!1Vuzz4oA6Q-khyzyS7ov|4fR zZE`ov@`i~-Cy0F~*~FlReg2il(B}ye-N)$gG3@Vn|A%Z>kld~Ja^v-z&3D-lX30={#UOTP40xdD`+)}sp+7yS z&;^rUN6{$x>6wAtbh{lowVP^Szu zQ2fP57R88tGiUK$YvV&n0L3QO{DX5n^fjRnafDY0u|J3s%-rqE_4xbfAIXcd&dA-F#lX9%>Dc)cy=|Em*)t20Ej#Z01zx_@F2p33Jtc% z_U|FYh!Q7KtT<`l!i*XdYS2~jBS?rtHYRKl^5Z0u8@-%t>2l&3l?gY!4CzHCPJ;|Y_PJhSSm+BM@0 za8i3%O^`KWOsg*QbZz(c?#W;p&f;WZ7w=Gd*#`d)1_zEX;%tW10&aXavEsvsB@cFN z`7-9rnm2Rq?D;e3(4t3^E^YcWX}WwDvIGn+?rM!^=z-40HTFU(e=m;&ij-)()vZgz z21>K>DG0a^e-2^%_NP^$s3$)CeG*O1u{Nzn#hZ=o@`4ajWv17=>#2ufpK6z?H@rbA zwAZ!;TpZ}!y3<3_a|-_;Bl`(BAb|xMcp!oaD!3qn4LbNBgUBcq-VE*GMGX`G6{Nv& zqN(;@0_kaX9!}N`MFn5Ok#-+W9lDm`atTO>7j#d}e>mV%-JNtwPV=3FVvde6V%BQ9 zaps>=nrW)JCYx=N zS;$_iak!Z-RN_{`BtDLY42;X2;ap}U%4A|sx}0tVR< zI5_q2e-e;J=?K_&u|XhWXN5RQ5*iV$XOx9mWg}=;Oho#YojF-~SE4Fu`4pE5f`i7X zT|tnCo^Bd@EV9WeyDYQKI{WNIr`+~b4~!I>88v7q$5#uaqDD=wI1LM^W~VT6?zx4a zn=T{ju1j84>&iPXz30ku8Zw3GyDz`}`b%zOf8Z2SLRVDWYZ*B8DvYkWVivgY!tk~P zvAhSj6b!}s(kroJsq|@73yk#2Svz@bOVa;%5@Aeny#U{p%Ct`nVewtEEUd1(47VE~ zUitd_^Uplz1vJt8R?1+>CktyWv`stxG}KW`JvG(N=F3E|2x)LeDkFO)3mOyV)I%X( ze-+ryDO6;=(AG3p{kBWNXshWYUc-I&W$iE$^F|QZ;V^0R6ryxVn_PQf!nJOsK_0W> z{rEq!oI$usCD_p_{w{`rE)n41S0R50NM8ij0T06m{l%(+*bns?wFRw52Y6DNJK3)0xt=rZ&APPIIc$oo+^SJpCz9gF4Pl5M)t8Jt|U@%1mlt zBvnd%DpaHTOL~M4048Z*JI-JS1_c9z0|JLEHgT>~xGbcbpaTEkUPzBq@UMfx$iom? zFunt(@Jzud#2J{7yGf)~s(vjG`t0CTirjz4ffF(tf<`igw}4|4>>I)XF-Mea*rBQh zv7A?H!iW-}A+sN01Qps^PDT(!MJ^o4RZEz*U_sz$X>tl8{3)yR9v|I`jx-(t~h>qKMuT5@L!}x!$M; zx`G6y`OqAnAeSD{hXH`ScEFw>8X)jP(py%hAEX4Ve#qIy4w2~dyCsWO`6vaI_yXDf zvMqG{^Opzsg{&Xu2Lbtl)~@;Btb6w-<~+rH#ODFPR-MG0;m?0=w4Xr~o`O&v-HC<* z5<~)|oo4_bLFC&%fJ1~O#B5YV(Gf(eeBePafp)pq#AF2iQN)M+UMEqV_z6hTncfOP z8$ukN=187+$Q;!X*_$Oq0e-}yVW9u{RnlP}L@@sq{hb8V8H9^$U_sO$Y7E{%*x*or zm3GBo{Ow2d#UFn-kRQK2pcIbWL@eP!{GdxH4GS*U+R)x-&4eh0VL?#gbTnB(q+tYc zpVIYD^VQ+^;oyU?Nb5;N@G096!q?dm1P0NA6Rz6M#a5pkAa*TCw|z=ulvx7Q8%hwK z;b{gP#$iOvpF+$4bPeLGp2AcE{!0(>9gcvm4x6)CD1NK{!Jo=LzG01cO4f027cJU^wBxd1XS_ zW8j#ZOe$nXEFV}X#FgP8#7Tv^0mw&~rB#9ii790rfg(fR)>nq*M{>p@>RbrnATl<_ zoDn6OY#jvXsP{0LBwbl1X}*XK`x+={3HOdVNV?5U(zN?EZO-10B3Rz z?38BHyxyJl#A%{IYOZE$YQ$?ENJs+Z3h^WaP+&{Y;VnK0RsulQX=Or~WPy0xKX#_M ztz>2f75^OslC7OYR)l9RpySA0R!+xn;)H(&4CX&5&hTL+WP(QTC4`BPq+9;O*4@Y= zf{A!S#QCk{0O|xtIAH?pqSSyxenF14ab-mWs7ws#*~AumI#3KAXI5CCd_r2VJSarq zp@*VIJa*_w$X$ZY=S_8DzhT}++!}t;|BQ)31%W!ogpveoz6AHpGLTIj$*1?3Qga$xmO|-+FecCb}MV)^(MwB*cMBt}wQbY_EBScu~ZEAgNXaI3NQx98Oo2>YfoQU?9V)?ie*71OHG%S>>V$7AL3*m#7x&X#8ZR z4#g=%Ynklk3x3c`I9GaZ&vbmA22lT?;wa^9l;=lGoK&C)X09Vb?CGQCl!<>zn_5a;K$2HH4}$h^gA+6m+M$T|+}L!5#D(H}BYs0gV=sKMPt{A6#AhFl5_Flvow z(Zi{@2sy@TO_*DwjpnEz#Czf)z48ZJtmr?K8LO2Uzy3ois15#jf#aZ7O$f>adIpLJ zVK(T(jcP?6#7qlt3~42R>S2FLJC@8Dh!(}FWl>#hdB_4@ok1RitJWoi%HD-yfrKnj zK?}5i9e5Qz=)xqdYecj|D&)Z#fGwhyC?gC(2^bF(&`d89XS6WEwzL2mc zR%4mASB%CMp*TrZ#Hp-J-*i3ZWoYSphD4h2D;x?iTSlU0;HT!Iu1q;$7T)O$@J$*z zV_(VTDFhke-KZ{rs!$YNoT2|C^je0g&Sjn{gbJ66LeyLIx#@pIFc__tnnE}(NJQjB zVDB?>pK+xsdP<5IiqQSoA?lUzt7ybxVI%ln>OmmyW~7|*q{4)z1yNjtMyN%E6^nmz zi7ceoniBEl#+s06fE>PVNoL04RZ3PV1c8A=mGR|}EJO=T+9GEJdC1*++J;8Zu}>(3 z8EyjMK=D5;Ui^P~NiasMbGdO%{ALO*2KQypBLXt^PNvH zmo2kS=SNJ};rv|hrUHTy|AYf)?@18J8aIZWoPrb^#Lj=tEjb>9zIcU1#2~OC!`8v( zGGj(N;3q?PRxkeQWgv-)r0GKFoE`h%NrVa-7mC)dTQKYBM6feS=oU;^^FPpo94o~7 zA&HLBvL!nPPXa(b1D`m$B9U0JL;xTU;sy07#5UhDPI2GmIhVO0gtXx!0KAtoBG^tt z#E50Y?G%5+@eLnOb}msY;mSoMLmyWYuP}4eM0$Z7e&+2&m@GmdV=&*CPox>Zc2Y(RaIF#Chi4JE_M}5gknubH07dw z*;Z&oG!F%dIciPB#Z5M!x9TV1NOezS!-Rq~PeZCLN(3Ha1>ZPo3{JAjs012J*G*4^ z1};PiY=Q-;m#ikl3-d>M4cu-nZ)r@k1ae78&a9wl$B{OtR750w?V-aYU9XsEF?$|D z*kOOtVNdgoj5A7)9XNzy%W_3sa3X0ZD})9d4CiTM^=U+Oha*-% zbRAB@28!}a{N&6U|EmoiVgdkMw*_iVGzx!=FY$1l4)`48pv*PG!=g%L{DI^>%`!E<8?67qn?Agt42gj&UQ`gA(pyq zNFT(aAhb57>`CC@fCHvNyw@@=AF&4`pd{|^h4$i5#3HJDSZBFGqz8%EjX!3FiQ2)( z9LF9uS(yAoCl23ZXM~vCk8N-6LUiCm9O+uBOt9#lmQkXX3YS7q1Udpsr!#-X+R<}D zFtbaf53(YIF37?uOoD$70U8kHv{C~#1cNT5!X_AMNl*dPylB>tAhipX;&99!iin_4 z;t`K^SZDNbGR9~Y`A3-U0``?~0*vF$v!aK4MR+l@i$-@2Y?a+;ieX}%zdK&wVZEJv zMC|*kB1942|HV(X%5irlk=TDdL^$X~kYD|2DFYM5gxcnG&Gw`s#1QDQCx>!+P zct=yTWw2rie2kcUOgqM80XH}TkR#<91Z_kZ-H~Mc4WM-ue`zuA zK^QYy{7$k@M2-KTTYns2)aOA2GDX1pLLlR$YXk(mGWb=Wz@L3hEq;HHE~lY^|CO>a zLI@#U1HkBcai&8AIZ7=+{1Z5E5&(k-4fYtgumwVc5ZW!2IFTYnWDX6ssF)2SfCS(w zh7>uHG1!|!h#(Ew0wVw6+pz0^iFoPgB0miq4X&Ba7ZO2xUgp@&cGV1A{B=adf1Wm zFBsOn5*yz2N;YKQjwQe`Lb#U+!Wk4BV=P3tWKpg&Knje^b+W)S9WzVCI)fe>ggXNp z^g>ZF)}s>b1B50|dBm(Ct ztnyfhnz=$U4XXwv>J6h!qGRbjwVtD>HixwPPoe-38Vk9l5=8%RGlY&yuQi7r8;GM4 z1=)#e;yXD7KCUbg#g}VqAzGjH>j1vPp+p z7;GSLxH6L=DkFRgAtpk^NUQbeDd8}X&^)NZ+?bNcFo#Nrk3_77h|x%_Kom%qr6>Z& zK*!Mf6M*9;Oz6cZCwkP$g%<6og)SAu=(ep6nzP4B-<+sU<>(q{Du+@^@5II4yRy5E zV#MiItilv2o7`Z1O~qk}E!Nn7W06f(*=3n+*4byF-EYu?IGpjIR{yaJp#&^M^&sXJ zvehABgPg9SLmi4~qC7DQ6t{NYL-(N27P9O>P>FT(paj$u|A-!M4I1^le|^H2Ft9`% zNL&Dj9LQdSvXu0oMA2InqlPU+RHC39T1_BFu|lJwF%beUq)xH&*u5lw9m3X6j8ujV zs}lPC=SHe3lGNpYrakD>cL7})B?z+}lH+~j>PTJpG0$A{%{j;K=z{`(6`{8U@)k&X=mx;=j5S`U zX#j|RiExS~x?AZ>9jdXtw5ztdBi)S^y~U7L>L_N)B!>T3y(tYEj9r9i{|99~2kIFB zchj@|L&!Xhb5ovqt%z&0Z{nTzg9K*JN4G=L{-D(dTJYl7*Hk=za)D0tdZ6O(qW_+9YhyF3X$Ki-cDXR-g);2+hfJ-3S zatQsLQYxAGBytkMO5P;Gzirj*V8)Bj>uyD^q9x8DG+c=LltjYL4UvdNG~yAFm_#Km zv2wx#z}Ubh6i#7(M0YGZNRE8>yNNVVY#|}pLB>WAE&>3H3;ALh*CRiN-0xu-QI@`Z zEE8UTOCZ)uK0X| z!p#U_>RbrX1y1F*9-JCPrW*szM2u<>n|5d^G`vxN0%Fv*aZ#kC0MIFVQh1m9^|5XV zYU?!HQ^<>{$$HSN9tbBQ%-6u){@Wzs-AVp>ooAzgszsgt#$2dVH?{ddTU7<4Ir>a)eb#^vN;QkP}oeh zkho%hM5=(X;Y6&*RP~6IUl#H0dro1UKw;wvg_!1|xfc zDsKb0#S= zJ#Jc%qc0<_d*B#ot6*g^TRj_lN=&1Tsn`FSv+kaI%@qT~GHirK z^aT+~CWBe9)58JSEO;*p#mk-f)Vug7%OM{?==VF zNB|%Msx2i;tPRp-ENk0U2oYB5Ab@bXLVP@d3eanUs#wbGRwP>uZgv4K5N6MRd54@F zNb2VN=@zG_tuY_Sr@a6nha&tu5&kir%LHSLsMf(_u3w8HGDdWhnB@}bYZ%)hNrMbB zHC3Y8zA7A64Mfh@6^0HoUw!egm_1aE|Dld2-%Jw07I@rsxBK1ko_D>Y2Uxq&C@Imb zk;?j}!c8+X{`xJE!m7NQ*!$XlDBqL1=>0sA?-@MNh24?KkAxa}+}GhN!bPXMd+$is<6wN3kf*{`@9_KDD;*(Z zX%0SgC?Ve-W@gpe6jao(^QvC&GCR)_!R&O2?+}Q4|Hd}kP)L~P-Elg9#tVHt$lBUM+TdOIrIqjlnx)yQmlQXXu)hl5+;Yh+(95FzKkt7Di zx~KzHIIa^}vL#*eC1FxN#03JH4%oKEfDmHpDuQkl48>}H$%hQh9ovf{yyXW6qBTkq zC^|yb){nv}f<)L*B1X|B8ZBVZ102GtmPXH7WRN6qvXd3vB5YRi`YuKyrts7%q7_l{DGwrMl1n5QY$R;QEM+dn z+R*y`AuHd1ry{0e9BoobK;;7|N+UUlGBLstAF=!(GB3AqrLr&;>WKDYfWrEfo zqQb=GH@`x}qG!rL5*D9LJ*sm27S9VQ@abeNFzd?*700uX;BCbsMfammc+st`{Q zD=1NZz)Y}4@4wWLZ6@S9|Nmi1cvCYqOt8*C(kLQoUQTSko z^d?Y$+PG*=f?*QQUb zFezhw%uzYPG)%>GOzSSFFrxJuXp@A~dd6|exYRGzs{^x3v490XuOv4I!l+d3FAu~5 zU(7Gx!b<(gk{FHy2SQWC@k5167k{mGHj6NS3X7>4?Kl1N9XaboyU|c7!bsAmDZdm8 zuk9DtY9boc1H%F@8|8&Wg1OAZClO-w`ieFQ#6WCHUWQL!?9|bG3M16874-%!1B8?& z$TB6Ot&~rX6s#3Z5&HjNWh5pLBm~PskF8}Y0v(Y8CzT7Qq;&#YiiF+)lbOP(&Y0dJdRA=^ zMZ@A_|ED8Vu&=%pSjLY}brpgPVp$u1OZ*s3y~e5)&y}Vq(S+Uq<&0|h+G;?mY2i|51fi;6Yx5x@=fCDGsP?o} zCBlS?GbFs_XxXb>|0yRm%vN6Yc5nH%Z=J>0OpMXGgJowgoV=tj*^*HzBCHU9gD@R} z1wABUm+wD`Qba_^Wmc(0HA^*I!lQs^0u5pY6cuXl%wPrxRYjswK?zux7Cfi2T#NtmxBDi#1NbCa}9EuC;9!lv~OC3?^-60HYv4?=PW zmC76!cg@d`dNX;U=6ov6cP|lt%Pz4gx!=H*ibB ziCW4(>EdQMlV3XqHDmtULWEvPqO zhXg5*fp5}vSxf^@3pkN~6?u^vxg;VIjpGM9#@GWx7D1`iBe??LaOi$WO(Z1cTqj~C z^VRx9NL}b*O#WCPV2M}>q`La09qLJJhRk(yG9)mmY7x(bO)Zc~0&stKJ%kC5P&PaI z*Pi-C;=u1K{}))eyp;>LB~L++^R9#LFpEhelPe4cbo0@@ct-<&`o&vXN|`sxlWQ5s z>d+zpCge^rO4dhUeo9bP`GIBAWv%2)Ln13HtgV=|k3i2YFk~XQ4-svp0C^W7=dmKL zhK6P&ZbgD*3U-j;_*pgq4H&bLE&8G{x`1ODi_z~o)LAz zT-~IiuNfi0j~x$x0xf1GQG|qWM}kEr`5y`^oHJH8M09{U&{aFIfJ7`74aSi`voWzE zl^F+CKt&fLCmXEenx+zX$1b>;sDnk8nlJdqnX?`?OJeOk-JcacIOw0+x7lVH(Br zJi@(V`OvcRQ-$QS2f|wVi%}zDT0mr>62PS|v`|^G=USW17J6Sx z<}yP%9Y@FY>Uv|wC`;gtnAJ!j&_#2-N?@;>I77mEz|US1U{?Hx8q~|ooTy*4uB~Nk zNEEy+|E7h6UplJ#?4a@cPj{KC&|^&ARKLM)a#$pPTvI#7Wqigt(fx25pt*v7<4ZS2 z!iuc8H_r#ns4u*IgJcS9Ry3t%W`&hS+94({!-3CDCZT7H8=C(cNkWDs!n!-CfDN-j zhCm#Az$hfLAtJ~4d=Pvgme)Nb2CsNeKspmBnuHR6ud8gOXOt_>xXepviyCsns!3wX z_@y>~Fy>cABSGjvT&yKb)QAeuOoz7o{p8V7i}gBcW}%oo^d`pp#)vd3$%EWy2!JTf z;}{`mNK-($k9sAqOGT}8N)}k`q%k6tb22uYummP*#U(-)9))hj<*h_262*La1FP55 z19|^j6dWe7xGBe4ew@akJ=&#x?+OdXx3{c+N@7~#R^p_J8qVhoo~d418i-7V9u`Ui z(8bKm{YMDHipXW%v12T-BZV`Sv;7j!NSzgLr3V;cp1>g(7Rev!nw(S&%Hb;{+yr)c zx-Qk@VTR((4Pp|y`)g8Ttbv6&+CfO{;FnsAMN+|$0DVem3!a&keNYAskf9wIfpBPl zhA4oA2_!~;N+X%*0hWv@7;=MzCu*z;4$cum-4{y7L&8X^#G~xdUmVA}pgiAWk9%X7 z!EM=o#J#_>S9PFf%PiEXfI>(nL3ql2Ry1HIdgl44VODspBqTVb5Voevap%5O03ee(VAYdnu!HVeid@__G(H zKj5IGkZiO)SQj`OO4kE`19`X55ZI*zfh=)>16)$Db(mCx7xoaJLCAm@9TiC-bD~tVyxb#1g=3* zMoM8p;Ao1G7sPI*BX1>~N6@FyiHcV?{QYL;KaHh?OfbAviu8i51qSK zDFj|{2eZZra9ohNp_;uHBPZ|fP`wJN`VTUt+a@tw)Of@^OECiwFiXg6t{u=0J%?Qa zXsAq4D)0bhK$^eKAa=9alH|QX^so(j4|zndRxp2kYalwcz)uxS+Ymv(y1&q46JyZ~ z6AFR4qOnLSOlzP69|*w+N^pV{tf11`Q5*>H4lU2IUEtu7jZ@^oBwolv`wl`6Suny5 zlh6hI3gWyWXg~uqI78kX0*+MJ!3!)*AYG7QA2bvq6+NNRg;Zq3g=obu$jHMGS}+m~ z^niZ~lXzi?7~zE;fC>T!^dZ_dK?VOPMq~yDBp+9(aRx6=g&JP?Phf^3iwz#+6lh=q z6YL-h%yA_co0yF(=H-xf6rxHRXaN;Ap~r#*V})KA0+rBk3NvzrV#lJ$0Eck1&1^!F z1fd5qbiv7roPrUB*n}L_B8x&a(hHMNqlbTV$ir3wW|4M4Lkq3ws{poSIe0;a9Zp%0 zaY4X}qZ1(&m~aM008@61Km!Ydkw}UlC=ZPI<5a*=2rA5=B%4GFICL>eMr^{BYoUgH zG89RJqyk69I>Qi3KtnH_BAR`n2RP_iv@=|!1?04#KmQ5PfC_Y=1TAQvvVl*7>dAj& zOESo!7IHhLWrG@kRH#J}Ll5le|8jJ?NW~^5v58a!Ba|1_i|QgLF-Y|QG1MStNnZ+6 z55;t*G_9#kZ;I2L>Xe}V13>#&Mbe!LRiMg?%~0i3)T+UdL`Q9^Q=baes7iIJRIRF2 z1Nt6}Ft8x7fxuP2$~5jZ2dsSYmDqnMsSv=Cb**e|t6Sd+*SN}cu18}i0QP6F8qsyH za(XCh_$n8Agz6xht0-U(i`c{}cCn0YtYiO~EkL5RagVKRU9z=N%MQe^3Ss9zvieue zigvW5Ev;!!i`vC@X{83)T>4U5+9XaVp^L@ZLN3O*hQfBYyzQ-Te+%5;CXIhct1}2_ zBO=_<+I4@V_21JB5+SuFce?-7t*&*ii{0wxc31|P>=Lu9*a%4kwSvWnXJrd9+Jbkz z>}{`m-wR)yvWm3@0o7~c>sC+|>a@gVN_XRh-vA4EzyvO^fr&;t$|6KF2X5ErdPxl97|VFZG-hmh zr(+Omq~wG()+tb7+a$FnSgAcOvXPIBS(;Sv<0u0?0jqiNxJ2C6xO#%$NZ!WX@H_Q#V!4Hn`gwF+Wzmc@Ulicr=DDL4Dueil4 zZXy9)oXe0_kEk~e@{o(%)!Fc0W=G!R$qpgHC~vvTUvB70P@xP5XILi8VeCA5fBWW_ zWw8=NmrXPTAh&nN7&QTZTgZi7=!IVhhG8g%V@QT&XohEqhH0pVYsiLe=!S0yhjCa{ z-!ut@V29Kuhk2-n7UUGD5^Q@2h=E8!jKDH~D2RuMh)FY943>zE=!ik{Y*1l{k4TA? zcqa+=6_%)pn@90`SI(qezN;(O>F;W~HeAimPZBkq7{P5CCwjD2uaLKj=b> zw}^{s!Dzjai@oTJfs_)W_>03hi-Sds$B2ud@@dG(jI!8MAJ>f0sE64SRMKdTfGBOL zc#Yc#h>PfO+z5_xm}1iwj^!AL@N!?~sE%ovHc%0Z>j;lr=mjl6kM+nhfEJJW=!HEM zDetI{|44=Wm=d>t29O1bg#w8hHfN9v*@OtW9N);05t)Pzi4lV)kr#=CeUt~YQ3!cZ zK&^t2AvuM$wh;Cvk|!C2W`&X~xrE~gkt_+5JUEUP8Iv{1gOy^EHmQ>^=qvuXlRpWA z+yj(DiG#}FRYZxDGYFDN$&@aLUH~w0O(~Trc>jt`HkDUdX@ag8l~~D@Ac$oUk&ay{ zmK7LgN^}arFj8ZwmKJz2(6W|qDS;g)iEv4m4)|-PQiG<0R0oV@UkPVU9n3sae7$lS6WgLGgfb@_G9?1ky1OcJQ1Za>7KIxmw zDS6-!H{MbLg`k{?1rBWES%I+$Eg+rD$(`%f4sv-eRFIQ%l?ny2VuaCeLx6|f$)2h8 z95>@FoZ?v25FsZP7!j8$m7fR@wQ|DGGDFXs{+5b%<4MGxSqVupdA3PCcMM-8-N z7XN=)fakN^-sbJZjl zvfxfo`iVW@1*rgy@6)4p7*xUVrDHm#`gwmBPTB)dDy7LplUre>@00*px}~CqrfNE+ zZJHEy8l`ud7-IURlBNqi8kQ`^8)iBeF-oQ~8l*=fNIi#w&kWlaQBKSxVoJ#)?sCqQ2`VXw?O&VishOu3mp^$^|IPh5lgW7*x zuOmJ$mNC5Xs7WHA?O_4Z0P^`Wv~L7S0+rhXJZbc@QbKl}RzHX=NB~ z2^9~tiwj|@icwSrw^yv{s+w9==$aB+QKIq!7vBjLRF)L%>ZwR$uMhzjND2U6ppAZk zMuiBCd7%s5YAHThInep9TN53@`VW7g+8^fX7X|ArRDiJjs#Ob1vHfAOTd}cs)(T5b6q6GOG}Z0u>(06{&zKcxbZ#kTgHL7A2}; zA28SVBv)SB1Bu(;s2%N3l<8Yq98vgZP>DKV~zVYi9JxOpp8!3!Z5l0c`xp)leFgQjfs zQLpWqs?fWt(%Y)kyA_xS00fCtP+@9?L6N^flS$hjz55R}DrlejxnedL-wUi1A->ts zyX*@UG%3I5D;QQgXtbL;>%{*ET#6WQJF{}jyLFoqSSwe=E4)vI!2f^Xiqa(ur<*Eb z^Oc}`s??jVL$kmKQI!muCw3KSh%vzn(F6Uv2{yyM6!9W>6PdaoZ3+=Rrh6_9t3r%G z!!>NfgeWDGT8qj;!X|8t2a&?Eu)-}20MQe|3NgYS<-=O#5JwCENnFCY(!G6QwWg}S ze=>7Dpv7C<1E{jQ07ic&zl&HIoWMi1z?-AJ@5>t}raZE15M&G}aICgc!gBxXABX{} zx>Ryd5j|lG0E5Pt1$+=?iNtF2$9G{@34ptGk;lfxk9|D92NB4PMkzV#$b5Vdjf^Re ze80cpVg_-=MI)2~48|`j|HyZ1!PZ;GPqjI++sYI{l9$G2m8*X>5fV|aOc1zyG`jo` zygU`pl09@XtDkHb*pWRCrVuAIj@nBVyl4=FED$qk7sI^Bbz#g7fy|OSy8}rPvr4Z7 zam@#j%_kJj#uc@l+;E`0B}y~OEIYtqe9DQ%%f7tIP8A_*cFz=%U^isG(y>2PnXLrE z!~*S>LpuWykN|%(AgXeb&jh^?Q|u6~7%_E`qfdm;EpSKOv~bw5o_fJ#r-C`)xlxAv zyw3Z~M=}u7Oc&eguz2y&=|vGDeGnwg5}?v&FHOt`A=9NRB_W*>I*S)p3jp8z524&V ziE5;Q<4!FQr=hr|a?$_JaS@!2R00rS)iXc^wp7P^F}Hu@3l|821~Mc?Y)Vgdi$+=m z041SJIU=KPlMTDk0(Jl(lfWZf1k?pF)jaZv$GO(m^rb;@*6g9yHW#Tf3fO0W)`N`} z4LuNyUC&RYHr4YFkqwL{O%Nn0CA=|AnT!$SL)irJ*&NhUC9u_f5!#cjqFiBDUcD8@ zBOPc^+UkFt6^1dl!dO)H>0I5xh`~c2#G=x2L7^>;7q!h2w|x+~%@VRQiNsA2#$6E1 zojgB*&cC4|Mjg4@0vE3R8xSDZYZ29Iu?euc9B5#)cG1;$Aq(Oi8+ce$Z$rcicHE@V zC8WJemJ&^;fVuEm|J>*M-q%?WMI|Hs%@wD8+K+$TRC2kM2p-*FS-NeB1}=mXc>pQ5 z)3VI0;GVP2X|ae(s~8tP5FS1i;OXD)fxVz(z$}5;L>(9+5vMI~pFQ)stz{`mkz&ip z+k_(95Fy-i6v>A1C@mhRFFp{iNV=P&;@iwin1awiF60ax;~}x+F3u7}KHVw-CrI8R z4sn0osf`x?;w?v^7T=vZ5DXConim_)+FKErvjR-*E!0p+KW(D{8p8yU+vM3m=GnX7 z75U~X*W7~E=Pm`}Aa3ACHCcdm=ng?PZtTG&z+=y0l@38BvOExpP7s!k76J*;gn{Y* z(CJBG$Q}JP0KESoaS_6jjVG9`y_@6JH9mjHub4i+y%v6K=8K`~gjLE8;p%g7>%7j* zfzc!kbrUI_;jQB>sGbxVcPz`ieLbY8Z7Vi!LB>2cZo6Qp05SA&X<+BYM5Yglg;jMpd zGVlMcL}-DDX3FiJ-0Wkv+j$~w-^S`Rej&PUSh8*%P*LlP5%IW=8Wf-8a?$Z~G4g;B z?6T4+)_v@0vGDeiP|uzt=?ja5QSEYJ?kIxppNl&6`y0%x-u@;>6zVMrB=r5EMg`x@ z9Q^K0MUuDH|Mah3<__;Ab1}gc_4I$2?HOuO;)`h*S3eM5KNav2+yCIfTPtc_tS9t< zDjPKMEV1iof$?Y&q6$6jilO!?!S=a+trZ_wYrk-Q5A2>nlFgy={ekQhQT8+!*0~bQ z9v`?t}sSn?=c6alu~#6|RB|`d*_u zJ`l@4C*XPbZBGxA;00blJVnj-aBsif9UU{kq=jMq4uSpJ&;3F1_Hc3jbMgLx4-s+= zBvEP9slflmT#VgZ0WbXIF1~*P5D@77BUsR2!4?1%EVOadrziW)dwLuSG>I0GXUf)FugBbW!{jD{^S zLYPF6-X;wuDH@b%vgXa4J7dngic_aao(^SUWMpt`#IhsRu4UWS?OT@@#RM6D@L|Lw z!7W}ql_2BB4Rv93TnMDbx(OntatIlmCUWI*uP@9F zcf7*#f4yMTNChJ}g3T8WVJkF$BGQrPA)rPG@|4=`0B9>4kmz#=8IbS`j2e)Jdy7Dj z>}ZG)lXTgtK+uc=DVT#wBd;LuN+@VN4ITms0%~T{3?mK?stThaGBl}0s!WRUAPrgU zh_!-vtnNo3gA{T|B8xQgNF7tSur*;ewRYF!x$7qBH)v6TAQTV5~1ewa!Fqqq8Ey%%cF? zVvtgfkkNJ56a~9AA_v`nIt8RO9r_AY7fo{Xpa2Oi$U}u_q;er93Th|P)gs&|#}AVQ zX<37sy>O^WF>+Q+bkkLLU3S}b_g#47m3LmmTm_&+gGP-AP`bR6klrEP6ws|{BRcmW zHzB|cq$1lXp~8*o{D)hGO2w2pkoav&&=dJPD43aM`Y$erAud;cxQRisI6SvX2FXIW zT*e6I!1Pr}Bzjg4oq$s2v{-I#t$j=i3Nu|B2#O$ZLb>Ug$P}`}X^9zylY2 zaKZ~Wys%*xQrMt>s?(DzxwOyIYe*pQ=5?9hDkg-1Cjx z6nb~+*V=TU5>g2jF{y!#>)3^8JP5-3?DpNEw?*%1?0?FCwiesCYA03wSr2Mocdi%8 z-))siPJja>U;zzyKm;aGfwZHHK_(%ax@_-i3#1F>+(JHuz{f8Z3=%zr*Mjd!>^xRN zU7s>`7e>UcXdJPh?G`dJw|LMbAjBTZM)Lq!@*o_dJdu z4FK2M2nGRvkPRqCks4F9h-m=Cu(r5oCM}>s9&A#bU!e>xPSl`7Kq8|4DI`lD3*h@A zBCUv+4Q&chTSwY~3|-_=j}#l8`qpTW7V@t~WMQD}D0oOjCQ^}$WMm^9=@9fO1YB98 zV-R=foJYcigKQz=Up84CdUz*oWjxu<2%^QEr7DMi7{laU&I5qe0n&vSfnj|_Nk>v@ zXKJVf0MBr^5FHlkmiNl#&xWaiVyb6q|A-w@>;(WMZbXSpG}bI_heldqku71g9R#Q_ ziDUwXo637jCpU6NKNj+SZY*Cx-issI|2RVnRA{^7{R2vBRHyp}`6`D5vX7Z0 zXh98sdQgNWRH1-rB|##&kjTv?de9svF*OKU2mmTK{+NkZBYiILQ#Cqx#qgsyCCm^Dl00hcGnx*WW=3Pm zl`Ce?gilStOU2os@qr|q|3GINUD{7U5+rngaHQ7!I0eZwJawJ_T!>ZwA<%s8^Q!@E zqebm{SG?v`uX{ZlnT~hM1Z?#my67TDCYtQoJN? ztqqyzEMw^r$mUS8r6gx%d)krE0&}!$N$vlhR*Sr4QZf(wTWUj^I+Bk*6`MHKW?T4w z=)x8VRxjfWR$H8iSgu;pt8Rs>*xu;QIGQzWv)P_n<7z3o8gjW{9VlPD`(5ycSG?mT z4EYvU5Y0ve0yO*DLjKhdXcf!54|~rAL4sVnfFziQ;UzHHTSHTF#Ihd2>|HtwO~mwf zPye0lNH;QIhbTBo3|@`8es#Uon)eT&N(OTP?Z9!Na<9#{O zRkrdoyPN&TSfN{1c+#&R^x&8^uS>`o`?DZ&Wo})`dt@XhS;E<2-j zTdL(=ndws{`I@ zfI6JUx~6!=Eq-x~AF02RC7OuA_0a!1^0lS!W$oo)H3^ib+$|3T^kGVWjS=dsC3N>b zXE{S7&(XA*O_{CpuuKg_uavON{9J1FhuNNe{JZ@jdl zrTfJ2VA{Gl_t_~<|A_RPvZyV@R81jFA4z|?PLRga+_Vkd$T;PzzT*Bx@&KT` zM=alw%&*xbrB~_Ef8_M|*-q;JxUEN&ZnU}t2)}d59qzkM=e6*0rXvE0iv8_sfYaE< zWJ`O&*G>>-lU#pqr@O?3eEf(f|Nr`Y=YIFS|9y(P>0tEe_$LJLa3 zgh|V5oMmoH@BV&}1MhYu^B*^0ehYx%8;SCBtNj6hox7}SlO~f0s)J~)!t+0od5Zzu zhypyog807xR0|9Q64(={u2~fj8;RaQHhRz_J+h>KXf4)r2u3g|7kt2mD8JVlF0XTo z0=&OF1Br-YxFUOhxU+jM=EE`Po34U5Joi$)xr;l6qdp}hh=ntZNq9jQR5b9bLMyyN zENl`Z{Ir9Rgf!jes(0`n5X@3_Je>Ks?m1Jv4|Jt2&zI%2kaYechyJLHqQ?W;cR z%SFM+8IuUTEG$N2JVsGHpVZ4l9p@#oUrgc=u02zXMJRZs8upYt21VF>NILDBv z$9inXhq$MVh{t)fK1%U|GdKf>BuIng#fBtEb(~1QfIV5X5y`N~mVy9@1Py`d0i!vE zdzwLCn~5HAFDr);ZPBRhs9PQm!Cx7utXP10N+z05euf# zb0K6B4D@s%^<+=maZj<3&4rju|I8rRaxjBnPt6QaF5I#33>hjUh}1mIqxnK>ibNXp zPu$Bb+o2)k{KcW%&Bq+VX*{X`{V}M_&0cK6w|YCl7^cOGP8WSq80Efan+Ui_O$#i4 zjKCWhhfIOBXp=W3@Q z{7|D@8~r?rr7Te={~XjjO-`x&3;4W$%NT7`M}1U`qX!AofEI0tQy5JRO^nfd(|8%v z1V96@hvAfy2DOVUH3?RARmEAsT-B;B zT-5;;BmA3*14Yo)LWWTtl(zr}C|y%F9n2n>NxF#BnDRYj5FV@OGTbawA0*0u=KE8F zpvt8HL)61)!%~G*c#T(i4X?i}fkFsXhhhY6?Sb7340?z|2RQSR8=nJ2#IweitUJB-8bli*o*`| z#^XrZM9`{~roaCr6@~SPRFKerh4?Injj0x((Aad$ADsl6O#naK(5T$g1T9K~BM551 z(38jpB~sUhOIM*aQD6iN$@|fHy;`iz+Jkyf<2Zvt*o0I_g|S3~@Jv+0XooYX4UiOA zcKNB9Fx#U!1tutg6-fXt$^#=Mh(o*^YRwC3cu2qvT)`dOhum0)XopFE7=lRCfF583 z%OqULh1{V17_!}z1bDwq=-0jY+sN(Q!VMzCRa{PK+_~gj&y8HeHQm!CT*KXqO%U91 zI|aghDP34y&$Zfi*aXGZj0CV-CddP}ou^bNgvdoMYG8!jRj(Fc0yJPtzaT%`C0zW< zT|1at%_xD-{{$!N9NbWU1&6_9y4MZdu#jEAjX8P{+*JJsS@41$sEx~|0-CV{!KJ)l z;NBtqUQV;$&cI*8$er2KS^y4U0X86$WZ7;Z5_;&{b_u1Bfm>-(;JqbAz)4^wX$J*f z;0xwH3Qm#)&S1Q=V1$aN$s1r2E@2ZkAaEcvwW5NUMY7Rz;Ji40#CJVm8m?iAE5M?& zVIAIK9u^Z_P*dCKfxJz!R#j2I=p7Bv*&beECf2L+o7^UjVkw^D1wjLvjffJkgCSlr zdH~0X`wP7RS`VgTGA`o+(mgXyV>Mpmw?KwTXusUJ+?BjnzN3dpPzo5v3$W>dNzhz2 z{$oH691;JP;6N^aWJ50F4YopXn1oxki{lO6Lylxg7Lx+p;z_<_OwMFY-egWTSdL{`o@H9DWm~>wT+U@(-eq3yWncbfU=C(s z9%f=LW@A2PWKL#fUS?))W@mn8XpUxSo@Q#UW^2A?Y|dsEZQf>X?q+ZPW^fK?aUN%K zE@yK-XLL@NzT_Ate_kj%_JSceXoOB^g;wa_z0-kyXo!wziI!Jn;8kl9(uvM!joxUE zwnBQa=$Ojmjvi@}E@_h%uQByckv?gb|88lQerZLjRoPr=VxG5PfMl4?X`SBbTO*$Y z*c_k^YRyqv#+`Nu|~FRh-){*A!9MJ`7L0b#>s4k8zI15rqieYq)3_$X6aDf4Jh98e_FUMY|YN=gqs*ma5F|ZQnNK-7YcXiioIA?S&{7 zwN}yKE)#cIZpUkgF~vO*R*2S?P1ygIZEK?K{j0&cV8v_%Kj$8p-yU!B?&R<;C*ocU z(00Omx|;KTm-mM5nRux-1%T>y%9AhY`(%=~8A{q6|c#?|f7fJVkR3O8^QKXEcH@j=_01y385 zc=1(}QWZxR6;EmYFwG1Xu?~lo9|Bx#v9*i~5T0DnyL{Ica-Hu^n^ri_5dhla06|tFe z^!`vUc(L?FvpI)I>0z@n74q}qRER-W3qc2?fBx25P5*~gS9Di@^+v^@-I8^+$ObKX zzl&%A$mTh(tAc`@qxz;Qa8>p??Ap9 z1|}#m5a}7Br5!#VI2U7lf%9J`A9xpIsviFT`?r@w>J`<(Dad4_OIk(AvJingwSWvl z;C~EJ6a<4MR9|4HPy>!G6&lr!Li8Aw2Zjexvl&qZDfHk#5l#r=P8T-Roj~9HV)D=nWU0S5($ozPM&DclTa!Ij*I05a}Y9=%}5PK&VHmy zdQ|96hd%V#iwr?3P^bx+dm}^B278c(0A#aJsse3-oS+RM)33i?vRf372f^E`!3QIp zu)+&7+_1wBLmaWEhBc&TQJq%QsF)J}11$g${6i0OI}IkIK<_ogZAL1?l%GK0b|h|j z5#5PzL+8z?P|fr*B(p$FTpAWb!+!#$P&-9waQ|vWJJ-9A&j0|;vD8yjUA5I$W1Y3u zTMOy!Sq-%_vOpM9q;b_ACt#4ZLjSX-T71goXWVq{3)0i%I<)pqWM^oH-+wEl_dpKe zJadLc#fwlXMQx{0qXLzXin9+1E)e0Qa-F&6n{(c|=bwWf`mK*&)sWjeDSs`I*;J!# zkcP+Ii!wtjUqri0E&~8FM|VeLvOwTyY&!2RrD&4}vg+wz(ew zT0pt@U1W7r^B4diLPFUsq<<8V;Y$7&5&=GhfWgDyU%ZEq*D<7lJ87Ik?7%~TBw%0% zxgZaHD8eT~F^W>0A{DDRK5!Uia{qW70QjalW33Q{mwOww{zM-$;(w=Zgc8sIi&DXh zFcE`Jbe+J0_&kPe>WC$L;}Z4ACMyCmkb)c}Aq#29B7KT94PhYwQjtP1N{xjsyw*c# zC=pAh#D;cbV-DT8LqB$JdET+30~->I%0VV-35g>D=Xl6h!ZMb!oFy%584)aU>VaYt zh=eSn!bpnoW|V{v8h^J{O#i7dT%2@>4*v~Ulv6-6n$n!+DV(D~<}vV&4#~zQyl^GG zOhO^Tqb50{X-!+AGo9*OCp+5-J}>BnN1NCs03`Fs_l1!tlO$s$k2yns)-ahdTV_L= zi4otG?u-jeh!6)tM2UbS7~SL|0PtoIgt{}M8r>*IJL*w}(SPGtf$>5i&Ty|6rS6OP z1g1V8^1}SdM{fF)i6+;Gxf2q_iv*hlPkS1;VAigV&C{ku+5u0Zq%9$+{3uhK>eQz~ zHLA41B`5&^uzQB-Y(QPeOUpPnh0c_2cDW%z8N$AuC6b0C@jl2cHj1tnlYIDaEamku*!0KMd7GbzyBm31LR z8;Cs>;x))AWV1GNnl4If+B5-Cu0!-p9$M>KhwO}Rq6I)&M`YU5!ekPz-R(I8>)YP~ zH@Lz@SXOx0SodXhC8(T%7HRX?F%ATVqO^}pV=C5fk$?534w)7J_ScSYCN4)vdsVvt zAiLCNbFK$DX>V6qlwJ~SymN}IN35@%Ogl;Exe6W;KKQKkzHKiEPbMuVA1s4iWIC>xBRXoD1D;vVRg zE4%a}dVd*8RD(osJy$&lJ&ahCH2=Lg#;2I^OVTwEo%%P)N?tOPn@kd9%$70mE$m89 zazVoKro8)%t~jd-09Q)(t7-Hy&kn*!Kk_Y)piIE4)EpKxn0%rIxL zL!6mFQB@+u%{v(aoaIchmk3%QSavd_8|~;vLx1`p7)+@z4Qmn;4-UawbuoQe*~5uo z62oLJvq8?RN50YHq!?`Rh*XWh_R?{o2x+K59%>MJP?U!oyS1w!18bE;xVDiVHnEFs z?7mLABLp@{gg@q+1T&`^(cG}Bewy>CQH|lMV zdTa|p#+>yMUe8wCD8fFsyHu<0b%U}8TBP_9H_j67UVPswUpdQL-obt=+tMYW$2TG1 z?`Lf~A=2(+RTp08h9i^A5RW*L>464t4}XLSJ9dcC5qO5Bb9_gn#Pb7DsTTu9r0I}( zx=aSXlNh@^>|!4~*|`RDjx5_G?LY%`AmD|Y<3<-}m^c@-QW)LU=RA>51!8{?A_o2VG$bP5h7s{D&Z0`VG}yx6GCAWO5qezVV67W2^9hV zmr&~oMt`D{Eabr%Fah;!!sSWgCURmYdg4TY!_n!52DIQOn&K&V>W7|EhSP_CC$Sm+E{JlIFe&IW`9m9%wjqU+a#ppEP`OgjG8Ypge zIkiJO&f@s-2EB=+Ir`&20;I#37(xuBL|~x8O++^ig!(9?|Ly?^t<6XYCSyQSWJOve zlN6*uWF$lg;1TKL#IVgjG$a71kB=DG+g)Tzs^m&0$wqGEL+~P*l_KDQ%0Y}|N%lyh zb$=F1@?=l?RmTTL3oO$Nzq{oPMGSc)Y{Oyy2YgjMnopluUZYUPi>predsT*~EKZbVsTT0~f#AK6+%v}IfR z2t@8BT?*!45~e}i3&^ZjWlY4*fReZ^#D75wM8QEO0AOX0jHFr?W@c(;So)3=b>>8H z8xMVCLJ-xBLB!g%Kmu6CJ4Rn-ZRTsj=1LwT-ppp~MO^<5ZIAYLrD#S5nAAcs~U*IH7{G^cG%?CTZ#ggu28?wh)4HXoqg1j^GH0S_D1h<%M2^*8#wk zq3D#gkx^KuO9aD7`J9K+XpIgctA9v|t6&6U8ihPQ1U-;RLICNMR0N|G1!k&53n=N5 zPM*fu=#xTeHU=JGc!A^91UQ^Q2|~aOq^C*nV=zW(|Cov?F@nP>#!OjkM^oSeC4eSD5Vl>vpVYrhUT$W=&TGV zq(1AlVr%|o+p!)6vn~k<-G6GfitD%*V2N_;$MMP^k?Xp$Yx{-gxfX@J&08UC-td!Ds07CETl`sKMNti52;zW5RE6Kua%nBDoo_}oo)z@DfY)m9t z$jWTb`Yd13Y|Rctfr5ml0>I0*#B52*&oXV(_EpddErG7YyXxRfyk(>mf-D3>Fc7WN zdhOTJ64VN9*M0;wFhS=5fCiYzYOE}}g6-SFZP-SwUXbk#S!+w6C5FcB-tz4fwQbGb zEt0%z2KH^?8ZH%KnnTcTY_1qsGal~aLM{m5XU%pgt;DE_MsDV6uK6%$&9bMiOhRJy z4Hw=DV7SV?&_{?3wS}qCQLgNPu-es|Cc$E1yg@-`?~M@!f*V_uU`q@p)%h6 z9v+-cg163Z|N3uBG%mm9i1IfSETe+lg4Xf}*$O0NrL9%?z z43xzRcSL^++pr7EL@=Z<|L&I%->^a4BMft}1ly(M%o+)Ml1;KDSL#MzV)1WuE&#~i z|KAQ8Mu0;eRB*Jc?MZ;~Ldrx;@)EIWaY#P#|3>kK9)#G|>>Ist81qIRtMQNU=;Wla zLso<=tuyKmI@fE{y9QW@W+ZcZp?*tx0vL5dS9}9AiaMuNIB@YEC zM944#5im$7@+hxFBO@}Saq=Qdvj0-@6kGDp9%V@SWp2E(D)WY*&A{!Y@_l+)0sv}9 z1T!PQ*CXTd7RPe@&T<{svMpQjGDk9Q?6Qz#!zmQPBvj}zO9ag(02O2{GQ?u%3I<7d z^GkoQvNCIOE;lp$KC?m4ECkp=IoY#4i((arayv8gZCrD$fCGRCbU*iuiOqoHT`vDo zAgve+G=LDaO04s+{qsA^Z#@44&C)JJVDv5Xb2a;OCiii#OeQZ+7XVOf?k(;~jPx2O zvqXb*CsXwM9ww?NCM}bNNSxFgO{QcLTyKBu^g;Zz!K}1I{7OnEM0mC`NeneiM0BJD z^*=myOuz4E@>~YlwA*@wK^a78s#ipyrfT*;<#McgnWjPDV}pDM1SG%=99NH}rUp;} z>^jXR*uf5W-t^eP{zilc4>1uJ)kDWgQA{fv3!4$Q<8jG?7tDZK&%hbzHAO7-MYMlI zES^CRK)_Y0`@~p0xQlyQX51gQ-gm;kX-wW7oay(e^bb^w|gf5d^-exGq_Oz zc!vMjhFeI0Z_>9!xOxL!LM$UImVj7q(J+;_bhEE=9)yfvH+CcOLV$y&@)3V@(sWo6 zHD|~Kk0+*&oAxGjqIS)aAlVkaqGenz1#+CLHLZBx?G&+Cvt!I0hr=w50dSVdL8MTo?1~J1U2KA*!C_FG0(F;H@(~&JKQyv~R$0jK5T>JxA94CZG_riloUOY$0>QeS zA`q`Hgr);V3pCfG8w9im`uf_ZnJLOu7e$pbL@EDHLilHO6NQs63V?sg#J4~BPMmVa zVi2rR11nygvk3cw*=DG_*VjzQfTF>w16m{VkOn|sWM`e8m&luYnZNrf|NODLyGzfj z@H++>yr>s^;8ujXzgm?rIhc0(K=fz0PkZ|+XjJHTjq3%UTSP!Z1|Lxt;m&d_&wzlpsT{RnESXnPZ~3thahqA#%fG zkXJknJ(Dr0+IJc5F3O(_Wps6TPAbPz&Q`h-DLaZp6D>QhV-$DFJ;@E$ep}<}{31g*YP)zG>Yz6;lKU* z;^>*^D7FK@8RUOCpbKfuv;Z||b;tzia#41t#E?FTkgmV&4+Ow8eytHY;TpuW zRA5sW1w{aaEC2%u+WB`7VM2uo+Yux=lLV80sN>tb| zBSe!6H*HL%kRFwi3qNWMiE!jhoEoVeq?f?q8H9NoC_$kIi8?fzu&hIs3bSp@W|AH_xpHC7rP~#ke*qLLe@2KgqtJF) z2Mz(Zk{U&`OGytr9U0u25+xwa*yQ;yy{QOQ4`hTeRZ)daGs=?K<11dI4zK1#sTOZ< z02UFV$*3XNKYE2Uc0^c}V2OxrHNM^Y{Gr}68qq{-2O;^>jN%uP&uHGOR^ASO9}I4G zIE{>p2)T@UQV6_(=wr(*A(}K=Fd_RK!Y?u1^gBqp{{H!optBHSLL+1(vO}Yna66Y_ zFbfxd3j-}Egc!*Pf&mwrB&>lFI0d2B0C-Ku%Pe##p$vil6HXz!?uy8|j7;omxq|va zue9hYN(e-UbdirB?+!{3fI=iv^33xzTC1xW${SH5BoWle&4}O>X*Ue{n-ah(tu!f1 zhqnBV&o?!S6HS8pTe(}Z-% zNX>uPTr{CX33ApXFae;GE2k7{$tnl6lt|ox$Q>4dVnyAw(7u>;h}<@7hRL2tM(uG27o3{HsX;~~l3`w)@x~p09P-E|pPX`1MFv1|gf?jyfElC%00Kx8`n7VH^p+A| zzah#Bt4n z+Vj~?#)dkxsZJpVL?G-y2!IQJ{v(5oT3+y)S0V8U@Pq_J$O_SyJo^0*h(Q$M5Q$hs zBYw<&h$f?$+k_e4lFIT0@}9gIj4 zE9k;9CeV49f}X<8b`UFG(Tr_;VGR8>L#fpeF;Fz&6#s_D4;~SbiB#l&A{p68M?R7; zY`mWrG@u|f@J}J6d*ThHXfv%DGLKxDU9`~H#s3E$B!ay2ogUvPx8Xr2jmGof*0|TT zR?dr)(Hmg-6!J+>y0Vrbq#+i^Xv<-aP%(lWpUr-$K1eQj7>$Wif^MM`B83gI!T$0T0Q_V}{b3 zovh>MN;6J#o)eJDBjZ2eNKZF16qw1(B^^>Ym5+T%Z$t{1jz`f*iCGSicED;j1-}&)t30(+(PPekp6!z1hd#qtg zDXPPN$n;+j#UAkNiOi(ZG<+poW*s#`#gl&j6|7+u>sZMu&6EmerKMx4^k7OB_Lzi^ zD_Q4Fx#-SQ{=;myDT`DUr1W_zwBYIV- zwos|}Jd9&sYCg_?F|Dkj742wATUyh?>~d5E!nq~&)<_9ik3&>@5NZ^5xc`3*s%9hNVAo;&_n&?TXC zqv+Du{=>ioxo$!d0cbFn&wN|I)^o#Fm92)k%i)F4qsB~>2!ZRUBnl-29BR|qW%AHu zCpY=X^p*0Isa$0%f4A>)dYwctxZGtge;LeQW<({O_!w}Mc(OGjaz$;MX0|F=t_)7@ zobYQ`-)inbLtuh~GmPUN>-acy2Jc3^XIlVhbFn!F=tSA7EE3^LBIJX!cU7F|KL?gz zR2?#-AFGf@Q&=KBlW}Ey>5$u88P%y)^{QF@sw_9tkRL{jf2a?9qcuB~UBy|5EF5g( zNq7O+!3MUHS|IFTYse%M1`-pD9c<_!?H^=b|6!j~tY|n#MA;630JEEIzE|5J812Z0 zENZM*s%ZMsjpcM_6O!v%Cxq85L~&*TO=)Y}xWlh=^Lbf3NSo<5D2P7Dr>Q0I$TZhT z25qVZdf({-`U z{!#RSK!6H%$b%OOI}j09#_9mTIK;_bcC()y?Z=z=f5aD3z>e(6@#xcN$qN9_{#-k0ZbXP~p_6*y!q&jzOVDg!orfIMC9k0fiSn=IY-4)awXz1Ogwk zShY0gue}iK`7pXsZ*fyM?sr2%pzo6@b(mn^fB*j<0Le=BW)FR8&oRmk044!PMDN}< zVg@8F_|^_Df`Oo3N1MQA?DV4gVCeeRr~)_QfBQ~B+R|qTqU^acFaC&Sjv9@!91sH2 z@4ME|`j{>u!Vce3uwGWM(<0*UcnAW_|I0B5jv#U_0E^HFj}QqF2^+EqA)V3Vb6d< z1M&b3WyB87fD<_pEjsZGJ_;E?@eGo0NT{F%!U6(X01eEe9Y`@07a|p4krr#Q6Ze81 zkl_^apcb!U1SKdiHh~n;01b5k7FQ21e{yjbdvPnMVG___2s8jF04xtqArm!c7>n^3 zJ&hDUu@gm+6irbf!YdW8jul;T8`u9O8zsURNf8jwu~o>(ufEu|FqI8zY;9NQY4!^|MPLyi*_gzGc!{&H}k9L;S>ZBFFA8#co7s$P&7{y zHB(bHkEk7xAr&T}5bQuU6>v3c(>8AtH*-@rcat}J(>H$;ID=C-hm$yqf73XR6FHMp zIhT_;o6|X;6FQ?)I;WF5tJ6BK6Fak0JGYZNyVEx z+tWSY6F%cpKIfA@>(f5(6F>7)KlhVA`_n)F6F>u0KnIjS3)Dal6hRYIK^K%k9ceoX z0YV`Z+4}N9BeW1Ev_Ugee?u`N8=lb?KNLhe5e@QS60&kbT?DZ}CooeK0#4LLUlcMf zvL;_A0ostHvOyP+K{4l2NizTNEql~2a#0sd6Gn^FMN@P}Ga>=HlB8r|1n1E)mk{0N zQcAZAF9=QpM$$;P6hZAWNh#>0o-nZ<$1vbs>=9%cycCe>TuEh&7tT^uZS6?VJuXj1`)Ywe5cFb)N2GbX8YZ6ttVVdXOu;2BLK#Hnv^w^)gU)kt8iK=k2Cug z7+`Y~gcW1jmTJQma$EmxY+0;qttSCAawX`2W%sM6;MQU()^lN2NAlJrtd=oMmo+zn zNf84adcbvG_jL!iY76&~9&&Z%$8jT9cOhIiMB>^w@FA> zB2ZT`oVSS56aYd~GKfktpqGfGmwM+%d3V=)TkUgN6naz?R%ujtxk7rEiy?yUxH6(& zWyD+vFMdabdC$#C?e%^uwNWm^dOenQ9f_cBa(?FbAPD$-4>;9Y140y-uQozRfNdmC z!3#(xf7>{BhiJ*7Fc>e|0S!_S0(yWiCj+UFY9)|?5xjsRG++o?@gR^PP`^)3HFZ-_ zLsK10hEEj+Wx)$({~#Y{;0#I>x90RxTR2ephfNMdhj};wdH@YJ0ckBI6}+GaN+1Ce zUvc3jJv|S@Yss=cqQf(jn&wS*_a;ez>VQJ88^WW#H)${%npEf zE9$sz5yFstSd))uPVab!^Ej0IVvgbBhHqF)eS(sy;2Ut}T_hfgvqdvBesxK^7)~5y;pxr47;M@MQ|?D!5rM zvcbXLS2Dc$i&+1LE38st{=v3ZmsjOX7H4l_j<|JSCrDNzt=KQ=%7YpZu%1y54J7j_ z^@2#y=VaibD2Ug6d#A(%cqMG>aoL0(f3m>_`+0+9cX$E1p!L>3B$}QvcUZgtp+T)3 z7CQ6_q4=n!5UvrTIeH@~+I}4(q9;0zxx%3r%#gPCB=X>-J%tfUa-gjzqf7S;Sz04p z+9b#sp3E7Umzuufg-)EhnW=?I_78#jj^#yjSIqRRC%sL(;Fi{X zx4WX_mMhNNOodvz5om6bTS?iQ9Stb~gq2OGyYmKIzV`xX5}+ZuFMUw^e;))7luE!v z?ORRpo5BwKxiiAJH9WUF+`U5jtq%gk#V)E69`xFJz77X}>29Z+gkRc_fc%w2 zHyN4yb)1~YSIElM8`cJue-90*1-@@{5$Ma?h= z{2FZ>#@@xl|9rF%i^~PQ#PPCC)8{H4@?|PmbQryObP_Wh9U&xLA|A1-rCi6ig2&Oi zg{}zC52Cx@@VlFdu?2%LSIF_sJbm7VULZj0>~aY5An(}tj54B^e+$pkhsLqH9Dy!K z)zb&hTm9ANMAkKe)(@hBJ!Pkb=GW2Z(;qL_okMj+DbC@d*HoAany;=gso7u0*J171 zCp{w?|9#v6-Q3G6RFEy*OMJ2f7kyUG>Rv_&y=LC^LJ)5`G3p&5^j)3wEf~N787ASR zSJz=-*L4Xht#!fRe_eMY79Mt)baRJ576j)MDzCl&A=Kk)b9-Ro#|;6^>~)wR6$&R6 zPF>+Xj}A`(8FXP1ytFN~!`Kg^)Y_})7<IQ-~XTG_e87Ca<0p%$Vr2gn1BI$en>PsW*kt;85f8N1c_;r_Z;R_SqG@?d# z&B1aG<#CVbTiyY;{#?2~BYb|~fQsMGUGKljN(`>=OPtm>-Fj#}*$Xi)?4m9Z|C_rm zWBLEbKLIBPVJW)HNb2H6ALkt3ev0O>++A235rY09;~1 zUFhXNe!`h{e;Y4?Ea&B{^T}4Q=-VV#zxC~I>pA~`mL33NzhOv*_Rl^k6b?zZKG=tU z^P@stw!-!Y!|d@aBLrA_C&u?-0{Ej}B%puDBHt&-fA7yiqP#q zxDMqKAfzi&s8^^!kA|EiaTCaP$Pz0C$I>NCnG0#Q6&zP7;FqBf2qS-Oz`-O2bI53@ z?}aB3Zj#9Ow(-vj7a{{$LN{Pp676X2DE6{lfh#p8C#b99_JIvGMqEg7^1|#DQ!bpe zI_F%FdId76IODHII}*!-y@}Ahz?}#6M9@z_;kQr^P+bQAdJlakPTWhjnGB-HcEfNDzXdQKnIe z13kqVg?oXd<3Re=7~_o#(RkdGP(~@`lvGw}<&{`wspXbjcIoA9xi#q!kiQL;heL!d z6yBFnHm4>?B`vfYRM0IXU1rn~gqeabYSbcm-Vq1VcmySR5TAb_p*7WN3Gj!K9gspg zB0@ujG@P9^Ir>kCBa(TdNO=xqSW$@jd0~VL2?=FyH!GM}a5X}p#tkK84$TdK*r$2DD#j6SY`3PImNg(yR7mvcND4xZkj)NP#q#BEg(NxUe3OlI z<6(6S;>UlUx=w|gc{eQcnt7LSM(PfE{rc|!n0^rIerK=! z_S|>x{rBL9AEo4~9;9gR15t&L)m)38>_Yi&E9Y~B<0&vur5As5gM!X3yyMl&T+CFX zyue^iBh%a5tvaWx&xxcRjS|zz5Z5%bg`_E|x{QDHG&eliCC-Ai%bCY^<~b7~a6`Rw zSpNKHybc17h5LJ81i6#E1A>GeYe63XO7IboY;b@s3?K}l=e{Bu@rX!Fq7s+LMB_+K zYX8VaLyna|4W@r!<#vY+Abhq56CY9Z~rp2}8Okpx!EhMM_d*l;Eg zo&A5OgaR2|MXV(d4OplDj2~>=VOCcZIZljv)`JMQLRiNU-m!ruJc|z32*?TwGIlQv z3s-%BISm}@r?QNQrq#!DRh?)Y9#E=3J8zTW= zM-kx>0D62#4hd4X2@=nYs3J)D3&SCG?`!om>6y6P7gwr zpgl$7PnG7`Z3^{`RgEKGxrtOqn)9pZ6v?~>!Xu}$Rgr*w2nOY;!PTDjqFPN-Yj5XO zkS+Be?ixt2KD$+X>a?ww^y^M9`H{_ zmj97h05F+MzNzp=5-M6*_6A1|X@^(=piGg~&%gI0-EDuoRaz;u=>L0WK`MWcU2B71)8Xg$PP z2Id&7093HB-2W|z`H*huU$ z0805aFU+6>c@^_0wdfjp6k-S^XaN zflPMQ?9?~HgUx4xD*VGb{s(~x!fuD~ySbt!?~F?;anMTn;h((A1@l1jnzJV)V#T;Z zH9k`ycO2!dskzYez!zj2{pd(fy3#SD>}5X$%mS$}(H`p>a1?)9#@;Hl4$lpebZ2Jj zW3_d|=d3dS#~w_S60tY+Ui))A7bUWp6v>eW!fj+!8~|cwUc}*kMN*59xHx9`L+Ek$ zlD9kJu6DUb?mPssKSb{==R3z+zSWOMx@U9m@sEbGR(G?S?77`Y;Z5VU6i2P^gReNf zmp2sCNnXlu4Sj!VXuYhZ+y3^r&wa6*zU(zY9RLb$2iWV|n&Br{T)*#Kn>$RuBB8V=Ma1Z0GVWkFgsCEzu2z(VG3-8x?h!<-v2Wy!o9Gz4-byaRmpin=JbmxaYFc%W^MMxr%g}oDR2hoK(RAH7Ec>aV?Zw7HJmv}%| z5y|Hp?MH{`lW$`PLN~^Cf@gLTK?P=|3!4CkD0hg_1$sdE4|fJ|%~Ds!=VfS+2X=4< zqhx)A*gJ-3i4K?=S$Ks>*ove%^?{af%hdyZdEWdGsAYpf22mvl-6#%72cc_SY7)3*oXM7lU zKX+mX(TRenTe|oz>6CIqra&Kfc_5~BI)s9KsDhKYjDP5h$ywK!jFabw&_j@M z7!nF%kNrhYR}~V0=o{ST5Z+cM8bE~KXn-O3b843vl$eSr(vCwxgg5ycISCR$>2Zn3 zlde6}gsd*_Lj3 z9RC+Nl2q3k&KQ>B5)6f~I}s>oOObgZDVGE|5}PoE?01!C`46%XUkgD6Vy7U%K$!AD zgdqWk4T%t^0GYouVlSqc@`Q#vc~0q6Xm$x;W*Juqv}Q%QndmbF(+H2k=7C?haCv`N zhG_?8R5@kmXqa&&nx`>NJqQvI_%51gnVcCUt+|wcm>M6MZ*SS0&iS0s2^wt(m;m(} zQ3(KBsWyID5v4duPyr6=I1tL%fXoOMANdwF8ASA;3-L9YBS8&!rni=$f45y%|PWqmG`lo?P1%q0s zA{eDpstcFu5Qmzi2*IgC%BX*iIv7;Y0uclOEr13~(GIB^rj&ZByDA)}YNdHni_*!5<9UJdvqs?t^*;bf|Y=)SFv0IV-Vo6QUbE4kqWw4q8k-i?vq1Z^nyMgP_Oe{EA*^V$u7R|iK@Aib zeeFn=f+bcctF%^owOD_fwO&%3>!Gz&GM!cFwWtBM4VqaxWUw0rt~e^TY}>Z~Zu_>Y z!L_snx5tryze%^GVYi)el)kaD90g_yi?@P1xP)7{avOmfS-4}XA}QjqikoYU3l5HJ zlao{e5lc%{(tx~zZOx~@x+#n}RA`?|Dy zE~YzHqWe*m}4cyl0>_xx2j5JH6Cfz1DlZ z*qgoDyS?1oz25u1;2XZ;JHF&wzUF(r=$pRkyT0t(zV7?J@EgDKJHPZ>zxI2-_?y4_ zyTAO~zyABb033h70zAM3T)+l=zzCec3cSD!+`ta}zz`h45s*w$S>by9d!`hk$lW@5- z{KG&T#6p}s=ZdkukpL+=#7exxOx(oZ0%Jxz6bVqZPF#P*R(!=+OdE%bu}qf5Ui`&i z9L7&q2xLsg@iGZzY{m~kwoxp_6~PE;TnHV~4sk5U-~z{KJjZpMo?V9qfYuQZFaur6 z$EJbDb-c&5ftPXY!yjeHWUR+=Ovqw9$&{SH|Md@-9H4ESHwu$Qs^ZDt0?G#=$|C^| zdBB-II=O$C;fuZjqN@RGg+ePZum6+M2Qjb8XBxT z6t1iquuNFMJXN;*%+UP5xGXTbjIq4z%)aa;&CFYJXN*bQ8OI#Vud&R7wavd6&FGxY z_B+jnQ_bjl&D<=G&des}JXW%WkqHpJ;H*Q*oEm@RELimn0R61a1YOYL%g!X}&NjL? z0X@)F($KCW#Z*uTvVaV-zzBp`0;-H;{9GIV99R%-&>}t3<%`f?sL68K0(OuJsbB{+ zYH@Of&Em`@Azcw1k#=Yp3}WS;(%Az({nI}^)2;E*AXU>Oebh*;y(ZnC6-Au}M-MHL z091c4O7MKn+1w>Yjet=W68v_zssXMJZ5l-VQCXeTW_{Md3sE8KTK^GffxaONL>pJx zu%7LxFyQ)dcO9^eh!A^K+#-?M zWW3tW7TmCHpW0mr+}+y3eYvB}O^%)3>aDn4xRvca*^V-pzah!(aDQCGV%UP;+jW0; zkqR67jS&C+c=Ie0khf3@LJ!#hhY$eWX(rTu2AMN3*a|`o3Ep1+>dHu70C`TAOEwY` z);7!uPzZ&3;1!NiXiMS>&fo$54=cXjF8<F@) zQJ|*r<7{nx*2UBL#Z3wV4k8MFP%(eoOxNUL)0hM!<>tpo&WO=rCX>VbOZ&OxR?d>d z5#}R7BxFrMaWj{np z=BS?PEem-Z#_DiB5D;Lc?QjZqfZTx@5@o_QUASDk4j9KA*8io^>j)w2{6i4`2o5KQ z28$j<=p(fc6zMj-#f(*!W7&QjIZ50GpI+Dkl3CgB;_Lv_?1f6~BDWCVtm^2V?r*7K z3&rlQo}bA(NW1ue5_AyAWZHjwH57ik8u#uH{az6eg?h-)j$p^=-u^BIC-3pxS(9Wv z2VW*nEfEm#iB>ZNc`$sV8Jr48lmPeezmf21*gGH}74`lP|E}&RpYqNLHIu^f?=B)t zV10lgf5e0kbH_9{e;K1Bs3e z8el4a_jvz`k=uTI|MG)f6eB2EgBQ7j&$z2BgSH`lhF=qeuMt6STD@cNL*YzlcZ`tk z^bj@_c1VbC|80YZLS26!8DOz%6!Yekdmuyz#hu?wpHD5!PWhnk;f-%Mv!D02fBP_+ zSpAI|jvnvQc?Km=0)ZUbT=Mt`K}8y{8`ehj03?v3JXaS4?f$;iX;yAl+LA~C{htY2 zqXT2=dS}<~GQL=J*v}QvkNfDK{w~{P_%0H|?EB(l{3KEG*C9>$OL9gu6i??|6el;0 znRlB2QRv@5f&+&DK$uWhL3#-j7Hr{=5y4ar0eC4m5dYjpju{K0u?QfQM=v1-di;0L z;=+t2ElxzK(jiNfm#|p|C6|w^4GEXflnw?|*rCBfCQL9gsI0RN!I6b)Ga}l8GaPEj zsLLXgf-W7Z^$619shsUX4(WN;=BAK#NQMNQQLsb81RGj}D3PK?j6n;9tlSrJ&B+Nv z6ZD%f@<-5dm#>=v7k@ZGvuzPFS-rD|afEM&SDlM6K|u%(dt}VESF}ZBH9rq7d^oYi z5;pZ(JoA{l_tus}W=;t6Uqy$Vae@n`OaFc*|LwOs><*>xC{qtW_P~2CK?N6Nut5hO zgfK!0C#0}K3om@IIODv?<0lP`a}L9yq61($f~rf1uYwG7NPoqFQbQ;}j|Ma?Jc|(H zDWvjh`VgV?S_(uYn)FNv$DMSviOnDR zjPc4E-NTF^5`UNE45eUXni4@q0q~O`Kn48=Mot|qQchD(MKx7bS7o(TS6_uyI5xHO zDUVD6h?7+k>-^_V09+i1&|f$0bf8adbjbfuoebyw1qd>^l5DiqUJ2O$L%_A!nOYT|Ie<~#yoS)H|M-_&p(Ha?SvqhB&SI#UR+<$?nMJP!CD8-l{TYa}lcxcU~{p05c zk6vleug5-n?YHN?d$sHBA&*n2$qAV^QI{Ll)iDKtUm|7S+VZeHLilx_ma{1RftJ4( zJ`p^4HTL8Bsf6|R?vbM#9)K!l>jtk11GYe0_xmS z6@PjZVhAN@0TpPXo7J7cB2*vbjTz0Xq`jwB{&9xt#-r% zfbozAHG+iDA_uI=`J^|n8X7Bd@w5No{4%&jE_Tt2Uj$Cai9n48u8LjxM4 zVJNdW%9^+^BoJVN7lb)XVZyF0b_hm0vLOp8x(+3?^P~g+5y_?Z;}bn13x7XO z5tP)6CgpT#MJ=k*oaaPmI@P&OFp;s9w|eDLjDtzsG?QQ1)R7-^2~JUZ6D69Q5+j?~ zO1D9?p9-X=04;{CN)ZGZZJ|Qd|8%hlLSC_okPDkZcj-@dcGROE1!+h{Di(LXb4u|{ zN_N_UyV^K0Awwj{DY^*&4P?VtFnbv~zn>-ZiR z&YgfGsK)u}K-hvh4dj)m|1)Y5k$TOHJk(pwlqM&iI#q8<6{A$$YGfrlS%1n_)`BJN zYFoaF6vQH=bh;rDJ%!>}=iww6Qo}1sPI1dy4Z(voA?>s%rckFbG)FR@R zw~q9!WraIj;uhDqV*^KKTUq}V!`h2Cdv(ZbhZ5UzM(iwp9iAnbqk+f$Rgi&|q-~j) z5m_+xh4g@KW3kBCsIK?19DhA-eC0b|`qp<$=2h;LW?&U+^bu|v$OCq5!`eR%WfNyW zFoMw_U|l3Q!Q}G^J&sTTwCzDzqSn5NJUMgJt0}sF)xmPOynlf?@~zcpyMlFoSt)WPkfM*~w3aa+G(& zi2R~%mR6yMh;O4^$T~>Nz-h;qr95Ubm)Xo`9ut?V%$$?Bs&OIlf+5j7XFAu}&UeQ1 zlhD9~A@teLe+G1*1s!N6|Kx$mtWxvnCXviMH`>vUhIFJQ9jl7|at1xNi~X+Sk7ZcCaZ+ zk5jNOA+i>BvX#ATW;dIQ?O5X^3SkFof7aR8#&))~y=`uH+uPp;ceuqpZgQ8~+~-Dj zy4AgIcDLKz?}m50EW^+u#2Nc)$fdaDRdq+~5aCc)}IFaE3SB z;SYy+#3ep)idWp?7sq(UHNJ6iLd3 z0FZrku6Nz*=6{Y-33iPTIe*>kXGgoXsbOpY96If9hkM*_4aAVFQ0{lfd)`CM!|v+c z?|%n8niCBGy9eIzhey19MdkLyH{S7&*Q&A04tdH~-ty~2?d3JUdCs4bW_am*=tV#J z2_kX7q(^<~Rj)af>TLC|hkfi%*4**R-uAc0J*;St5PwbQ-uJ%;ewkW7Ixz>|_{T?n zg6J{R9xy)n&xd~Wal=20B%lS?$Nti#zkTj^pDXmpdO|?&ee##z{8F*Q*zaahI9t6T5R5@5fh@BI{BSgZK^Ccll!X|XWk{i6fd%`KCLW#?o zD#XGpl(-CZ2pQADF9gGY%ZB_oh4ecMaS6jTR7b;kt2D(}!#9LOdCNLriNiXyLvxF| z1lX)Qwy2XrKNQ441h$|X0_P*dL{!9DlcEHe0WXN4MU=!zTs3gWhD+Q-N|%IV z20wpcB*tPi#$!arWK_mwWX5K6#%F}aXq3ij9L1JL^hk)zypI&ggZ#XaG|7K7 zy^~bQdmKJIS;?1VM-zm}nKZ`$>^+*q$!Tm!0DyoW%*mfD#^no%<^#&2d`9Y{6YR@A zqh$ZeVFW*K;lHMoN?tU>DT&Id#L8QYzf8Hxtn|uQ3Tj2{6f7%2rpF4*F3^8 z)P*wKH8h0H+oZuZoGsksO&y%W-UK;L8_dH@49?I0F zIF-{mr9;y?wbMJr(>&GFJ>}Cr_0vBE)Ib%~K_%2eHPk~z)I?R(MP<}Rb<{_N)JT=o kNu|_EwbV<+)J)aXP36>1_0&%VE|+fk11bhp1PurPJH5<;i~s-t diff --git a/integration/cmake/index.html b/integration/cmake/index.html index 212f96b14..bb428e9db 100644 --- a/integration/cmake/index.html +++ b/integration/cmake/index.html @@ -1,7 +1,7 @@ CMake - JSON for Modern C++

CMake

Integration

You can use the nlohmann_json::nlohmann_json interface target in CMake. This target populates the appropriate usage requirements for INTERFACE_INCLUDE_DIRECTORIES to point to the appropriate include directories and INTERFACE_COMPILE_FEATURES for the necessary C++11 flags.

External

To use this library from a CMake project, you can locate it directly with find_package() and use the namespaced imported target from the generated package configuration:

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
 project(ExampleProject LANGUAGES CXX)
 
-find_package(nlohmann_json 3.11.2 REQUIRED)
+find_package(nlohmann_json 3.11.3 REQUIRED)
 
 add_executable(example example.cpp)
 target_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)
@@ -27,7 +27,7 @@
 # Note that the namespaced target will always be available regardless of the import method
 target_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)
 
thirdparty/CMakeLists.txt
if(EXAMPLE_USE_EXTERNAL_JSON)
-    find_package(nlohmann_json 3.11.2 REQUIRED)
+    find_package(nlohmann_json 3.11.3 REQUIRED)
 else()
     set(JSON_BuildTests OFF CACHE INTERNAL "")
     add_subdirectory(nlohmann_json)
@@ -37,13 +37,13 @@
 
 include(FetchContent)
 
-FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz)
+FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz)
 FetchContent_MakeAvailable(json)
 
 add_executable(example example.cpp)
 target_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)
 

Note

It is recommended to use the URL approach described above which is supported as of version 3.10.0. It is also possible to pass the Git repository like

FetchContent_Declare(json
     GIT_REPOSITORY https://github.com/nlohmann/json
-    GIT_TAG v3.11.2
+    GIT_TAG v3.11.3
 )
-

However, the repository https://github.com/nlohmann/json download size is quite large. You might want to depend on a smaller repository. For instance, you might want to replace the URL in the example by https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent.

CMake Options

JSON_BuildTests

Build the unit tests when BUILD_TESTING is enabled. This option is ON by default if the library's CMake project is the top project. That is, when integrating the library as described above, the test suite is not built unless explicitly switched on with this option.

JSON_CI

Enable CI build targets. The exact targets are used during the several CI steps and are subject to change without notice. This option is OFF by default.

JSON_Diagnostics

Enable extended diagnostic messages by defining macro JSON_DIAGNOSTICS. This option is OFF by default.

JSON_DisableEnumSerialization

Disable default enum serialization by defining the macro JSON_DISABLE_ENUM_SERIALIZATION. This option is OFF by default.

JSON_FastTests

Skip expensive/slow test suites. This option is OFF by default. Depends on JSON_BuildTests.

JSON_GlobalUDLs

Place user-defined string literals in the global namespace by defining the macro JSON_USE_GLOBAL_UDLS. This option is OFF by default.

JSON_ImplicitConversions

Enable implicit conversions by defining macro JSON_USE_IMPLICIT_CONVERSIONS. This option is ON by default.

JSON_Install

Install CMake targets during install step. This option is ON by default if the library's CMake project is the top project.

JSON_MultipleHeaders

Use non-amalgamated version of the library. This option is OFF by default.

JSON_SystemInclude

Treat the library headers like system headers (i.e., adding SYSTEM to the target_include_directories call) to checks for this library by tools like Clang-Tidy. This option is OFF by default.

JSON_Valgrind

Execute test suite with Valgrind. This option is OFF by default. Depends on JSON_BuildTests.


Last update: August 12, 2022
\ No newline at end of file +

However, the repository https://github.com/nlohmann/json download size is quite large. You might want to depend on a smaller repository. For instance, you might want to replace the URL in the example by https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent.

CMake Options

JSON_BuildTests

Build the unit tests when BUILD_TESTING is enabled. This option is ON by default if the library's CMake project is the top project. That is, when integrating the library as described above, the test suite is not built unless explicitly switched on with this option.

JSON_CI

Enable CI build targets. The exact targets are used during the several CI steps and are subject to change without notice. This option is OFF by default.

JSON_Diagnostics

Enable extended diagnostic messages by defining macro JSON_DIAGNOSTICS. This option is OFF by default.

JSON_DisableEnumSerialization

Disable default enum serialization by defining the macro JSON_DISABLE_ENUM_SERIALIZATION. This option is OFF by default.

JSON_FastTests

Skip expensive/slow test suites. This option is OFF by default. Depends on JSON_BuildTests.

JSON_GlobalUDLs

Place user-defined string literals in the global namespace by defining the macro JSON_USE_GLOBAL_UDLS. This option is OFF by default.

JSON_ImplicitConversions

Enable implicit conversions by defining macro JSON_USE_IMPLICIT_CONVERSIONS. This option is ON by default.

JSON_Install

Install CMake targets during install step. This option is ON by default if the library's CMake project is the top project.

JSON_MultipleHeaders

Use non-amalgamated version of the library. This option is OFF by default.

JSON_SystemInclude

Treat the library headers like system headers (i.e., adding SYSTEM to the target_include_directories call) to checks for this library by tools like Clang-Tidy. This option is OFF by default.

JSON_Valgrind

Execute test suite with Valgrind. This option is OFF by default. Depends on JSON_BuildTests.


Last update: November 28, 2023
\ No newline at end of file diff --git a/integration/package_managers/index.html b/integration/package_managers/index.html index abf9f9a88..d70cd2195 100644 --- a/integration/package_managers/index.html +++ b/integration/package_managers/index.html @@ -12,7 +12,7 @@ "compiler": { "c++": "201103", "family": "gcc", - "version": "12.1.0" + "version": "12.3.0" }, "copyright": "(C) 2013-2022 Niels Lohmann", "name": "JSON for Modern C++", @@ -21,8 +21,8 @@ "version": { "major": 3, "minor": 11, - "patch": 2, - "string": "3.11.2" + "patch": 3, + "string": "3.11.3" } }

Homebrew

If you are using OS X and Homebrew, just type

brew install nlohmann-json
diff --git a/search/search_index.json b/search/search_index.json
index 237ab156c..ae6a48fd4 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-\\.]","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"JSON for Modern C++","text":""},{"location":"api/json/","title":"nlohmann::json","text":"
using json = basic_json<>;\n

This type is the default specialization of the basic_json class which uses the standard template types.

"},{"location":"api/json/#examples","title":"Examples","text":"Example

The example below demonstrates how to use the type nlohmann::json.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // add new values\n    j[\"new\"][\"key\"][\"value\"] = {\"another\", \"list\"};\n\n    // count elements\n    auto s = j.size();\n    j[\"size\"] = s;\n\n    // pretty print with indent of 4 spaces\n    std::cout << std::setw(4) << j << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"new\": {\n        \"key\": {\n            \"value\": [\n                \"another\",\n                \"list\"\n            ]\n        }\n    },\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141,\n    \"size\": 8\n}\n
"},{"location":"api/json/#version-history","title":"Version history","text":"

Since version 1.0.0.

"},{"location":"api/operator_gtgt/","title":"nlohmann::operator>>(basic_json)","text":"
std::istream& operator>>(std::istream& i, basic_json& j);\n

Deserializes an input stream to a JSON value.

"},{"location":"api/operator_gtgt/#parameters","title":"Parameters","text":"i (in, out) input stream to read a serialized JSON value from j (in, out) JSON value to write the deserialized input to"},{"location":"api/operator_gtgt/#return-value","title":"Return value","text":"

the stream i

"},{"location":"api/operator_gtgt/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.101 in case of an unexpected token.
  • Throws parse_error.102 if to_unicode fails or surrogate error.
  • Throws parse_error.103 if to_unicode fails.
"},{"location":"api/operator_gtgt/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser.

"},{"location":"api/operator_gtgt/#notes","title":"Notes","text":"

A UTF-8 byte order mark is silently ignored.

Deprecation

This function replaces function std::istream& operator<<(basic_json& j, std::istream& i) which has been deprecated in version 3.0.0. It will be removed in version 4.0.0. Please replace calls like j << i; with i >> j;.

"},{"location":"api/operator_gtgt/#examples","title":"Examples","text":"Example

The example below shows how a JSON value is constructed by reading a serialization from a stream.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create stream with serialized JSON\n    std::stringstream ss;\n    ss << R\"({\n        \"number\": 23,\n        \"string\": \"Hello, world!\",\n        \"array\": [1, 2, 3, 4, 5],\n        \"boolean\": false,\n        \"null\": null\n    })\";\n\n    // create JSON value and read the serialization from the stream\n    json j;\n    ss >> j;\n\n    // serialize JSON\n    std::cout << std::setw(2) << j << '\\n';\n}\n

Output:

{\n  \"array\": [\n    1,\n    2,\n    3,\n    4,\n    5\n  ],\n  \"boolean\": false,\n  \"null\": null,\n  \"number\": 23,\n  \"string\": \"Hello, world!\"\n}\n
"},{"location":"api/operator_gtgt/#see-also","title":"See also","text":"
  • accept - check if the input is valid JSON
  • parse - deserialize from a compatible input
"},{"location":"api/operator_gtgt/#version-history","title":"Version history","text":"
  • Added in version 1.0.0. Deprecated in version 3.0.0.
"},{"location":"api/operator_literal_json/","title":"nlohmann::operator\"\"_json","text":"
json operator \"\"_json(const char* s, std::size_t n);\n

This operator implements a user-defined string literal for JSON objects. It can be used by adding _json to a string literal and returns a json object if no parse error occurred.

It is recommended to bring the operator into scope using any of the following lines:

using nlohmann::literals::operator \"\"_json;\nusing namespace nlohmann::literals;\nusing namespace nlohmann::json_literals;\nusing namespace nlohmann::literals::json_literals;\nusing namespace nlohmann;\n

This is suggested to ease migration to the next major version release of the library. See 'JSON_USE_GLOBAL_UDLS` for details.

"},{"location":"api/operator_literal_json/#parameters","title":"Parameters","text":"s (in) a string representation of a JSON object n (in) length of string s"},{"location":"api/operator_literal_json/#return-value","title":"Return value","text":"

json value parsed from s

"},{"location":"api/operator_literal_json/#exceptions","title":"Exceptions","text":"

The function can throw anything that parse(s, s+n) would throw.

"},{"location":"api/operator_literal_json/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_literal_json/#examples","title":"Examples","text":"Example

The following code shows how to create JSON values from string literals.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    json j = R\"( {\"hello\": \"world\", \"answer\": 42} )\"_json;\n\n    std::cout << std::setw(2) << j << '\\n';\n}\n

Output:

{\n  \"answer\": 42,\n  \"hello\": \"world\"\n}\n
"},{"location":"api/operator_literal_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Moved to namespace nlohmann::literals::json_literals in 3.11.0.
"},{"location":"api/operator_literal_json_pointer/","title":"nlohmann::operator\"\"_json_pointer","text":"
json_pointer operator \"\"_json_pointer(const char* s, std::size_t n);\n

This operator implements a user-defined string literal for JSON Pointers. It can be used by adding _json_pointer to a string literal and returns a json_pointer object if no parse error occurred.

It is recommended to bring the operator into scope using any of the following lines:

using nlohmann::literals::operator \"\"_json_pointer;\nusing namespace nlohmann::literals;\nusing namespace nlohmann::json_literals;\nusing namespace nlohmann::literals::json_literals;\nusing namespace nlohmann;\n
This is suggested to ease migration to the next major version release of the library. See 'JSON_USE_GLOBAL_UDLS` for details.

"},{"location":"api/operator_literal_json_pointer/#parameters","title":"Parameters","text":"s (in) a string representation of a JSON Pointer n (in) length of string s"},{"location":"api/operator_literal_json_pointer/#return-value","title":"Return value","text":"

json_pointer value parsed from s

"},{"location":"api/operator_literal_json_pointer/#exceptions","title":"Exceptions","text":"

The function can throw anything that json_pointer::json_pointer would throw.

"},{"location":"api/operator_literal_json_pointer/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_literal_json_pointer/#examples","title":"Examples","text":"Example

The following code shows how to create JSON Pointers from string literals.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    json j = R\"( {\"hello\": \"world\", \"answer\": 42} )\"_json;\n    auto val = j[\"/hello\"_json_pointer];\n\n    std::cout << std::setw(2) << val << '\\n';\n}\n

Output:

\"world\"\n
"},{"location":"api/operator_literal_json_pointer/#see-also","title":"See also","text":"
  • json_pointer - type to represent JSON Pointers
"},{"location":"api/operator_literal_json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Moved to namespace nlohmann::literals::json_literals in 3.11.0.
"},{"location":"api/operator_ltlt/","title":"nlohmann::operator<<(basic_json), nlohmann::operator<<(json_pointer)","text":"
std::ostream& operator<<(std::ostream& o, const basic_json& j);      // (1)\n\nstd::ostream& operator<<(std::ostream& o, const json_pointer& ptr);  // (2)\n
  1. Serialize the given JSON value j to the output stream o. The JSON value will be serialized using the dump member function.
    • The indentation of the output can be controlled with the member variable width of the output stream o. For instance, using the manipulator std::setw(4) on o sets the indentation level to 4 and the serialization result is the same as calling dump(4).
    • The indentation character can be controlled with the member variable fill of the output stream o. For instance, the manipulator std::setfill('\\\\t') sets indentation to use a tab character rather than the default space character.
  2. Write a string representation of the given JSON pointer ptr to the output stream o. The string representation is obtained using the to_string member function.
"},{"location":"api/operator_ltlt/#parameters","title":"Parameters","text":"o (in, out) stream to write to j (in) JSON value to serialize ptr (in) JSON pointer to write"},{"location":"api/operator_ltlt/#return-value","title":"Return value","text":"

the stream o

"},{"location":"api/operator_ltlt/#exceptions","title":"Exceptions","text":"
  1. Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded. Note that unlike the dump member functions, no error_handler can be set.
  2. None.
"},{"location":"api/operator_ltlt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_ltlt/#notes","title":"Notes","text":"

Deprecation

Function std::ostream& operator<<(std::ostream& o, const basic_json& j) replaces function std::ostream& operator>>(const basic_json& j, std::ostream& o) which has been deprecated in version 3.0.0. It will be removed in version 4.0.0. Please replace calls like j >> o; with o << j;.

"},{"location":"api/operator_ltlt/#examples","title":"Examples","text":"Example: (1) serialize JSON value to stream

The example below shows the serialization with different parameters to width to adjust the indentation level.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n\n    // serialize without indentation\n    std::cout << j_object << \"\\n\\n\";\n    std::cout << j_array << \"\\n\\n\";\n\n    // serialize with indentation\n    std::cout << std::setw(4) << j_object << \"\\n\\n\";\n    std::cout << std::setw(2) << j_array << \"\\n\\n\";\n    std::cout << std::setw(1) << std::setfill('\\t') << j_object << \"\\n\\n\";\n}\n

Output:

{\"one\":1,\"two\":2}\n\n[1,2,4,8,16]\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\n[\n  1,\n  2,\n  4,\n  8,\n  16\n]\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n
Example: (2) write JSON pointer to stream

The example below shows how to write a JSON pointer to a stream.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON poiner\n    json::json_pointer ptr(\"/foo/bar/baz\");\n\n    // write string representation to stream\n    std::cout << ptr << std::endl;\n}\n

Output:

/foo/bar/baz\n
"},{"location":"api/operator_ltlt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added support for indentation character and deprecated std::ostream& operator>>(const basic_json& j, std::ostream& o) in version 3.0.0.
  2. Added in version 3.11.0.
"},{"location":"api/ordered_json/","title":"nlohmann::ordered_json","text":"
using ordered_json = basic_json<ordered_map>;\n

This type preserves the insertion order of object keys.

"},{"location":"api/ordered_json/#examples","title":"Examples","text":"Example

The example below demonstrates how ordered_json preserves the insertion order of object keys.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing ordered_json = nlohmann::ordered_json;\n\nint main()\n{\n    ordered_json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n
"},{"location":"api/ordered_json/#see-also","title":"See also","text":"
  • ordered_map
  • Object Order
"},{"location":"api/ordered_json/#version-history","title":"Version history","text":"

Since version 3.9.0.

"},{"location":"api/ordered_map/","title":"nlohmann::ordered_map","text":"
template<class Key, class T, class IgnoredLess = std::less<Key>,\n         class Allocator = std::allocator<std::pair<const Key, T>>>\nstruct ordered_map : std::vector<std::pair<const Key, T>, Allocator>;\n

A minimal map-like container that preserves insertion order for use within nlohmann::ordered_json (nlohmann::basic_json<ordered_map>).

"},{"location":"api/ordered_map/#template-parameters","title":"Template parameters","text":"Key key type T mapped type IgnoredLess comparison function (ignored and only added to ensure compatibility with std::map) Allocator allocator type"},{"location":"api/ordered_map/#member-types","title":"Member types","text":"
  • key_type - key type (Key)
  • mapped_type - mapped type (T)
  • Container - base container type (std::vector<std::pair<const Key, T>, Allocator>)
  • iterator
  • const_iterator
  • size_type
  • value_type
  • key_compare - key comparison function
    std::equal_to<Key>  // until C++14\n\nstd::equal_to<>     // since C++14\n
"},{"location":"api/ordered_map/#member-functions","title":"Member functions","text":"
  • (constructor)
  • (destructor)
  • emplace
  • operator[]
  • at
  • erase
  • count
  • find
  • insert
"},{"location":"api/ordered_map/#examples","title":"Examples","text":"Example

The example shows the different behavior of std::map and nlohmann::ordered_map.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// simple output function\ntemplate<typename Map>\nvoid output(const char* prefix, const Map& m)\n{\n    std::cout << prefix << \" = { \";\n    for (auto& element : m)\n    {\n        std::cout << element.first << \":\" << element.second << ' ';\n    }\n    std::cout << \"}\" << std::endl;\n}\n\nint main()\n{\n    // create and fill two maps\n    nlohmann::ordered_map<std::string, std::string> m_ordered;\n    m_ordered[\"one\"] = \"eins\";\n    m_ordered[\"two\"] = \"zwei\";\n    m_ordered[\"three\"] = \"drei\";\n\n    std::map<std::string, std::string> m_std;\n    m_std[\"one\"] = \"eins\";\n    m_std[\"two\"] = \"zwei\";\n    m_std[\"three\"] = \"drei\";\n\n    // output: m_ordered is ordered by insertion order, m_std is ordered by key\n    output(\"m_ordered\", m_ordered);\n    output(\"m_std\", m_std);\n\n    // erase and re-add \"one\" key\n    m_ordered.erase(\"one\");\n    m_ordered[\"one\"] = \"eins\";\n\n    m_std.erase(\"one\");\n    m_std[\"one\"] = \"eins\";\n\n    // output: m_ordered shows newly added key at the end; m_std is again ordered by key\n    output(\"m_ordered\", m_ordered);\n    output(\"m_std\", m_std);\n}\n

Output:

m_ordered = { one:eins two:zwei three:drei }\nm_std = { one:eins three:drei two:zwei }\nm_ordered = { two:zwei three:drei one:eins }\nm_std = { one:eins three:drei two:zwei }\n
"},{"location":"api/ordered_map/#see-also","title":"See also","text":"
  • ordered_json
"},{"location":"api/ordered_map/#version-history","title":"Version history","text":"
  • Added in version 3.9.0 to implement nlohmann::ordered_json.
  • Added key_compare member in version 3.11.0.
"},{"location":"api/adl_serializer/","title":"nlohmann::adl_serializer","text":"
template<typename, typename>\nstruct adl_serializer;\n

Serializer that uses ADL (Argument-Dependent Lookup) to choose to_json/from_json functions from the types' namespaces.

It is implemented similar to

template<typename ValueType>\nstruct adl_serializer {\n    template<typename BasicJsonType>\n    static void to_json(BasicJsonType& j, const T& value) {\n        // calls the \"to_json\" method in T's namespace\n    }\n\n    template<typename BasicJsonType>\n    static void from_json(const BasicJsonType& j, T& value) {\n        // same thing, but with the \"from_json\" method\n    }\n};\n
"},{"location":"api/adl_serializer/#member-functions","title":"Member functions","text":"
  • from_json - convert a JSON value to any value type
  • to_json - convert any value type to a JSON value
"},{"location":"api/adl_serializer/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/adl_serializer/from_json/","title":"nlohmann::adl_serializer::from_json","text":"
// (1)\ntemplate<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))\n-> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void())\n\n// (2)\ntemplate<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto from_json(BasicJsonType && j) noexcept(\nnoexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {})))\n-> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {}))\n

This function is usually called by the get() function of the basic_json class (either explicitly or via the conversion operators).

  1. This function is chosen for default-constructible value types.
  2. This function is chosen for value types which are not default-constructible.
"},{"location":"api/adl_serializer/from_json/#parameters","title":"Parameters","text":"j (in) JSON value to read from val (out) value to write to"},{"location":"api/adl_serializer/from_json/#return-value","title":"Return value","text":"

Copy of the JSON value, converted to ValueType

"},{"location":"api/adl_serializer/from_json/#examples","title":"Examples","text":"Example: (1) Default-constructible type

The example below shows how a from_json function can be implemented for a user-defined type. This function is called by the adl_serializer when template get<ns::person>() is called.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace ns\n{\nvoid from_json(const json& j, person& p)\n{\n    j.at(\"name\").get_to(p.name);\n    j.at(\"address\").get_to(p.address);\n    j.at(\"age\").get_to(p.age);\n}\n} // namespace ns\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
Example: (2) Non-default-constructible type

The example below shows how a from_json is implemented as part of a specialization of the adl_serializer to realize the conversion of a non-default-constructible type.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person (not default constructible)\nstruct person\n{\n    person(std::string n, std::string a, int aa)\n        : name(std::move(n)), address(std::move(a)), age(aa)\n    {}\n\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace nlohmann\n{\ntemplate <>\nstruct adl_serializer<ns::person>\n{\n    static ns::person from_json(const json& j)\n    {\n        return {j.at(\"name\"), j.at(\"address\"), j.at(\"age\")};\n    }\n\n    // Here's the catch! You must provide a to_json method! Otherwise, you\n    // will not be able to convert person to json, since you fully\n    // specialized adl_serializer on that type\n    static void to_json(json& j, ns::person p)\n    {\n        j[\"name\"] = p.name;\n        j[\"address\"] = p.address;\n        j[\"age\"] = p.age;\n    }\n};\n} // namespace nlohmann\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
"},{"location":"api/adl_serializer/from_json/#see-also","title":"See also","text":"
  • to_json
"},{"location":"api/adl_serializer/from_json/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/adl_serializer/to_json/","title":"nlohmann::adl_serializer::to_json","text":"
template<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n    noexcept(::nlohmann::to_json(j, std::forward<TargetType>(val))))\n-> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)), void())\n

This function is usually called by the constructors of the basic_json class.

"},{"location":"api/adl_serializer/to_json/#parameters","title":"Parameters","text":"j (out) JSON value to write to val (in) value to read from"},{"location":"api/adl_serializer/to_json/#examples","title":"Examples","text":"Example

The example below shows how a to_json function can be implemented for a user-defined type. This function is called by the adl_serializer when the constructor basic_json(ns::person) is called.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace ns\n{\nvoid to_json(json& j, const person& p)\n{\n    j = json{ {\"name\", p.name}, {\"address\", p.address}, {\"age\", p.age} };\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    json j = p;\n\n    std::cout << j << std::endl;\n}\n

Output:

{\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n
"},{"location":"api/adl_serializer/to_json/#see-also","title":"See also","text":"
  • from_json
"},{"location":"api/adl_serializer/to_json/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/basic_json/","title":"nlohmann::basic_json","text":"

Defined in header <nlohmann/json.hpp>

template<\n    template<typename U, typename V, typename... Args> class ObjectType = std::map,\n    template<typename U, typename... Args> class ArrayType = std::vector,\n    class StringType = std::string,\n    class BooleanType = bool,\n    class NumberIntegerType = std::int64_t,\n    class NumberUnsignedType = std::uint64_t,\n    class NumberFloatType = double,\n    template<typename U> class AllocatorType = std::allocator,\n    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer,\n    class BinaryType = std::vector<std::uint8_t>,\n    class CustomBaseClass = void\n>\nclass basic_json;\n
"},{"location":"api/basic_json/#template-parameters","title":"Template parameters","text":"Template parameter Description Derived type ObjectType type for JSON objects object_t ArrayType type for JSON arrays array_t StringType type for JSON strings and object keys string_t BooleanType type for JSON booleans boolean_t NumberIntegerType type for JSON integer numbers number_integer_t NumberUnsignedType type for JSON unsigned integer numbers number_unsigned_t NumberFloatType type for JSON floating-point numbers number_float_t AllocatorType type of the allocator to use JSONSerializer the serializer to resolve internal calls to to_json() and from_json() json_serializer BinaryType type for binary arrays binary_t CustomBaseClass extension point for user code json_base_class_t"},{"location":"api/basic_json/#specializations","title":"Specializations","text":"
  • json - default specialization
  • ordered_json - specialization that maintains the insertion order of object keys
"},{"location":"api/basic_json/#iterator-invalidation","title":"Iterator invalidation","text":"

Todo

"},{"location":"api/basic_json/#requirements","title":"Requirements","text":"

The class satisfies the following concept requirements:

"},{"location":"api/basic_json/#basic","title":"Basic","text":"
  • DefaultConstructible: JSON values can be default constructed. The result will be a JSON null value.
  • MoveConstructible: A JSON value can be constructed from an rvalue argument.
  • CopyConstructible: A JSON value can be copy-constructed from an lvalue expression.
  • MoveAssignable: A JSON value can be assigned from an rvalue argument.
  • CopyAssignable: A JSON value can be copy-assigned from an lvalue expression.
  • Destructible: JSON values can be destructed.
"},{"location":"api/basic_json/#layout","title":"Layout","text":"
  • StandardLayoutType: JSON values have standard layout: All non-static data members are private and standard layout types, the class has no virtual functions or (virtual) base classes.
"},{"location":"api/basic_json/#library-wide","title":"Library-wide","text":"
  • EqualityComparable: JSON values can be compared with ==, see operator==.
  • LessThanComparable: JSON values can be compared with <, see operator<.
  • Swappable: Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of other compatible types, using unqualified function swap.
  • NullablePointer: JSON values can be compared against std::nullptr_t objects which are used to model the null value.
"},{"location":"api/basic_json/#container","title":"Container","text":"
  • Container: JSON values can be used like STL containers and provide iterator access.
  • ReversibleContainer: JSON values can be used like STL containers and provide reverse iterator access.
"},{"location":"api/basic_json/#member-types","title":"Member types","text":"
  • adl_serializer - the default serializer
  • value_t - the JSON type enumeration
  • json_pointer - JSON Pointer implementation
  • json_serializer - type of the serializer to for conversions from/to JSON
  • error_handler_t - type to choose behavior on decoding errors
  • cbor_tag_handler_t - type to choose how to handle CBOR tags
  • initializer_list_t - type for initializer lists of basic_json values
  • input_format_t - type to choose the format to parse
  • json_sax_t - type for SAX events
"},{"location":"api/basic_json/#exceptions","title":"Exceptions","text":"
  • exception - general exception of the basic_json class
    • parse_error - exception indicating a parse error
    • invalid_iterator - exception indicating errors with iterators
    • type_error - exception indicating executing a member function with a wrong type
    • out_of_range - exception indicating access out of the defined range
    • other_error - exception indicating other library errors
"},{"location":"api/basic_json/#container-types","title":"Container types","text":"Type Definition value_type basic_json reference value_type& const_reference const value_type& difference_type std::ptrdiff_t size_type std::size_t allocator_type AllocatorType<basic_json> pointer std::allocator_traits<allocator_type>::pointer const_pointer std::allocator_traits<allocator_type>::const_pointer iterator LegacyBidirectionalIterator const_iterator constant LegacyBidirectionalIterator reverse_iterator reverse iterator, derived from iterator const_reverse_iterator reverse iterator, derived from const_iterator iteration_proxy helper type for items function"},{"location":"api/basic_json/#json-value-data-types","title":"JSON value data types","text":"
  • array_t - type for arrays
  • binary_t - type for binary arrays
  • boolean_t - type for booleans
  • default_object_comparator_t - default comparator for objects
  • number_float_t - type for numbers (floating-point)
  • number_integer_t - type for numbers (integer)
  • number_unsigned_t - type for numbers (unsigned)
  • object_comparator_t - comparator for objects
  • object_t - type for objects
  • string_t - type for strings
"},{"location":"api/basic_json/#parser-callback","title":"Parser callback","text":"
  • parse_event_t - parser event types
  • parser_callback_t - per-element parser callback type
"},{"location":"api/basic_json/#member-functions","title":"Member functions","text":"
  • (constructor)
  • (destructor)
  • operator= - copy assignment
  • array (static) - explicitly create an array
  • binary (static) - explicitly create a binary array
  • object (static) - explicitly create an object
"},{"location":"api/basic_json/#object-inspection","title":"Object inspection","text":"

Functions to inspect the type of a JSON value.

  • type - return the type of the JSON value
  • operator value_t - return the type of the JSON value
  • type_name - return the type as string
  • is_primitive - return whether type is primitive
  • is_structured - return whether type is structured
  • is_null - return whether value is null
  • is_boolean - return whether value is a boolean
  • is_number - return whether value is a number
  • is_number_integer - return whether value is an integer number
  • is_number_unsigned - return whether value is an unsigned integer number
  • is_number_float - return whether value is a floating-point number
  • is_object - return whether value is an object
  • is_array - return whether value is an array
  • is_string - return whether value is a string
  • is_binary - return whether value is a binary array
  • is_discarded - return whether value is discarded
"},{"location":"api/basic_json/#value-access","title":"Value access","text":"

Direct access to the stored value of a JSON value.

  • get - get a value
  • get_to - get a value and write it to a destination
  • get_ptr - get a pointer value
  • get_ref - get a reference value
  • operator ValueType - get a value
  • get_binary - get a binary value
"},{"location":"api/basic_json/#element-access","title":"Element access","text":"

Access to the JSON value

  • at - access specified element with bounds checking
  • operator[] - access specified element
  • value - access specified object element with default value
  • front - access the first element
  • back - access the last element
"},{"location":"api/basic_json/#lookup","title":"Lookup","text":"
  • find - find an element in a JSON object
  • count - returns the number of occurrences of a key in a JSON object
  • contains - check the existence of an element in a JSON object
"},{"location":"api/basic_json/#iterators","title":"Iterators","text":"
  • begin - returns an iterator to the first element
  • cbegin - returns a const iterator to the first element
  • end - returns an iterator to one past the last element
  • cend - returns a const iterator to one past the last element
  • rbegin - returns an iterator to the reverse-beginning
  • rend - returns an iterator to the reverse-end
  • crbegin - returns a const iterator to the reverse-beginning
  • crend - returns a const iterator to the reverse-end
  • items - wrapper to access iterator member functions in range-based for
"},{"location":"api/basic_json/#capacity","title":"Capacity","text":"
  • empty - checks whether the container is empty
  • size - returns the number of elements
  • max_size - returns the maximum possible number of elements
"},{"location":"api/basic_json/#modifiers","title":"Modifiers","text":"
  • clear - clears the contents
  • push_back - add a value to an array/object
  • operator+= - add a value to an array/object
  • emplace_back - add a value to an array
  • emplace - add a value to an object if key does not exist
  • erase - remove elements
  • insert - inserts elements
  • update - updates a JSON object from another object, overwriting existing keys
  • swap - exchanges the values
"},{"location":"api/basic_json/#lexicographical-comparison-operators","title":"Lexicographical comparison operators","text":"
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • operator< - comparison: less than
  • operator> - comparison: greater than
  • operator<= - comparison: less than or equal
  • operator>= - comparison: greater than or equal
  • operator<=> - comparison: 3-way
"},{"location":"api/basic_json/#serialization-dumping","title":"Serialization / Dumping","text":"
  • dump - serialization
"},{"location":"api/basic_json/#deserialization-parsing","title":"Deserialization / Parsing","text":"
  • parse (static) - deserialize from a compatible input
  • accept (static) - check if the input is valid JSON
  • sax_parse (static) - generate SAX events
"},{"location":"api/basic_json/#json-pointer-functions","title":"JSON Pointer functions","text":"
  • flatten - return flattened JSON value
  • unflatten - unflatten a previously flattened JSON value
"},{"location":"api/basic_json/#json-patch-functions","title":"JSON Patch functions","text":"
  • patch - applies a JSON patch
  • patch_inplace - applies a JSON patch in place
  • diff (static) - creates a diff as a JSON patch
"},{"location":"api/basic_json/#json-merge-patch-functions","title":"JSON Merge Patch functions","text":"
  • merge_patch - applies a JSON Merge Patch
"},{"location":"api/basic_json/#static-functions","title":"Static functions","text":"
  • meta - returns version information on the library
  • get_allocator - returns the allocator associated with the container
"},{"location":"api/basic_json/#binary-formats","title":"Binary formats","text":"
  • from_bjdata (static) - create a JSON value from an input in BJData format
  • from_bson (static) - create a JSON value from an input in BSON format
  • from_cbor (static) - create a JSON value from an input in CBOR format
  • from_msgpack (static) - create a JSON value from an input in MessagePack format
  • from_ubjson (static) - create a JSON value from an input in UBJSON format
  • to_bjdata (static) - create a BJData serialization of a given JSON value
  • to_bson (static) - create a BSON serialization of a given JSON value
  • to_cbor (static) - create a CBOR serialization of a given JSON value
  • to_msgpack (static) - create a MessagePack serialization of a given JSON value
  • to_ubjson (static) - create a UBJSON serialization of a given JSON value
"},{"location":"api/basic_json/#non-member-functions","title":"Non-member functions","text":"
  • operator<<(std::ostream&) - serialize to stream
  • operator>>(std::istream&) - deserialize from stream
  • to_string - user-defined to_string function for JSON values
"},{"location":"api/basic_json/#literals","title":"Literals","text":"
  • operator\"\"_json - user-defined string literal for JSON values
"},{"location":"api/basic_json/#helper-classes","title":"Helper classes","text":"
  • std::hash<basic_json> - return a hash value for a JSON object
  • std::swap<basic_json> - exchanges the values of two JSON objects
"},{"location":"api/basic_json/#examples","title":"Examples","text":"Example

The example shows how the library is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // add new values\n    j[\"new\"][\"key\"][\"value\"] = {\"another\", \"list\"};\n\n    // count elements\n    auto s = j.size();\n    j[\"size\"] = s;\n\n    // pretty print with indent of 4 spaces\n    std::cout << std::setw(4) << j << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"new\": {\n        \"key\": {\n            \"value\": [\n                \"another\",\n                \"list\"\n            ]\n        }\n    },\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141,\n    \"size\": 8\n}\n
"},{"location":"api/basic_json/#see-also","title":"See also","text":"
  • RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
"},{"location":"api/basic_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/accept/","title":"nlohmann::basic_json::accept","text":"
// (1)\ntemplate<typename InputType>\nstatic bool accept(InputType&& i,\n                   const bool ignore_comments = false);\n\n// (2)\ntemplate<typename IteratorType>\nstatic bool accept(IteratorType first, IteratorType last,\n                   const bool ignore_comments = false);\n

Checks whether the input is valid JSON.

  1. Reads from a compatible input.
  2. Reads from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

Unlike the parse function, this function neither throws an exception in case of invalid JSON input (i.e., a parse error) nor creates diagnostic information.

"},{"location":"api/basic_json/accept/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer (must not be null)
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • a std::string
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType

a compatible iterator type, for instance.

  • a pair of std::string::iterator or std::vector<std::uint8_t>::iterator
  • a pair of pointers such as ptr and ptr + len
"},{"location":"api/basic_json/accept/#parameters","title":"Parameters","text":"i (in) Input to parse from. ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/accept/#return-value","title":"Return value","text":"

Whether the input is valid JSON.

"},{"location":"api/basic_json/accept/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/accept/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser.

"},{"location":"api/basic_json/accept/#notes","title":"Notes","text":"

(1) A UTF-8 byte order mark is silently ignored.

Runtime assertion

The precondition that a passed FILE pointer must not be null is enforced with a runtime assertion.

"},{"location":"api/basic_json/accept/#examples","title":"Examples","text":"Example

The example below demonstrates the accept() function reading from a string.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a valid JSON text\n    auto valid_text = R\"(\n    {\n        \"numbers\": [1, 2, 3]\n    }\n    )\";\n\n    // an invalid JSON text\n    auto invalid_text = R\"(\n    {\n        \"strings\": [\"extra\", \"comma\", ]\n    }\n    )\";\n\n    std::cout << std::boolalpha\n              << json::accept(valid_text) << ' '\n              << json::accept(invalid_text) << '\\n';\n}\n

Output:

true false\n
"},{"location":"api/basic_json/accept/#see-also","title":"See also","text":"
  • parse - deserialize from a compatible input
  • operator>> - deserialize from stream
"},{"location":"api/basic_json/accept/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to accept with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like accept({ptr, ptr+len}, ...); with accept(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/array/","title":"nlohmann::basic_json::array","text":"
static basic_json array(initializer_list_t init = {});\n

Creates a JSON array value from a given initializer list. That is, given a list of values a, b, c, creates the JSON value [a, b, c]. If the initializer list is empty, the empty array [] is created.

"},{"location":"api/basic_json/array/#parameters","title":"Parameters","text":"init (in) initializer list with JSON values to create an array from (optional)"},{"location":"api/basic_json/array/#return-value","title":"Return value","text":"

JSON array value

"},{"location":"api/basic_json/array/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/array/#complexity","title":"Complexity","text":"

Linear in the size of init.

"},{"location":"api/basic_json/array/#notes","title":"Notes","text":"

This function is only needed to express two edge cases that cannot be realized with the initializer list constructor (basic_json(initializer_list_t, bool, value_t)). These cases are:

  1. creating an array whose elements are all pairs whose first element is a string -- in this case, the initializer list constructor would create an object, taking the first elements as keys
  2. creating an empty array -- passing the empty initializer list to the initializer list constructor yields an empty object
"},{"location":"api/basic_json/array/#examples","title":"Examples","text":"Example

The following code shows an example for the array function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON arrays\n    json j_no_init_list = json::array();\n    json j_empty_init_list = json::array({});\n    json j_nonempty_init_list = json::array({1, 2, 3, 4});\n    json j_list_of_pairs = json::array({ {\"one\", 1}, {\"two\", 2} });\n\n    // serialize the JSON arrays\n    std::cout << j_no_init_list << '\\n';\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_nonempty_init_list << '\\n';\n    std::cout << j_list_of_pairs << '\\n';\n}\n

Output:

[]\n[]\n[1,2,3,4]\n[[\"one\",1],[\"two\",2]]\n
"},{"location":"api/basic_json/array/#see-also","title":"See also","text":"
  • basic_json(initializer_list_t) - create a JSON value from an initializer list
  • object - create a JSON object value from an initializer list
"},{"location":"api/basic_json/array/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/array_t/","title":"nlohmann::basic_json::array_t","text":"
using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;\n

The type used to store JSON arrays.

RFC 8259 describes JSON arrays as follows:

An array is an ordered sequence of zero or more values.

To store objects in C++, a type is defined by the template parameters explained below.

"},{"location":"api/basic_json/array_t/#template-parameters","title":"Template parameters","text":"ArrayType container type to store arrays (e.g., std::vector or std::list) AllocatorType the allocator to use for objects (e.g., std::allocator)"},{"location":"api/basic_json/array_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/array_t/#default-type","title":"Default type","text":"

With the default values for ArrayType (std::vector) and AllocatorType (std::allocator), the default value for array_t is:

std::vector<\n  basic_json, // value_type\n  std::allocator<basic_json> // allocator_type\n>\n
"},{"location":"api/basic_json/array_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON array.

"},{"location":"api/basic_json/array_t/#storage","title":"Storage","text":"

Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of type array_t* must be dereferenced.

"},{"location":"api/basic_json/array_t/#examples","title":"Examples","text":"Example

The following code shows that array_t is by default, a typedef to std::vector<nlohmann::json>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::vector<json>, json::array_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/array_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/at/","title":"nlohmann::basic_json::at","text":"
// (1)\nreference at(size_type idx);\nconst_reference at(size_type idx) const;\n\n// (2)\nreference at(const typename object_t::key_type& key);\nconst_reference at(const typename object_t::key_type& key) const;\n\n// (3)\ntemplate<typename KeyType>\nreference at(KeyType&& key);\ntemplate<typename KeyType>\nconst_reference at(KeyType&& key) const;\n\n// (4)\nreference at(const json_pointer& ptr);\nconst_reference at(const json_pointer& ptr) const;\n
  1. Returns a reference to the array element at specified location idx, with bounds checking.
  2. Returns a reference to the object element with specified key key, with bounds checking.
  3. See 2. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  4. Returns a reference to the element at specified JSON pointer ptr, with bounds checking.
"},{"location":"api/basic_json/at/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/at/#parameters","title":"Parameters","text":"idx (in) index of the element to access key (in) object key of the elements to access ptr (in) JSON pointer to the desired element"},{"location":"api/basic_json/at/#return-value","title":"Return value","text":"
  1. reference to the element at index idx
  2. reference to the element at key key
  3. reference to the element at key key
  4. reference to the element pointed to by ptr
"},{"location":"api/basic_json/at/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/at/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.304 if the JSON value is not an array; in this case, calling at with an index makes no sense. See example below.
    • Throws out_of_range.401 if the index idx is out of range of the array; that is, idx >= size(). See example below.
  2. The function can throw the following exceptions:
    • Throws type_error.304 if the JSON value is not an object; in this case, calling at with a key makes no sense. See example below.
    • Throws out_of_range.403 if the key key is not stored in the object; that is, find(key) == end(). See example below.
  3. See 2.
  4. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index in the passed JSON pointer ptr begins with '0'. See example below.
    • Throws parse_error.109 if an array index in the passed JSON pointer ptr is not a number. See example below.
    • Throws out_of_range.401 if an array index in the passed JSON pointer ptr is out of range. See example below.
    • Throws out_of_range.402 if the array index '-' is used in the passed JSON pointer ptr. As at provides checked access (and no elements are implicitly inserted), the index '-' is always invalid. See example below.
    • Throws out_of_range.403 if the JSON pointer describes a key of an object which cannot be found. See example below.
    • Throws out_of_range.404 if the JSON pointer ptr can not be resolved. See example below.
"},{"location":"api/basic_json/at/#complexity","title":"Complexity","text":"
  1. Constant.
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
  4. Logarithmic in the size of the container.
"},{"location":"api/basic_json/at/#examples","title":"Examples","text":"Example: (1) access specified array element with bounds checking

The example below shows how array elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n\n    // change element at index 1 (second element) to \"second\"\n    array.at(1) = \"second\";\n\n    // output changed array\n    std::cout << array << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-array type\n        json str = \"I am a string\";\n        str.at(0) = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write beyond the array limit\n        array.at(5) = \"sixth\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"third\"\n[\"first\",\"second\",\"third\",\"fourth\"]\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.401] array index 5 is out of range\n
Example: (1) access specified array element with bounds checking

The example below shows how array elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    const json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-array type\n        const json str = \"I am a string\";\n        std::cout << str.at(0) << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read beyond the array limit\n        std::cout << array.at(5) << '\\n';\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"third\"\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.401] array index 5 is out of range\n
Example: (2) access specified object element with bounds checking

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\"\n    std::cout << object.at(\"the ugly\") << '\\n';\n\n    // change element with key \"the bad\"\n    object.at(\"the bad\") = \"il cattivo\";\n\n    // output changed array\n    std::cout << object << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-object type\n        json str = \"I am a string\";\n        str.at(\"the good\") = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write at a nonexisting key\n        object.at(\"the fast\") = \"il rapido\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n{\"the bad\":\"il cattivo\",\"the good\":\"il buono\",\"the ugly\":\"il brutto\"}\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.403] key 'the fast' not found\n
Example: (2) access specified object element with bounds checking

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    const json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\"\n    std::cout << object.at(\"the ugly\") << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-object type\n        const json str = \"I am a string\";\n        std::cout << str.at(\"the good\") << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read from a nonexisting key\n        std::cout << object.at(\"the fast\") << '\\n';\n    }\n    catch (const json::out_of_range)\n    {\n        std::cout << \"out of range\" << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n[json.exception.type_error.304] cannot use at() with string\nout of range\n
Example: (3) access specified object element using string_view with bounds checking

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\" using string_view\n    std::cout << object.at(\"the ugly\"sv) << '\\n';\n\n    // change element with key \"the bad\" using string_view\n    object.at(\"the bad\"sv) = \"il cattivo\";\n\n    // output changed array\n    std::cout << object << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() with string_view on a non-object type\n        json str = \"I am a string\";\n        str.at(\"the good\"sv) = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write at a nonexisting key using string_view\n        object.at(\"the fast\"sv) = \"il rapido\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n{\"the bad\":\"il cattivo\",\"the good\":\"il buono\",\"the ugly\":\"il brutto\"}\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.403] key 'the fast' not found\n
Example: (3) access specified object element using string_view with bounds checking

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    const json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\" using string_view\n    std::cout << object.at(\"the ugly\"sv) << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() with string_view on a non-object type\n        const json str = \"I am a string\";\n        std::cout << str.at(\"the good\"sv) << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read from a nonexisting key using string_view\n        std::cout << object.at(\"the fast\"sv) << '\\n';\n    }\n    catch (const json::out_of_range)\n    {\n        std::cout << \"out of range\" << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n[json.exception.type_error.304] cannot use at() with string\nout of range\n
Example: (4) access specified element via JSON Pointer

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j.at(\"/number\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j.at(\"/string\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j.at(\"/array\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j.at(\"/array/1\"_json_pointer) << '\\n';\n\n    // writing access\n\n    // change the string\n    j.at(\"/string\"_json_pointer) = \"bar\";\n    // output the changed string\n    std::cout << j[\"string\"] << '\\n';\n\n    // change an array element\n    j.at(\"/array/1\"_json_pointer) = 21;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n\n    // out_of_range.106\n    try\n    {\n        // try to use an array index with leading '0'\n        json::reference ref = j.at(\"/array/01\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.109\n    try\n    {\n        // try to use an array index that is not a number\n        json::reference ref = j.at(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.401\n    try\n    {\n        // try to use an invalid array index\n        json::reference ref = j.at(\"/array/4\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.402\n    try\n    {\n        // try to use the array index '-'\n        json::reference ref = j.at(\"/array/-\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.403\n    try\n    {\n        // try to use a JSON pointer to a nonexistent object key\n        json::const_reference ref = j.at(\"/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.404\n    try\n    {\n        // try to use a JSON pointer that cannot be resolved\n        json::reference ref = j.at(\"/number/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n\"bar\"\n[1,21]\n[json.exception.parse_error.106] parse error: array index '01' must not begin with '0'\n[json.exception.parse_error.109] parse error: array index 'one' is not a number\n[json.exception.out_of_range.401] array index 4 is out of range\n[json.exception.out_of_range.402] array index '-' (2) is out of range\n[json.exception.out_of_range.403] key 'foo' not found\n[json.exception.out_of_range.404] unresolved reference token 'foo'\n
Example: (4) access specified element via JSON Pointer

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    const json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j.at(\"/number\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j.at(\"/string\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j.at(\"/array\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j.at(\"/array/1\"_json_pointer) << '\\n';\n\n    // out_of_range.109\n    try\n    {\n        // try to use an array index that is not a number\n        json::const_reference ref = j.at(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.401\n    try\n    {\n        // try to use an invalid array index\n        json::const_reference ref = j.at(\"/array/4\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.402\n    try\n    {\n        // try to use the array index '-'\n        json::const_reference ref = j.at(\"/array/-\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.403\n    try\n    {\n        // try to use a JSON pointer to a nonexistent object key\n        json::const_reference ref = j.at(\"/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.404\n    try\n    {\n        // try to use a JSON pointer that cannot be resolved\n        json::const_reference ref = j.at(\"/number/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n[json.exception.parse_error.109] parse error: array index 'one' is not a number\n[json.exception.out_of_range.401] array index 4 is out of range\n[json.exception.out_of_range.402] array index '-' (2) is out of range\n[json.exception.out_of_range.403] key 'foo' not found\n[json.exception.out_of_range.404] unresolved reference token 'foo'\n
"},{"location":"api/basic_json/at/#see-also","title":"See also","text":"
  • documentation on checked access
  • see operator[] for unchecked access by reference
  • see value for access with default value
"},{"location":"api/basic_json/at/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0.
  3. Added in version 3.11.0.
  4. Added in version 2.0.0.
"},{"location":"api/basic_json/back/","title":"nlohmann::basic_json::back","text":"
reference back();\n\nconst_reference back() const;\n

Returns a reference to the last element in the container. For a JSON container c, the expression c.back() is equivalent to

auto tmp = c.end();\n--tmp;\nreturn *tmp;\n
"},{"location":"api/basic_json/back/#return-value","title":"Return value","text":"

In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.

"},{"location":"api/basic_json/back/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/back/#exceptions","title":"Exceptions","text":"

If the JSON value is null, exception invalid_iterator.214 is thrown.

"},{"location":"api/basic_json/back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/back/#notes","title":"Notes","text":"

Precondition

The array or object must not be empty. Calling back on an empty array or object yields undefined behavior.

"},{"location":"api/basic_json/back/#examples","title":"Examples","text":"Example

The following code shows an example for back().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call back()\n    std::cout << j_boolean.back() << '\\n';\n    std::cout << j_number_integer.back() << '\\n';\n    std::cout << j_number_float.back() << '\\n';\n    std::cout << j_object.back() << '\\n';\n    //std::cout << j_object_empty.back() << '\\n';  // undefined behavior\n    std::cout << j_array.back() << '\\n';\n    //std::cout << j_array_empty.back() << '\\n';   // undefined behavior\n    std::cout << j_string.back() << '\\n';\n\n    // back() called on a null value\n    try\n    {\n        json j_null;\n        j_null.back();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

true\n17\n23.42\n2\n16\n\"Hello, world\"\n[json.exception.invalid_iterator.214] cannot get value\n
"},{"location":"api/basic_json/back/#see-also","title":"See also","text":"
  • front to access the first element
"},{"location":"api/basic_json/back/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Adjusted code to return reference to binary values in version 3.8.0.
"},{"location":"api/basic_json/basic_json/","title":"nlohmann::basic_json::basic_json","text":"
// (1)\nbasic_json(const value_t v);\n\n// (2)\nbasic_json(std::nullptr_t = nullptr) noexcept;\n\n// (3)\ntemplate<typename CompatibleType>\nbasic_json(CompatibleType&& val) noexcept(noexcept(\n           JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n                                      std::forward<CompatibleType>(val))));\n\n// (4)\ntemplate<typename BasicJsonType>\nbasic_json(const BasicJsonType& val);\n\n// (5)\nbasic_json(initializer_list_t init,\n           bool type_deduction = true,\n           value_t manual_type = value_t::array);\n\n// (6)\nbasic_json(size_type cnt, const basic_json& val);\n\n// (7)\nbasic_json(iterator first, iterator last);\nbasic_json(const_iterator first, const_iterator last);\n\n// (8)\nbasic_json(const basic_json& other);\n\n// (9)\nbasic_json(basic_json&& other) noexcept;\n
  1. Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type:

    Value type initial value null null boolean false string \"\" number 0 object {} array [] binary empty array

    The postcondition of this constructor can be restored by calling clear().

  2. Create a null JSON value. It either takes a null pointer as parameter (explicitly creating null) or no parameter (implicitly creating null). The passed null pointer itself is not read -- it is only used to choose the right constructor.

  3. This is a \"catch all\" constructor for all compatible JSON types; that is, types for which a to_json() method exists. The constructor forwards the parameter val to that method (to json_serializer<U>::to_json method with U = uncvref_t<CompatibleType>, to be exact).

    Template type CompatibleType includes, but is not limited to, the following types:

    • arrays: array_t and all kinds of compatible containers such as std::vector, std::deque, std::list, std::forward_list, std::array, std::valarray, std::set, std::unordered_set, std::multiset, and std::unordered_multiset with a value_type from which a basic_json value can be constructed.
    • objects: object_t and all kinds of compatible associative containers such as std::map, std::unordered_map, std::multimap, and std::unordered_multimap with a key_type compatible to string_t and a value_type from which a basic_json value can be constructed.
    • strings: string_t, string literals, and all compatible string containers can be used.
    • numbers: number_integer_t, number_unsigned_t, number_float_t, and all convertible number types such as int, size_t, int64_t, float or double can be used.
    • boolean: boolean_t / bool can be used.
    • binary: binary_t / std::vector<uint8_t> may be used; unfortunately because string literals cannot be distinguished from binary character arrays by the C++ type system, all types compatible with const char* will be directed to the string constructor instead. This is both for backwards compatibility, and due to the fact that a binary type is not a standard JSON type.

    See the examples below.

  4. This is a constructor for existing basic_json types. It does not hijack copy/move constructors, since the parameter has different template arguments than the current ones.

    The constructor tries to convert the internal m_value of the parameter.

  5. Creates a JSON value of type array or object from the passed initializer list init. In case type_deduction is true (default), the type of the JSON value to be created is deducted from the initializer list init according to the following rules:

    1. If the list is empty, an empty JSON object value {} is created.
    2. If the list consists of pairs whose first element is a string, a JSON object value is created where the first elements of the pairs are treated as keys and the second elements are as values.
    3. In all other cases, an array is created.

    The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows:

    1. The empty initializer list is written as {} which is exactly an empty JSON object.
    2. C++ has no way of describing mapped types other than to list a list of pairs. As JSON requires that keys must be of type string, rule 2 is the weakest constraint one can pose on initializer lists to interpret them as an object.
    3. In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe.

    With the rules described above, the following JSON values cannot be expressed by an initializer list:

    • the empty array ([]): use array(initializer_list_t) with an empty initializer list in this case
    • arrays whose elements satisfy rule 2: use array(initializer_list_t) with the same initializer list in this case

    Function array() and object() force array and object creation from initializer lists, respectively.

  6. Constructs a JSON array value by creating cnt copies of a passed value. In case cnt is 0, an empty array is created.

  7. Constructs the JSON value with the contents of the range [first, last). The semantics depends on the different types a JSON value can have:

    • In case of a null type, invalid_iterator.206 is thrown.
    • In case of other primitive types (number, boolean, or string), first must be begin() and last must be end(). In this case, the value is copied. Otherwise, invalid_iterator.204 is thrown.
    • In case of structured types (array, object), the constructor behaves as similar versions for std::vector or std::map; that is, a JSON array or object is constructed from the values in the range.
  8. Creates a copy of a given JSON value.

  9. Move constructor. Constructs a JSON value with the contents of the given value other using move semantics. It \"steals\" the resources from other and leaves it as JSON null value.

"},{"location":"api/basic_json/basic_json/#template-parameters","title":"Template parameters","text":"CompatibleType

a type such that:

  • CompatibleType is not derived from std::istream,
  • CompatibleType is not basic_json (to avoid hijacking copy/move constructors),
  • CompatibleType is not a different basic_json type (i.e. with different template arguments)
  • CompatibleType is not a basic_json nested type (e.g., json_pointer, iterator, etc.)
  • json_serializer<U> (with U = uncvref_t<CompatibleType>) has a to_json(basic_json_t&, CompatibleType&&) method
BasicJsonType:

a type such that:

  • BasicJsonType is a basic_json type.
  • BasicJsonType has different template arguments than basic_json_t.
U: uncvref_t<CompatibleType>"},{"location":"api/basic_json/basic_json/#parameters","title":"Parameters","text":"v (in) the type of the value to create val (in) the value to be forwarded to the respective constructor init (in) initializer list with JSON values type_deduction (in) internal parameter; when set to true, the type of the JSON value is deducted from the initializer list init; when set to false, the type provided via manual_type is forced. This mode is used by the functions array(initializer_list_t) and object(initializer_list_t). manual_type (in) internal parameter; when type_deduction is set to false, the created JSON value will use the provided type (only value_t::array and value_t::object are valid); when type_deduction is set to true, this parameter has no effect cnt (in) the number of JSON copies of val to create first (in) begin of the range to copy from (included) last (in) end of the range to copy from (excluded) other (in) the JSON value to copy/move"},{"location":"api/basic_json/basic_json/#exception-safety","title":"Exception safety","text":"
  1. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  2. No-throw guarantee: this constructor never throws exceptions.
  3. Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.
  4. Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.
  5. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  6. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  7. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  8. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  9. No-throw guarantee: this constructor never throws exceptions.
"},{"location":"api/basic_json/basic_json/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function does not throw exceptions.
  3. (none)
  4. (none)
  5. The function can throw the following exceptions:
    • Throws type_error.301 if type_deduction is false, manual_type is value_t::object, but init contains an element which is not a pair whose first element is a string. In this case, the constructor could not create an object. If type_deduction would have been true, an array would have been created. See object(initializer_list_t) for an example.
  6. (none)
  7. The function can throw the following exceptions:
    • Throws invalid_iterator.201 if iterators first and last are not compatible (i.e., do not belong to the same JSON value). In this case, the range [first, last) is undefined.
    • Throws invalid_iterator.204 if iterators first and last belong to a primitive type (number, boolean, or string), but first does not point to the first element anymore. In this case, the range [first, last) is undefined. See example code below.
    • Throws invalid_iterator.206 if iterators first and last belong to a null value. In this case, the range [first, last) is undefined.
  8. (none)
  9. The function does not throw exceptions.
"},{"location":"api/basic_json/basic_json/#complexity","title":"Complexity","text":"
  1. Constant.
  2. Constant.
  3. Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.
  4. Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.
  5. Linear in the size of the initializer list init.
  6. Linear in cnt.
  7. Linear in distance between first and last.
  8. Linear in the size of other.
  9. Constant.
"},{"location":"api/basic_json/basic_json/#notes","title":"Notes","text":"
  • Overload 5:

    Empty initializer list

    When used without parentheses around an empty initializer list, basic_json() is called instead of this function, yielding the JSON null value.

  • Overload 7:

    Preconditions

    • Iterators first and last must be initialized. **This precondition is enforced with a runtime assertion.
    • Range [first, last) is valid. Usually, this precondition cannot be checked efficiently. Only certain edge cases are detected; see the description of the exceptions above. A violation of this precondition yields undefined behavior.

    Runtime assertion

    A precondition is enforced with a runtime assertion.

  • Overload 8:

    Postcondition

    *this == other

  • Overload 9:

    Postconditions

    • `*this has the same value as other before the call.
    • other is a JSON null value
"},{"location":"api/basic_json/basic_json/#examples","title":"Examples","text":"Example: (1) create an empty value with a given type

The following code shows the constructor for different value_t values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create the different JSON values with default values\n    json j_null(json::value_t::null);\n    json j_boolean(json::value_t::boolean);\n    json j_number_integer(json::value_t::number_integer);\n    json j_number_float(json::value_t::number_float);\n    json j_object(json::value_t::object);\n    json j_array(json::value_t::array);\n    json j_string(json::value_t::string);\n\n    // serialize the JSON values\n    std::cout << j_null << '\\n';\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nfalse\n0\n0.0\n{}\n[]\n\"\"\n
Example: (2) create a null object

The following code shows the constructor with and without a null pointer parameter.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // implicitly create a JSON null value\n    json j1;\n\n    // explicitly create a JSON null value\n    json j2(nullptr);\n\n    // serialize the JSON null value\n    std::cout << j1 << '\\n' << j2 << '\\n';\n}\n

Output:

null\nnull\n
Example: (3) create a JSON value from compatible types

The following code shows the constructor with several compatible types.

#include <iostream>\n#include <deque>\n#include <list>\n#include <forward_list>\n#include <set>\n#include <unordered_map>\n#include <unordered_set>\n#include <valarray>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // ============\n    // object types\n    // ============\n\n    // create an object from an object_t value\n    json::object_t object_value = { {\"one\", 1}, {\"two\", 2} };\n    json j_object_t(object_value);\n\n    // create an object from std::map\n    std::map<std::string, int> c_map\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 3}\n    };\n    json j_map(c_map);\n\n    // create an object from std::unordered_map\n    std::unordered_map<const char*, double> c_umap\n    {\n        {\"one\", 1.2}, {\"two\", 2.3}, {\"three\", 3.4}\n    };\n    json j_umap(c_umap);\n\n    // create an object from std::multimap\n    std::multimap<std::string, bool> c_mmap\n    {\n        {\"one\", true}, {\"two\", true}, {\"three\", false}, {\"three\", true}\n    };\n    json j_mmap(c_mmap); // only one entry for key \"three\" is used\n\n    // create an object from std::unordered_multimap\n    std::unordered_multimap<std::string, bool> c_ummap\n    {\n        {\"one\", true}, {\"two\", true}, {\"three\", false}, {\"three\", true}\n    };\n    json j_ummap(c_ummap); // only one entry for key \"three\" is used\n\n    // serialize the JSON objects\n    std::cout << j_object_t << '\\n';\n    std::cout << j_map << '\\n';\n    std::cout << j_umap << '\\n';\n    std::cout << j_mmap << '\\n';\n    std::cout << j_ummap << \"\\n\\n\";\n\n    // ===========\n    // array types\n    // ===========\n\n    // create an array from an array_t value\n    json::array_t array_value = {\"one\", \"two\", 3, 4.5, false};\n    json j_array_t(array_value);\n\n    // create an array from std::vector\n    std::vector<int> c_vector {1, 2, 3, 4};\n    json j_vec(c_vector);\n\n    // create an array from std::valarray\n    std::valarray<short> c_valarray {10, 9, 8, 7};\n    json j_valarray(c_valarray);\n\n    // create an array from std::deque\n    std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};\n    json j_deque(c_deque);\n\n    // create an array from std::list\n    std::list<bool> c_list {true, true, false, true};\n    json j_list(c_list);\n\n    // create an array from std::forward_list\n    std::forward_list<std::int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};\n    json j_flist(c_flist);\n\n    // create an array from std::array\n    std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};\n    json j_array(c_array);\n\n    // create an array from std::set\n    std::set<std::string> c_set {\"one\", \"two\", \"three\", \"four\", \"one\"};\n    json j_set(c_set); // only one entry for \"one\" is used\n\n    // create an array from std::unordered_set\n    std::unordered_set<std::string> c_uset {\"one\", \"two\", \"three\", \"four\", \"one\"};\n    json j_uset(c_uset); // only one entry for \"one\" is used\n\n    // create an array from std::multiset\n    std::multiset<std::string> c_mset {\"one\", \"two\", \"one\", \"four\"};\n    json j_mset(c_mset); // both entries for \"one\" are used\n\n    // create an array from std::unordered_multiset\n    std::unordered_multiset<std::string> c_umset {\"one\", \"two\", \"one\", \"four\"};\n    json j_umset(c_umset); // both entries for \"one\" are used\n\n    // serialize the JSON arrays\n    std::cout << j_array_t << '\\n';\n    std::cout << j_vec << '\\n';\n    std::cout << j_valarray << '\\n';\n    std::cout << j_deque << '\\n';\n    std::cout << j_list << '\\n';\n    std::cout << j_flist << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_set << '\\n';\n    std::cout << j_uset << '\\n';\n    std::cout << j_mset << '\\n';\n    std::cout << j_umset << \"\\n\\n\";\n\n    // ============\n    // string types\n    // ============\n\n    // create string from a string_t value\n    json::string_t string_value = \"The quick brown fox jumps over the lazy dog.\";\n    json j_string_t(string_value);\n\n    // create a JSON string directly from a string literal\n    json j_string_literal(\"The quick brown fox jumps over the lazy dog.\");\n\n    // create string from std::string\n    std::string s_stdstring = \"The quick brown fox jumps over the lazy dog.\";\n    json j_stdstring(s_stdstring);\n\n    // serialize the JSON strings\n    std::cout << j_string_t << '\\n';\n    std::cout << j_string_literal << '\\n';\n    std::cout << j_stdstring << \"\\n\\n\";\n\n    // ============\n    // number types\n    // ============\n\n    // create a JSON number from number_integer_t\n    json::number_integer_t value_integer_t = -42;\n    json j_integer_t(value_integer_t);\n\n    // create a JSON number from number_unsigned_t\n    json::number_integer_t value_unsigned_t = 17;\n    json j_unsigned_t(value_unsigned_t);\n\n    // create a JSON number from an anonymous enum\n    enum { enum_value = 17 };\n    json j_enum(enum_value);\n\n    // create values of different integer types\n    short n_short = 42;\n    int n_int = -23;\n    long n_long = 1024;\n    int_least32_t n_int_least32_t = -17;\n    uint8_t n_uint8_t = 8;\n\n    // create (integer) JSON numbers\n    json j_short(n_short);\n    json j_int(n_int);\n    json j_long(n_long);\n    json j_int_least32_t(n_int_least32_t);\n    json j_uint8_t(n_uint8_t);\n\n    // create values of different floating-point types\n    json::number_float_t v_ok = 3.141592653589793;\n    json::number_float_t v_nan = NAN;\n    json::number_float_t v_infinity = INFINITY;\n\n    // create values of different floating-point types\n    float n_float = 42.23;\n    float n_float_nan = 1.0f / 0.0f;\n    double n_double = 23.42;\n\n    // create (floating point) JSON numbers\n    json j_ok(v_ok);\n    json j_nan(v_nan);\n    json j_infinity(v_infinity);\n    json j_float(n_float);\n    json j_float_nan(n_float_nan);\n    json j_double(n_double);\n\n    // serialize the JSON numbers\n    std::cout << j_integer_t << '\\n';\n    std::cout << j_unsigned_t << '\\n';\n    std::cout << j_enum << '\\n';\n    std::cout << j_short << '\\n';\n    std::cout << j_int << '\\n';\n    std::cout << j_long << '\\n';\n    std::cout << j_int_least32_t << '\\n';\n    std::cout << j_uint8_t << '\\n';\n    std::cout << j_ok << '\\n';\n    std::cout << j_nan << '\\n';\n    std::cout << j_infinity << '\\n';\n    std::cout << j_float << '\\n';\n    std::cout << j_float_nan << '\\n';\n    std::cout << j_double << \"\\n\\n\";\n\n    // =============\n    // boolean types\n    // =============\n\n    // create boolean values\n    json j_truth = true;\n    json j_falsity = false;\n\n    // serialize the JSON booleans\n    std::cout << j_truth << '\\n';\n    std::cout << j_falsity << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\n{\"one\":1,\"three\":3,\"two\":2}\n{\"one\":1.2,\"three\":3.4,\"two\":2.3}\n{\"one\":true,\"three\":false,\"two\":true}\n{\"one\":true,\"three\":false,\"two\":true}\n\n[\"one\",\"two\",3,4.5,false]\n[1,2,3,4]\n[10,9,8,7]\n[1.2,2.3,3.4,5.6]\n[true,true,false,true]\n[12345678909876,23456789098765,34567890987654,45678909876543]\n[1,2,3,4]\n[\"four\",\"one\",\"three\",\"two\"]\n[\"four\",\"three\",\"two\",\"one\"]\n[\"four\",\"one\",\"one\",\"two\"]\n[\"four\",\"two\",\"one\",\"one\"]\n\n\"The quick brown fox jumps over the lazy dog.\"\n\"The quick brown fox jumps over the lazy dog.\"\n\"The quick brown fox jumps over the lazy dog.\"\n\n-42\n17\n17\n42\n-23\n1024\n-17\n8\n3.141592653589793\nnull\nnull\n42.22999954223633\nnull\n23.42\n\ntrue\nfalse\n

Note the output is platform-dependent.

Example: (5) create a container (array or object) from an initializer list

The example below shows how JSON values are created from initializer lists.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_empty_init_list = json({});\n    json j_object = { {\"one\", 1}, {\"two\", 2} };\n    json j_array = {1, 2, 3, 4};\n    json j_nested_object = { {\"one\", {1}}, {\"two\", {1, 2}} };\n    json j_nested_array = { {{1}, \"one\"}, {{1, 2}, \"two\"} };\n\n    // serialize the JSON value\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_nested_object << '\\n';\n    std::cout << j_nested_array << '\\n';\n}\n

Output:

{}\n{\"one\":1,\"two\":2}\n[1,2,3,4]\n{\"one\":[1],\"two\":[1,2]}\n[[[1],\"one\"],[[1,2],\"two\"]]\n
Example: (6) construct an array with count copies of given value

The following code shows examples for creating arrays with several copies of a given value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array by creating copies of a JSON value\n    json value = \"Hello\";\n    json array_0 = json(0, value);\n    json array_1 = json(1, value);\n    json array_5 = json(5, value);\n\n    // serialize the JSON arrays\n    std::cout << array_0 << '\\n';\n    std::cout << array_1 << '\\n';\n    std::cout << array_5 << '\\n';\n}\n

Output:

[]\n[\"Hello\"]\n[\"Hello\",\"Hello\",\"Hello\",\"Hello\",\"Hello\"]\n
Example: (7) construct a JSON container given an iterator range

The example below shows several ways to create JSON values by specifying a subrange with iterators.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_array = {\"alpha\", \"bravo\", \"charly\", \"delta\", \"easy\"};\n    json j_number = 42;\n    json j_object = {{\"one\", \"eins\"}, {\"two\", \"zwei\"}};\n\n    // create copies using iterators\n    json j_array_range(j_array.begin() + 1, j_array.end() - 2);\n    json j_number_range(j_number.begin(), j_number.end());\n    json j_object_range(j_object.begin(), j_object.find(\"two\"));\n\n    // serialize the values\n    std::cout << j_array_range << '\\n';\n    std::cout << j_number_range << '\\n';\n    std::cout << j_object_range << '\\n';\n\n    // example for an exception\n    try\n    {\n        json j_invalid(j_number.begin() + 1, j_number.end());\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[\"bravo\",\"charly\"]\n42\n{\"one\":\"eins\"}\n[json.exception.invalid_iterator.204] iterators out of range\n
Example: (8) copy constructor

The following code shows an example for the copy constructor.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json j1 = {\"one\", \"two\", 3, 4.5, false};\n\n    // create a copy\n    json j2(j1);\n\n    // serialize the JSON array\n    std::cout << j1 << \" = \" << j2 << '\\n';\n    std::cout << std::boolalpha << (j1 == j2) << '\\n';\n}\n

Output:

[\"one\",\"two\",3,4.5,false] = [\"one\",\"two\",3,4.5,false]\ntrue\n
Example: (9) move constructor

The code below shows the move constructor explicitly called via std::move.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json a = 23;\n\n    // move contents of a to b\n    json b(std::move(a));\n\n    // serialize the JSON arrays\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n

Output:

null\n23\n
"},{"location":"api/basic_json/basic_json/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.1.0.
  4. Since version 3.2.0.
  5. Since version 1.0.0.
  6. Since version 1.0.0.
  7. Since version 1.0.0.
  8. Since version 1.0.0.
  9. Since version 1.0.0.
"},{"location":"api/basic_json/begin/","title":"nlohmann::basic_json::begin","text":"
iterator begin() noexcept;\nconst_iterator begin() const noexcept;\n

Returns an iterator to the first element.

"},{"location":"api/basic_json/begin/#return-value","title":"Return value","text":"

iterator to the first element

"},{"location":"api/basic_json/begin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/begin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/begin/#examples","title":"Examples","text":"Example

The following code shows an example for begin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the first element\n    json::iterator it = array.begin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/begin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/binary/","title":"nlohmann::basic_json::binary","text":"
// (1)\nstatic basic_json binary(const typename binary_t::container_type& init);\nstatic basic_json binary(typename binary_t::container_type&& init);\n\n// (2)\nstatic basic_json binary(const typename binary_t::container_type& init,\n                         std::uint8_t subtype);\nstatic basic_json binary(typename binary_t::container_type&& init,\n                         std::uint8_t subtype);\n
  1. Creates a JSON binary array value from a given binary container.
  2. Creates a JSON binary array value from a given binary container with subtype.

Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

"},{"location":"api/basic_json/binary/#parameters","title":"Parameters","text":"init (in) container containing bytes to use as binary type subtype (in) subtype to use in CBOR, MessagePack, and BSON"},{"location":"api/basic_json/binary/#return-value","title":"Return value","text":"

JSON binary array value

"},{"location":"api/basic_json/binary/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/binary/#complexity","title":"Complexity","text":"

Linear in the size of init; constant for typename binary_t::container_type&& init versions.

"},{"location":"api/basic_json/binary/#notes","title":"Notes","text":"

Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.

"},{"location":"api/basic_json/binary/#examples","title":"Examples","text":"Example

The following code shows how to create a binary value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary vector\n    std::vector<std::uint8_t> vec = {0xCA, 0xFE, 0xBA, 0xBE};\n\n    // create a binary JSON value with subtype 42\n    json j = json::binary(vec, 42);\n\n    // output type and subtype\n    std::cout << \"type: \" << j.type_name() << \", subtype: \" << j.get_binary().subtype() << std::endl;\n}\n

Output:

type: binary, subtype: 42\n
"},{"location":"api/basic_json/binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/binary_t/","title":"nlohmann::basic_json::binary_t","text":"
using binary_t = byte_container_with_subtype<BinaryType>;\n

This type is a type designed to carry binary data that appears in various serialized formats, such as CBOR's Major Type 2, MessagePack's bin, and BSON's generic binary subtype. This type is NOT a part of standard JSON and exists solely for compatibility with these binary types. As such, it is simply defined as an ordered sequence of zero or more byte values.

Additionally, as an implementation detail, the subtype of the binary data is carried around as a std::uint64_t, which is compatible with both of the binary data formats that use binary subtyping, (though the specific numbering is incompatible with each other, and it is up to the user to translate between them). The subtype is added to BinaryType via the helper type byte_container_with_subtype.

CBOR's RFC 7049 describes this type as:

Major type 2: a byte string. The string's length in bytes is represented following the rules for positive integers (major type 0).

MessagePack's documentation on the bin type family describes this type as:

Bin format family stores a byte array in 2, 3, or 5 bytes of extra bytes in addition to the size of the byte array.

BSON's specifications describe several binary types; however, this type is intended to represent the generic binary type which has the description:

Generic binary subtype - This is the most commonly used binary subtype and should be the 'default' for drivers and tools.

None of these impose any limitations on the internal representation other than the basic unit of storage be some type of array whose parts are decomposable into bytes.

The default representation of this binary format is a std::vector<std::uint8_t>, which is a very common way to represent a byte array in modern C++.

"},{"location":"api/basic_json/binary_t/#template-parameters","title":"Template parameters","text":"BinaryType container type to store arrays"},{"location":"api/basic_json/binary_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/binary_t/#default-type","title":"Default type","text":"

The default values for BinaryType is std::vector<std::uint8_t>.

"},{"location":"api/basic_json/binary_t/#storage","title":"Storage","text":"

Binary Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of the type binary_t* must be dereferenced.

"},{"location":"api/basic_json/binary_t/#notes-on-subtypes","title":"Notes on subtypes","text":"
  • CBOR

    • Binary values are represented as byte strings. Subtypes are written as tags.
  • MessagePack

    • If a subtype is given and the binary array contains exactly 1, 2, 4, 8, or 16 elements, the fixext family (fixext1, fixext2, fixext4, fixext8) is used. For other sizes, the ext family (ext8, ext16, ext32) is used. The subtype is then added as signed 8-bit integer.
    • If no subtype is given, the bin family (bin8, bin16, bin32) is used.
  • BSON

    • If a subtype is given, it is used and added as unsigned 8-bit integer.
    • If no subtype is given, the generic binary subtype 0x00 is used.
"},{"location":"api/basic_json/binary_t/#examples","title":"Examples","text":"Example

The following code shows that binary_t is by default, a typedef to nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>, json::binary_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/binary_t/#see-also","title":"See also","text":"
  • byte_container_with_subtype
"},{"location":"api/basic_json/binary_t/#version-history","title":"Version history","text":"
  • Added in version 3.8.0. Changed type of subtype to std::uint64_t in version 3.10.0.
"},{"location":"api/basic_json/boolean_t/","title":"nlohmann::basic_json::boolean_t","text":"
using boolean_t = BooleanType;\n

The type used to store JSON booleans.

RFC 8259 implicitly describes a boolean as a type which differentiates the two literals true and false.

To store objects in C++, a type is defined by the template parameter BooleanType which chooses the type to use.

"},{"location":"api/basic_json/boolean_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/boolean_t/#default-type","title":"Default type","text":"

With the default values for BooleanType (bool), the default value for boolean_t is bool.

"},{"location":"api/basic_json/boolean_t/#storage","title":"Storage","text":"

Boolean values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/boolean_t/#examples","title":"Examples","text":"Example

The following code shows that boolean_t is by default, a typedef to bool.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<bool, json::boolean_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/boolean_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/cbegin/","title":"nlohmann::basic_json::cbegin","text":"
const_iterator cbegin() const noexcept;\n

Returns an iterator to the first element.

"},{"location":"api/basic_json/cbegin/#return-value","title":"Return value","text":"

iterator to the first element

"},{"location":"api/basic_json/cbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/cbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/cbegin/#examples","title":"Examples","text":"Example

The following code shows an example for cbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    const json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the first element\n    json::const_iterator it = array.cbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/cbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/cbor_tag_handler_t/","title":"nlohmann::basic_json::cbor_tag_handler_t","text":"
enum class cbor_tag_handler_t\n{\n    error,\n    ignore,\n    store\n};\n

This enumeration is used in the from_cbor function to choose how to treat tags:

error throw a parse_error exception in case of a tag ignore ignore tags store store tagged values as binary container with subtype (for bytes 0xd8..0xdb)"},{"location":"api/basic_json/cbor_tag_handler_t/#examples","title":"Examples","text":"Example

The example below shows how the different values of the cbor_tag_handler_t influence the behavior of from_cbor when reading a tagged byte string.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // tagged byte string\n    std::vector<std::uint8_t> vec = {{0xd8, 0x42, 0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // cbor_tag_handler_t::error throws\n    try\n    {\n        auto b_throw_on_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::error);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    // cbor_tag_handler_t::ignore ignores the tag\n    auto b_ignore_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::ignore);\n    std::cout << b_ignore_tag << std::endl;\n\n    // cbor_tag_handler_t::store stores the tag as binary subtype\n    auto b_store_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::store);\n    std::cout << b_store_tag << std::endl;\n}\n

Output:

[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing CBOR value: invalid byte: 0xD8\n{\"bytes\":[202,254,186,190],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":66}\n
"},{"location":"api/basic_json/cbor_tag_handler_t/#version-history","title":"Version history","text":"
  • Added in version 3.9.0. Added value store in 3.10.0.
"},{"location":"api/basic_json/cend/","title":"nlohmann::basic_json::cend","text":"
const_iterator cend() const noexcept;\n

Returns an iterator to one past the last element.

"},{"location":"api/basic_json/cend/#return-value","title":"Return value","text":"

iterator one past the last element

"},{"location":"api/basic_json/cend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/cend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/cend/#examples","title":"Examples","text":"Example

The following code shows an example for cend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to one past the last element\n    json::const_iterator it = array.cend();\n\n    // decrement the iterator to point to the last element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/cend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/clear/","title":"nlohmann::basic_json::clear","text":"
void clear() noexcept;\n

Clears the content of a JSON value and resets it to the default value as if basic_json(value_t) would have been called with the current value type from type():

Value type initial value null null boolean false string \"\" number 0 binary An empty byte vector object {} array []

Has the same effect as calling

*this = basic_json(type());\n
"},{"location":"api/basic_json/clear/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/clear/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value.

"},{"location":"api/basic_json/clear/#notes","title":"Notes","text":"

All iterators, pointers and references related to this container are invalidated.

"},{"location":"api/basic_json/clear/#examples","title":"Examples","text":"Example

The example below shows the effect of clear() to different JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call clear()\n    j_null.clear();\n    j_boolean.clear();\n    j_number_integer.clear();\n    j_number_float.clear();\n    j_object.clear();\n    j_array.clear();\n    j_string.clear();\n\n    // serialize the cleared values()\n    std::cout << j_null << '\\n';\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nfalse\n0\n0.0\n{}\n[]\n\"\"\n
"},{"location":"api/basic_json/clear/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added support for binary types in version 3.8.0.
"},{"location":"api/basic_json/contains/","title":"nlohmann::basic_json::contains","text":"
// (1)\nbool contains(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\nbool contains(KeyType&& key) const;\n\n// (3)\nbool contains(const json_pointer& ptr) const;\n
  1. Check whether an element exists in a JSON object with a key equivalent to key. If the element is not found or the JSON value is not an object, false is returned.
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  3. Check whether the given JSON pointer ptr can be resolved in the current JSON value.
"},{"location":"api/basic_json/contains/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/contains/#parameters","title":"Parameters","text":"key (in) key value to check its existence. ptr (in) JSON pointer to check its existence."},{"location":"api/basic_json/contains/#return-value","title":"Return value","text":"
  1. true if an element with specified key exists. If no such element with such key is found or the JSON value is not an object, false is returned.
  2. See 1.
  3. true if the JSON pointer can be resolved to a stored value, false otherwise.
"},{"location":"api/basic_json/contains/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/contains/#exceptions","title":"Exceptions","text":"
  1. The function does not throw exceptions.
  2. The function does not throw exceptions.
  3. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index begins with 0.
    • Throws parse_error.109 if an array index was not a number.
"},{"location":"api/basic_json/contains/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/contains/#notes","title":"Notes","text":"
  • This method always returns false when executed on a JSON type that is not an object.
  • This method can be executed on any JSON value type.

Postconditions

If j.contains(x) returns true for a key or JSON pointer x, then it is safe to call j[x].

"},{"location":"api/basic_json/contains/#examples","title":"Examples","text":"Example: (1) check with key

The example shows how contains() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create some JSON values\n    json j_object = R\"( {\"key\": \"value\"} )\"_json;\n    json j_array = R\"( [1, 2, 3] )\"_json;\n\n    // call contains\n    std::cout << std::boolalpha <<\n              \"j_object contains 'key': \" << j_object.contains(\"key\") << '\\n' <<\n              \"j_object contains 'another': \" << j_object.contains(\"another\") << '\\n' <<\n              \"j_array contains 'key': \" << j_array.contains(\"key\") << std::endl;\n}\n

Output:

j_object contains 'key': true\nj_object contains 'another': false\nj_array contains 'key': false\n
Example: (2) check with key using string_view

The example shows how contains() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create some JSON values\n    json j_object = R\"( {\"key\": \"value\"} )\"_json;\n    json j_array = R\"( [1, 2, 3] )\"_json;\n\n    // call contains\n    std::cout << std::boolalpha <<\n              \"j_object contains 'key': \" << j_object.contains(\"key\"sv) << '\\n' <<\n              \"j_object contains 'another': \" << j_object.contains(\"another\"sv) << '\\n' <<\n              \"j_array contains 'key': \" << j_array.contains(\"key\"sv) << std::endl;\n}\n

Output:

j_object contains 'key': true\nj_object contains 'another': false\nj_array contains 'key': false\n
Example: (3) check with JSON pointer

The example shows how contains() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    std::cout << std::boolalpha\n              << j.contains(\"/number\"_json_pointer) << '\\n'\n              << j.contains(\"/string\"_json_pointer) << '\\n'\n              << j.contains(\"/array\"_json_pointer) << '\\n'\n              << j.contains(\"/array/1\"_json_pointer) << '\\n'\n              << j.contains(\"/array/-\"_json_pointer) << '\\n'\n              << j.contains(\"/array/4\"_json_pointer) << '\\n'\n              << j.contains(\"/baz\"_json_pointer) << std::endl;\n\n    try\n    {\n        // try to use an array index with leading '0'\n        j.contains(\"/array/01\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    try\n    {\n        // try to use an array index that is not a number\n        j.contains(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

true\ntrue\ntrue\ntrue\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/contains/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 3.6.0. Extended template KeyType to support comparable types in version 3.11.0.
  3. Added in version 3.7.0.
"},{"location":"api/basic_json/count/","title":"nlohmann::basic_json::count","text":"
// (1)\nsize_type count(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\nsize_type count(KeyType&& key) const;\n
  1. Returns the number of elements with key key. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
"},{"location":"api/basic_json/count/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/count/#parameters","title":"Parameters","text":"key (in) key value of the element to count."},{"location":"api/basic_json/count/#return-value","title":"Return value","text":"

Number of elements with key key. If the JSON value is not an object, the return value will be 0.

"},{"location":"api/basic_json/count/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/count/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/count/#notes","title":"Notes","text":"

This method always returns 0 when executed on a JSON type that is not an object.

"},{"location":"api/basic_json/count/#examples","title":"Examples","text":"Example: (1) count number of elements

The example shows how count() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call count()\n    auto count_two = j_object.count(\"two\");\n    auto count_three = j_object.count(\"three\");\n\n    // print values\n    std::cout << \"number of elements with key \\\"two\\\": \" << count_two << '\\n';\n    std::cout << \"number of elements with key \\\"three\\\": \" << count_three << '\\n';\n}\n

Output:

number of elements with key \"two\": 1\nnumber of elements with key \"three\": 0\n
Example: (2) count number of elements using string_view

The example shows how count() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call count()\n    auto count_two = j_object.count(\"two\"sv);\n    auto count_three = j_object.count(\"three\"sv);\n\n    // print values\n    std::cout << \"number of elements with key \\\"two\\\": \" << count_two << '\\n';\n    std::cout << \"number of elements with key \\\"three\\\": \" << count_three << '\\n';\n}\n

Output:

number of elements with key \"two\": 1\nnumber of elements with key \"three\": 0\n
"},{"location":"api/basic_json/count/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 1.0.0. Changed parameter key type to KeyType&& in version 3.11.0.
"},{"location":"api/basic_json/crbegin/","title":"nlohmann::basic_json::crbegin","text":"
const_reverse_iterator crbegin() const noexcept;\n

Returns an iterator to the reverse-beginning; that is, the last element.

"},{"location":"api/basic_json/crbegin/#return-value","title":"Return value","text":"

reverse iterator to the first element

"},{"location":"api/basic_json/crbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/crbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/crbegin/#examples","title":"Examples","text":"Example

The following code shows an example for crbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-beginning\n    json::const_reverse_iterator it = array.crbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/crbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/crend/","title":"nlohmann::basic_json::crend","text":"
const_reverse_iterator crend() const noexcept;\n

Returns an iterator to the reverse-end; that is, one before the first element. This element acts as a placeholder, attempting to access it results in undefined behavior.

"},{"location":"api/basic_json/crend/#return-value","title":"Return value","text":"

reverse iterator to the element following the last element

"},{"location":"api/basic_json/crend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/crend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/crend/#examples","title":"Examples","text":"Example

The following code shows an example for eend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-end\n    json::const_reverse_iterator it = array.crend();\n\n    // increment the iterator to point to the first element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/crend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/default_object_comparator_t/","title":"nlohmann::basic_json::default_object_comparator_t","text":"
using default_object_comparator_t = std::less<StringType>;  // until C++14\n\nusing default_object_comparator_t = std::less<>;            // since C++14\n

The default comparator used by object_t.

Since C++14 a transparent comparator is used which prevents unnecessary string construction when looking up a key in an object.

The actual comparator used depends on object_t and can be obtained via object_comparator_t.

"},{"location":"api/basic_json/default_object_comparator_t/#examples","title":"Examples","text":"Example

The example below demonstrates the default comparator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha\n              << \"one < two : \" << json::default_object_comparator_t{}(\"one\", \"two\") << \"\\n\"\n              << \"three < four : \" << json::default_object_comparator_t{}(\"three\", \"four\") << std::endl;\n}\n

Output:

one < two : true\nthree < four : false\n
"},{"location":"api/basic_json/default_object_comparator_t/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/diff/","title":"nlohmann::basic_json::diff","text":"
static basic_json diff(const basic_json& source,\n                       const basic_json& target);\n

Creates a JSON Patch so that value source can be changed into the value target by calling patch function.

For two JSON values source and target, the following code yields always true:

source.patch(diff(source, target)) == target;\n

"},{"location":"api/basic_json/diff/#parameters","title":"Parameters","text":"source (in) JSON value to compare from target (in) JSON value to compare against"},{"location":"api/basic_json/diff/#return-value","title":"Return value","text":"

a JSON patch to convert the source to target

"},{"location":"api/basic_json/diff/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/diff/#complexity","title":"Complexity","text":"

Linear in the lengths of source and target.

"},{"location":"api/basic_json/diff/#notes","title":"Notes","text":"

Currently, only remove, add, and replace operations are generated.

"},{"location":"api/basic_json/diff/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is created as a diff for two JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the source document\n    json source = R\"(\n        {\n            \"baz\": \"qux\",\n            \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the target document\n    json target = R\"(\n        {\n            \"baz\": \"boo\",\n            \"hello\": [\n                \"world\"\n            ]\n        }\n    )\"_json;\n\n    // create the patch\n    json patch = json::diff(source, target);\n\n    // roundtrip\n    json patched_source = source.patch(patch);\n\n    // output patch and roundtrip result\n    std::cout << std::setw(4) << patch << \"\\n\\n\"\n              << std::setw(4) << patched_source << std::endl;\n}\n

Output:

[\n    {\n        \"op\": \"replace\",\n        \"path\": \"/baz\",\n        \"value\": \"boo\"\n    },\n    {\n        \"op\": \"remove\",\n        \"path\": \"/foo\"\n    },\n    {\n        \"op\": \"add\",\n        \"path\": \"/hello\",\n        \"value\": [\n            \"world\"\n        ]\n    }\n]\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/diff/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
"},{"location":"api/basic_json/diff/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/dump/","title":"nlohmann::basic_json::dump","text":"
string_t dump(const int indent = -1,\n              const char indent_char = ' ',\n              const bool ensure_ascii = false,\n              const error_handler_t error_handler = error_handler_t::strict) const;\n

Serialization function for JSON values. The function tries to mimic Python's json.dumps() function, and currently supports its indent and ensure_ascii parameters.

"},{"location":"api/basic_json/dump/#parameters","title":"Parameters","text":"indent (in) If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. -1 (the default) selects the most compact representation. indent_char (in) The character to use for indentation if indent is greater than 0. The default is (space). ensure_ascii (in) If ensure_ascii is true, all non-ASCII characters in the output are escaped with \\uXXXX sequences, and the result consists of ASCII characters only. error_handler (in) how to react on decoding errors; there are three possible values (see error_handler_t: strict (throws and exception in case a decoding error occurs; default), replace (replace invalid UTF-8 sequences with U+FFFD), and ignore (ignore invalid UTF-8 sequences during serialization; all bytes are copied to the output unchanged))."},{"location":"api/basic_json/dump/#return-value","title":"Return value","text":"

string containing the serialization of the JSON value

"},{"location":"api/basic_json/dump/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/dump/#exceptions","title":"Exceptions","text":"

Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded and error_handler is set to strict

"},{"location":"api/basic_json/dump/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/dump/#notes","title":"Notes","text":"

Binary values are serialized as object containing two keys:

  • \"bytes\": an array of bytes as integers
  • \"subtype\": the subtype as integer or null if the binary has no subtype
"},{"location":"api/basic_json/dump/#examples","title":"Examples","text":"Example

The following example shows the effect of different indent, indent_char, and ensure_ascii parameters to the result of the serialization.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hell\u00f6 \ud83d\ude00!\";\n\n    // call dump()\n    std::cout << \"objects:\" << '\\n'\n              << j_object.dump() << \"\\n\\n\"\n              << j_object.dump(-1) << \"\\n\\n\"\n              << j_object.dump(0) << \"\\n\\n\"\n              << j_object.dump(4) << \"\\n\\n\"\n              << j_object.dump(1, '\\t') << \"\\n\\n\";\n\n    std::cout << \"arrays:\" << '\\n'\n              << j_array.dump() << \"\\n\\n\"\n              << j_array.dump(-1) << \"\\n\\n\"\n              << j_array.dump(0) << \"\\n\\n\"\n              << j_array.dump(4) << \"\\n\\n\"\n              << j_array.dump(1, '\\t') << \"\\n\\n\";\n\n    std::cout << \"strings:\" << '\\n'\n              << j_string.dump() << '\\n'\n              << j_string.dump(-1, ' ', true) << '\\n';\n\n    // create JSON value with invalid UTF-8 byte sequence\n    json j_invalid = \"\u00e4\\xA9\u00fc\";\n    try\n    {\n        std::cout << j_invalid.dump() << std::endl;\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    std::cout << \"string with replaced invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::replace)\n              << \"\\nstring with ignored invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::ignore)\n              << '\\n';\n}\n

Output:

objects:\n{\"one\":1,\"two\":2}\n\n{\"one\":1,\"two\":2}\n\n{\n\"one\": 1,\n\"two\": 2\n}\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\narrays:\n[1,2,4,8,16]\n\n[1,2,4,8,16]\n\n[\n1,\n2,\n4,\n8,\n16\n]\n\n[\n    1,\n    2,\n    4,\n    8,\n    16\n]\n\n[\n    1,\n    2,\n    4,\n    8,\n    16\n]\n\nstrings:\n\"Hell\u00f6 \ud83d\ude00!\"\n\"Hell\\u00f6 \\ud83d\\ude00!\"\n[json.exception.type_error.316] invalid UTF-8 byte at index 2: 0xA9\nstring with replaced invalid characters: \"\u00e4\ufffd\u00fc\"\nstring with ignored invalid characters: \"\u00e4\u00fc\"\n
"},{"location":"api/basic_json/dump/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Indentation character indent_char, option ensure_ascii and exceptions added in version 3.0.0.
  • Error handlers added in version 3.4.0.
  • Serialization of binary values added in version 3.8.0.
"},{"location":"api/basic_json/emplace/","title":"nlohmann::basic_json::emplace","text":"
template<class... Args>\nstd::pair<iterator, bool> emplace(Args&& ... args);\n

Inserts a new element into a JSON object constructed in-place with the given args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from args.

"},{"location":"api/basic_json/emplace/#template-parameters","title":"Template parameters","text":"Args compatible types to create a basic_json object"},{"location":"api/basic_json/emplace/#parameters","title":"Parameters","text":"args (in) arguments to forward to a constructor of basic_json"},{"location":"api/basic_json/emplace/#return-value","title":"Return value","text":"

a pair consisting of an iterator to the inserted element, or the already-existing element if no insertion happened, and a bool denoting whether the insertion took place.

"},{"location":"api/basic_json/emplace/#exceptions","title":"Exceptions","text":"

Throws type_error.311 when called on a type other than JSON object or null; example: \"cannot use emplace() with number\"

"},{"location":"api/basic_json/emplace/#complexity","title":"Complexity","text":"

Logarithmic in the size of the container, O(log(size())).

"},{"location":"api/basic_json/emplace/#examples","title":"Examples","text":"Example

The example shows how emplace() can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object. Further note how no value is added if there was already one value stored with the same key.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    auto res1 = object.emplace(\"three\", 3);\n    null.emplace(\"A\", \"a\");\n    null.emplace(\"B\", \"b\");\n\n    // the following call will not add an object, because there is already\n    // a value stored at key \"B\"\n    auto res2 = null.emplace(\"B\", \"c\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << *res1.first << \" \" << std::boolalpha << res1.second << '\\n';\n\n    std::cout << null << '\\n';\n    std::cout << *res2.first << \" \" << std::boolalpha << res2.second << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"one\":1,\"three\":3,\"two\":2}\n3 true\n{\"A\":\"a\",\"B\":\"b\"}\n\"b\" false\n
"},{"location":"api/basic_json/emplace/#version-history","title":"Version history","text":"
  • Since version 2.0.8.
"},{"location":"api/basic_json/emplace_back/","title":"nlohmann::basic_json::emplace_back","text":"
template<class... Args>\nreference emplace_back(Args&& ... args);\n

Creates a JSON value from the passed parameters args to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending the value created from args.

"},{"location":"api/basic_json/emplace_back/#template-parameters","title":"Template parameters","text":"Args compatible types to create a basic_json object"},{"location":"api/basic_json/emplace_back/#parameters","title":"Parameters","text":"args (in) arguments to forward to a constructor of basic_json"},{"location":"api/basic_json/emplace_back/#return-value","title":"Return value","text":"

reference to the inserted element

"},{"location":"api/basic_json/emplace_back/#exceptions","title":"Exceptions","text":"

Throws type_error.311 when called on a type other than JSON array or null; example: \"cannot use emplace_back() with number\"

"},{"location":"api/basic_json/emplace_back/#complexity","title":"Complexity","text":"

Amortized constant.

"},{"location":"api/basic_json/emplace_back/#examples","title":"Examples","text":"Example

The example shows how emplace_back() can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.emplace_back(6);\n    null.emplace_back(\"first\");\n    null.emplace_back(3, \"second\");\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6]\n[\"first\",[\"second\",\"second\",\"second\"]]\n
"},{"location":"api/basic_json/emplace_back/#version-history","title":"Version history","text":"
  • Since version 2.0.8.
  • Returns reference since 3.7.0.
"},{"location":"api/basic_json/empty/","title":"nlohmann::basic_json::empty","text":"
bool empty() const noexcept;\n

Checks if a JSON value has no elements (i.e. whether its size() is 0).

"},{"location":"api/basic_json/empty/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null true boolean false string false number false binary false object result of function object_t::empty() array result of function array_t::empty()"},{"location":"api/basic_json/empty/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/empty/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their empty() functions have constant complexity.

"},{"location":"api/basic_json/empty/#possible-implementation","title":"Possible implementation","text":"
bool empty() const noexcept\n{\n    return size() == 0;\n}\n
"},{"location":"api/basic_json/empty/#notes","title":"Notes","text":"

This function does not return whether a string stored as JSON value is empty -- it returns whether the JSON container itself is empty which is false in the case of a string.

"},{"location":"api/basic_json/empty/#examples","title":"Examples","text":"Example

The following code uses empty() to check if a JSON object contains any elements.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call empty()\n    std::cout << std::boolalpha;\n    std::cout << j_null.empty() << '\\n';\n    std::cout << j_boolean.empty() << '\\n';\n    std::cout << j_number_integer.empty() << '\\n';\n    std::cout << j_number_float.empty() << '\\n';\n    std::cout << j_object.empty() << '\\n';\n    std::cout << j_object_empty.empty() << '\\n';\n    std::cout << j_array.empty() << '\\n';\n    std::cout << j_array_empty.empty() << '\\n';\n    std::cout << j_string.empty() << '\\n';\n}\n

Output:

true\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\ntrue\nfalse\n
"},{"location":"api/basic_json/empty/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return false for binary types in version 3.8.0.
"},{"location":"api/basic_json/end/","title":"nlohmann::basic_json::end","text":"
iterator end() noexcept;\nconst_iterator end() const noexcept;\n

Returns an iterator to one past the last element.

"},{"location":"api/basic_json/end/#return-value","title":"Return value","text":"

iterator one past the last element

"},{"location":"api/basic_json/end/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/end/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/end/#examples","title":"Examples","text":"Example

The following code shows an example for end().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to one past the last element\n    json::iterator it = array.end();\n\n    // decrement the iterator to point to the last element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/end/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/erase/","title":"nlohmann::basic_json::erase","text":"
// (1)\niterator erase(iterator pos);\nconst_iterator erase(const_iterator pos);\n\n// (2)\niterator erase(iterator first, iterator last);\nconst_iterator erase(const_iterator first, const_iterator last);\n\n// (3)\nsize_type erase(const typename object_t::key_type& key);\n\n// (4)\ntemplate<typename KeyType>\nsize_type erase(KeyType&& key);\n\n// (5)\nvoid erase(const size_type idx);\n
  1. Removes an element from a JSON value specified by iterator pos. The iterator pos must be valid and dereferenceable. Thus, the end() iterator (which is valid, but is not dereferenceable) cannot be used as a value for pos.

    If called on a primitive type other than null, the resulting JSON value will be null.

  2. Remove an element range specified by [first; last) from a JSON value. The iterator first does not need to be dereferenceable if first == last: erasing an empty range is a no-op.

    If called on a primitive type other than null, the resulting JSON value will be null.

  3. Removes an element from a JSON object by key.

  4. See 3. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.

  5. Removes an element from a JSON array by index.

"},{"location":"api/basic_json/erase/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/erase/#parameters","title":"Parameters","text":"pos (in) iterator to the element to remove first (in) iterator to the beginning of the range to remove last (in) iterator past the end of the range to remove key (in) object key of the elements to remove idx (in) array index of the element to remove"},{"location":"api/basic_json/erase/#return-value","title":"Return value","text":"
  1. Iterator following the last removed element. If the iterator pos refers to the last element, the end() iterator is returned.
  2. Iterator following the last removed element. If the iterator last refers to the last element, the end() iterator is returned.
  3. Number of elements removed. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).
  4. See 3.
  5. (none)
"},{"location":"api/basic_json/erase/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/erase/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.307 if called on a null value; example: \"cannot use erase() with null\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.205 if called on a primitive type with invalid iterator (i.e., any iterator which is not begin()); example: \"iterator out of range\"
  2. The function can throw the following exceptions:
    • Throws type_error.307 if called on a null value; example: \"cannot use erase() with null\"
    • Throws invalid_iterator.203 if called on iterators which does not belong to the current JSON value; example: \"iterators do not fit current value\"
    • Throws invalid_iterator.204 if called on a primitive type with invalid iterators (i.e., if first != begin() and last != end()); example: \"iterators out of range\"
  3. The function can throw the following exceptions:
    • Throws type_error.307 when called on a type other than JSON object; example: \"cannot use erase() with null\"
  4. See 3.
  5. The function can throw the following exceptions:
    • Throws type_error.307 when called on a type other than JSON object; example: \"cannot use erase() with null\"
    • Throws out_of_range.401 when idx >= size(); example: \"array index 17 is out of range\"
"},{"location":"api/basic_json/erase/#complexity","title":"Complexity","text":"
  1. The complexity depends on the type:
    • objects: amortized constant
    • arrays: linear in distance between pos and the end of the container
    • strings and binary: linear in the length of the member
    • other types: constant
  2. The complexity depends on the type:
    • objects: log(size()) + std::distance(first, last)
    • arrays: linear in the distance between first and last, plus linear in the distance between last and end of the container
    • strings and binary: linear in the length of the member
    • other types: constant
  3. log(size()) + count(key)
  4. log(size()) + count(key)
  5. Linear in distance between idx and the end of the container.
"},{"location":"api/basic_json/erase/#notes","title":"Notes","text":"
  1. Invalidates iterators and references at or after the point of the erase, including the end() iterator.
  2. (none)
  3. References and iterators to the erased elements are invalidated. Other references and iterators are not affected.
  4. See 3.
  5. (none)
"},{"location":"api/basic_json/erase/#examples","title":"Examples","text":"Example: (1) remove element given an iterator

The example shows the effect of erase() for different JSON types using an iterator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call erase()\n    j_boolean.erase(j_boolean.begin());\n    j_number_integer.erase(j_number_integer.begin());\n    j_number_float.erase(j_number_float.begin());\n    j_object.erase(j_object.find(\"two\"));\n    j_array.erase(j_array.begin() + 2);\n    j_string.erase(j_string.begin());\n\n    // print values\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nnull\nnull\n{\"one\":1}\n[1,2,8,16]\nnull\n
Example: (2) remove elements given an iterator range

The example shows the effect of erase() for different JSON types using an iterator range.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call erase()\n    j_boolean.erase(j_boolean.begin(), j_boolean.end());\n    j_number_integer.erase(j_number_integer.begin(), j_number_integer.end());\n    j_number_float.erase(j_number_float.begin(), j_number_float.end());\n    j_object.erase(j_object.find(\"two\"), j_object.end());\n    j_array.erase(j_array.begin() + 1, j_array.begin() + 3);\n    j_string.erase(j_string.begin(), j_string.end());\n\n    // print values\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nnull\nnull\n{\"one\":1}\n[1,8,16]\nnull\n
Example: (3) remove element from a JSON object given a key

The example shows the effect of erase() for different JSON types using an object key.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call erase()\n    auto count_one = j_object.erase(\"one\");\n    auto count_three = j_object.erase(\"three\");\n\n    // print values\n    std::cout << j_object << '\\n';\n    std::cout << count_one << \" \" << count_three << '\\n';\n}\n

Output:

{\"two\":2}\n1 0\n
Example: (4) remove element from a JSON object given a key using string_view

The example shows the effect of erase() for different JSON types using an object key.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call erase()\n    auto count_one = j_object.erase(\"one\"sv);\n    auto count_three = j_object.erase(\"three\"sv);\n\n    // print values\n    std::cout << j_object << '\\n';\n    std::cout << count_one << \" \" << count_three << '\\n';\n}\n

Output:

{\"two\":2}\n1 0\n
Example: (5) remove element from a JSON array given an index

The example shows the effect of erase() using an array index.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json j_array = {0, 1, 2, 3, 4, 5};\n\n    // call erase()\n    j_array.erase(2);\n\n    // print values\n    std::cout << j_array << '\\n';\n}\n

Output:

[0,1,3,4,5]\n
"},{"location":"api/basic_json/erase/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added support for binary types in version 3.8.0.
  2. Added in version 1.0.0. Added support for binary types in version 3.8.0.
  3. Added in version 1.0.0.
  4. Added in version 3.11.0.
  5. Added in version 1.0.0.
"},{"location":"api/basic_json/error_handler_t/","title":"nlohmann::basic_json::error_handler_t","text":"
enum class error_handler_t {\n    strict,\n    replace,\n    ignore\n};\n

This enumeration is used in the dump function to choose how to treat decoding errors while serializing a basic_json value. Three values are differentiated:

strict throw a type_error exception in case of invalid UTF-8 replace replace invalid UTF-8 sequences with U+FFFD (\ufffd REPLACEMENT CHARACTER) ignore ignore invalid UTF-8 sequences; all bytes are copied to the output unchanged"},{"location":"api/basic_json/error_handler_t/#examples","title":"Examples","text":"Example

The example below shows how the different values of the error_handler_t influence the behavior of dump when reading serializing an invalid UTF-8 sequence.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value with invalid UTF-8 byte sequence\n    json j_invalid = \"\u00e4\\xA9\u00fc\";\n    try\n    {\n        std::cout << j_invalid.dump() << std::endl;\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    std::cout << \"string with replaced invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::replace)\n              << \"\\nstring with ignored invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::ignore)\n              << '\\n';\n}\n

Output:

[json.exception.type_error.316] invalid UTF-8 byte at index 2: 0xA9\nstring with replaced invalid characters: \"\u00e4\ufffd\u00fc\"\nstring with ignored invalid characters: \"\u00e4\u00fc\"\n
"},{"location":"api/basic_json/error_handler_t/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.
"},{"location":"api/basic_json/exception/","title":"nlohmann::basic_json::exception","text":"
class exception : public std::exception;\n

This class is an extension of std::exception objects with a member id for exception ids. It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as \"wildcard\" to catch exceptions, see example below.

Subclasses:

  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/exception/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/exception/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/exception/#notes","title":"Notes","text":"

To have nothrow-copy-constructible exceptions, we internally use std::runtime_error which can cope with arbitrary-length error messages. Intermediate strings are built with static functions and then passed to the actual constructor.

"},{"location":"api/basic_json/exception/#examples","title":"Examples","text":"Example

The following code shows how arbitrary library exceptions can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for a non-existing key\n        json j = {{\"foo\", \"bar\"}};\n        json k = j.at(\"non-existing\");\n    }\n    catch (const json::exception& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.403] key 'non-existing' not found\nexception id: 403\n
"},{"location":"api/basic_json/exception/#see-also","title":"See also","text":"

List of exceptions

"},{"location":"api/basic_json/exception/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/find/","title":"nlohmann::basic_json::find","text":"
// (1)\niterator find(const typename object_t::key_type& key);\nconst_iterator find(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\niterator find(KeyType&& key);\ntemplate<typename KeyType>\nconst_iterator find(KeyType&& key) const;\n
  1. Finds an element in a JSON object with a key equivalent to key. If the element is not found or the JSON value is not an object, end() is returned.
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
"},{"location":"api/basic_json/find/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/find/#parameters","title":"Parameters","text":"key (in) key value of the element to search for."},{"location":"api/basic_json/find/#return-value","title":"Return value","text":"

Iterator to an element with a key equivalent to key. If no such element is found or the JSON value is not an object, a past-the-end iterator (see end()) is returned.

"},{"location":"api/basic_json/find/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/find/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/find/#notes","title":"Notes","text":"

This method always returns end() when executed on a JSON type that is not an object.

"},{"location":"api/basic_json/find/#examples","title":"Examples","text":"Example: (1) find object element by key

The example shows how find() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call find\n    auto it_two = j_object.find(\"two\");\n    auto it_three = j_object.find(\"three\");\n\n    // print values\n    std::cout << std::boolalpha;\n    std::cout << \"\\\"two\\\" was found: \" << (it_two != j_object.end()) << '\\n';\n    std::cout << \"value at key \\\"two\\\": \" << *it_two << '\\n';\n    std::cout << \"\\\"three\\\" was found: \" << (it_three != j_object.end()) << '\\n';\n}\n

Output:

\"two\" was found: true\nvalue at key \"two\": 2\n\"three\" was found: false\n
Example: (2) find object element by key using string_view

The example shows how find() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call find\n    auto it_two = j_object.find(\"two\"sv);\n    auto it_three = j_object.find(\"three\"sv);\n\n    // print values\n    std::cout << std::boolalpha;\n    std::cout << \"\\\"two\\\" was found: \" << (it_two != j_object.end()) << '\\n';\n    std::cout << \"value at key \\\"two\\\": \" << *it_two << '\\n';\n    std::cout << \"\\\"three\\\" was found: \" << (it_three != j_object.end()) << '\\n';\n}\n

Output:

\"two\" was found: true\nvalue at key \"two\": 2\n\"three\" was found: false\n
"},{"location":"api/basic_json/find/#see-also","title":"See also","text":"
  • contains checks whether a key exists
"},{"location":"api/basic_json/find/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 1.0.0. Changed to support comparable types in version 3.11.0.
"},{"location":"api/basic_json/flatten/","title":"nlohmann::basic_json::flatten","text":"
basic_json flatten() const;\n

The function creates a JSON object whose keys are JSON pointers (see RFC 6901) and whose values are all primitive (see is_primitive() for more information). The original JSON value can be restored using the unflatten() function.

"},{"location":"api/basic_json/flatten/#return-value","title":"Return value","text":"

an object that maps JSON pointers to primitive values

"},{"location":"api/basic_json/flatten/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/flatten/#complexity","title":"Complexity","text":"

Linear in the size the JSON value.

"},{"location":"api/basic_json/flatten/#notes","title":"Notes","text":"

Empty objects and arrays are flattened to null and will not be reconstructed correctly by the unflatten() function.

"},{"location":"api/basic_json/flatten/#examples","title":"Examples","text":"Example

The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // call flatten()\n    std::cout << std::setw(4) << j.flatten() << '\\n';\n}\n

Output:

{\n    \"/answer/everything\": 42,\n    \"/happy\": true,\n    \"/list/0\": 1,\n    \"/list/1\": 0,\n    \"/list/2\": 2,\n    \"/name\": \"Niels\",\n    \"/nothing\": null,\n    \"/object/currency\": \"USD\",\n    \"/object/value\": 42.99,\n    \"/pi\": 3.141\n}\n
"},{"location":"api/basic_json/flatten/#see-also","title":"See also","text":"
  • unflatten the reverse function
"},{"location":"api/basic_json/flatten/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/from_bjdata/","title":"nlohmann::basic_json::from_bjdata","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_bjdata(InputType&& i,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_bjdata(IteratorType first, IteratorType last,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the BJData (Binary JData) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_bjdata/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_bjdata/#parameters","title":"Parameters","text":"i (in) an input in BJData format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_bjdata/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_bjdata/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_bjdata/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if a parse error occurs
  • Throws parse_error.113 if a string could not be parsed successfully
"},{"location":"api/basic_json/from_bjdata/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_bjdata/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in BJData format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with BJData\n    json j = json::from_bjdata(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_bjdata/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/from_bson/","title":"nlohmann::basic_json::from_bson","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_bson(InputType&& i,\n                            const bool strict = true,\n                            const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_bson(IteratorType first, IteratorType last,\n                            const bool strict = true,\n                            const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the BSON (Binary JSON) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_bson/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_bson/#parameters","title":"Parameters","text":"i (in) an input in BSON format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_bson/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_bson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_bson/#exceptions","title":"Exceptions","text":"

Throws parse_error.114 if an unsupported BSON record type is encountered.

"},{"location":"api/basic_json/from_bson/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_bson/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in BSON format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x1b, 0x00, 0x00, 0x00, 0x08, 0x63, 0x6f, 0x6d,\n                                   0x70, 0x61, 0x63, 0x74, 0x00, 0x01, 0x10, 0x73,\n                                   0x63, 0x68, 0x65, 0x6d, 0x61, 0x00, 0x00, 0x00,\n                                   0x00, 0x00, 0x00\n                                  };\n\n    // deserialize it with BSON\n    json j = json::from_bson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_bson/#see-also","title":"See also","text":"
  • BSON specification
  • to_bson for the analogous serialization
  • from_cbor for the related CBOR format
  • from_msgpack for the related MessagePack format
  • from_ubjson for the related UBJSON format
"},{"location":"api/basic_json/from_bson/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.

Deprecation

  • Overload (2) replaces calls to from_bson with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_bson(ptr, len, ...); with from_bson(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_bson with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_bson({ptr, ptr+len}, ...); with from_bson(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_cbor/","title":"nlohmann::basic_json::from_cbor","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_cbor(InputType&& i,\n                            const bool strict = true,\n                            const bool allow_exceptions = true,\n                            const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error);\n\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_cbor(IteratorType first, IteratorType last,\n                            const bool strict = true,\n                            const bool allow_exceptions = true,\n                            const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error);\n

Deserializes a given input to a JSON value using the CBOR (Concise Binary Object Representation) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_cbor/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_cbor/#parameters","title":"Parameters","text":"i (in) an input in CBOR format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default) tag_handler (in) how to treat CBOR tags (optional, error by default); see cbor_tag_handler_t for more information"},{"location":"api/basic_json/from_cbor/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_cbor/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_cbor/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if unsupported features from CBOR were used in the given input or if the input is not valid CBOR
  • Throws parse_error.113 if a string was expected as map key, but not found
"},{"location":"api/basic_json/from_cbor/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_cbor/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in CBOR format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0xa2, 0x67, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xf5, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with CBOR\n    json j = json::from_cbor(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_cbor/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Parameter start_index since version 2.1.1.
  • Changed to consume input adapters, removed start_index parameter, and added strict parameter in version 3.0.0.
  • Added allow_exceptions parameter in version 3.2.0.
  • Added tag_handler parameter in version 3.9.0.

Deprecation

  • Overload (2) replaces calls to from_cbor with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_cbor(ptr, len, ...); with from_cbor(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_cbor with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_cbor({ptr, ptr+len}, ...); with from_cbor(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_msgpack/","title":"nlohmann::basic_json::from_msgpack","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_msgpack(InputType&& i,\n                               const bool strict = true,\n                               const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_msgpack(IteratorType first, IteratorType last,\n                               const bool strict = true,\n                               const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the MessagePack serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_msgpack/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_msgpack/#parameters","title":"Parameters","text":"i (in) an input in MessagePack format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_msgpack/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_msgpack/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_msgpack/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if unsupported features from MessagePack were used in the given input or if the input is not valid MessagePack
  • Throws parse_error.113 if a string was expected as map key, but not found
"},{"location":"api/basic_json/from_msgpack/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_msgpack/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in MessagePack format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x82, 0xa7, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xc3, 0xa6, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with MessagePack\n    json j = json::from_msgpack(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_msgpack/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Parameter start_index since version 2.1.1.
  • Changed to consume input adapters, removed start_index parameter, and added strict parameter in version 3.0.0.
  • Added allow_exceptions parameter in version 3.2.0.

Deprecation

  • Overload (2) replaces calls to from_msgpack with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_msgpack(ptr, len, ...); with from_msgpack(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_cbor with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_msgpack({ptr, ptr+len}, ...); with from_msgpack(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_ubjson/","title":"nlohmann::basic_json::from_ubjson","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_ubjson(InputType&& i,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_ubjson(IteratorType first, IteratorType last,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the UBJSON (Universal Binary JSON) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_ubjson/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_ubjson/#parameters","title":"Parameters","text":"i (in) an input in UBJSON format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_ubjson/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_ubjson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_ubjson/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if a parse error occurs
  • Throws parse_error.113 if a string could not be parsed successfully
"},{"location":"api/basic_json/from_ubjson/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_ubjson/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in UBJSON format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with UBJSON\n    json j = json::from_ubjson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_ubjson/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
  • Added allow_exceptions parameter in version 3.2.0.

Deprecation

  • Overload (2) replaces calls to from_ubjson with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_ubjson(ptr, len, ...); with from_ubjson(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_ubjson with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_ubjson({ptr, ptr+len}, ...); with from_ubjson(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/front/","title":"nlohmann::basic_json::front","text":"
reference front();\nconst_reference front() const;\n

Returns a reference to the first element in the container. For a JSON container c, the expression c.front() is equivalent to *c.begin().

"},{"location":"api/basic_json/front/#return-value","title":"Return value","text":"

In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.

"},{"location":"api/basic_json/front/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/front/#exceptions","title":"Exceptions","text":"

If the JSON value is null, exception invalid_iterator.214 is thrown.

"},{"location":"api/basic_json/front/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/front/#notes","title":"Notes","text":"

Precondition

The array or object must not be empty. Calling front on an empty array or object yields undefined behavior.

"},{"location":"api/basic_json/front/#examples","title":"Examples","text":"Example

The following code shows an example for front().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call front()\n    //std::cout << j_null.front() << '\\n';          // would throw\n    std::cout << j_boolean.front() << '\\n';\n    std::cout << j_number_integer.front() << '\\n';\n    std::cout << j_number_float.front() << '\\n';\n    std::cout << j_object.front() << '\\n';\n    //std::cout << j_object_empty.front() << '\\n';  // undefined behavior\n    std::cout << j_array.front() << '\\n';\n    //std::cout << j_array_empty.front() << '\\n';   // undefined behavior\n    std::cout << j_string.front() << '\\n';\n}\n

Output:

true\n17\n23.42\n1\n1\n\"Hello, world\"\n
"},{"location":"api/basic_json/front/#see-also","title":"See also","text":"
  • back to access the last element
"},{"location":"api/basic_json/front/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Adjusted code to return reference to binary values in version 3.8.0.
"},{"location":"api/basic_json/get/","title":"nlohmann::basic_json::get","text":"
// (1)\ntemplate<typename ValueType>\nValueType get() const noexcept(\n    noexcept(JSONSerializer<ValueType>::from_json(\n        std::declval<const basic_json_t&>(), std::declval<ValueType&>())));\n\n// (2)\ntemplate<typename BasicJsonType>\nBasicJsonType get() const;\n\n// (3)\ntemplate<typename PointerType>\nPointerType get_ptr();\n\ntemplate<typename PointerType>\nconstexpr const PointerType get_ptr() const noexcept;\n
  1. Explicit type conversion between the JSON value and a compatible value which is CopyConstructible and DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json() method.

    The function is equivalent to executing

    ValueType ret;\nJSONSerializer<ValueType>::from_json(*this, ret);\nreturn ret;\n

    This overload is chosen if:

    • ValueType is not basic_json,
    • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&), and
    • json_serializer<ValueType> does not have a from_json() method of the form ValueType from_json(const basic_json&)

    If the type is not CopyConstructible and not DefaultConstructible, the value is converted by calling the json_serializer<ValueType> from_json() method.

    The function is then equivalent to executing

    return JSONSerializer<ValueTypeCV>::from_json(*this);\n

    This overload is chosen if:

    • ValueType is not basic_json and
    • json_serializer<ValueType> has a from_json() method of the form ValueType from_json(const basic_json&)

    If json_serializer<ValueType> has both overloads of from_json(), the latter one is chosen.

  2. Overload for basic_json specializations. The function is equivalent to executing

    return *this;\n

  3. Explicit pointer access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get/#template-parameters","title":"Template parameters","text":"ValueType the value type to return BasicJsonType a specialization of basic_json PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Other types will not compile."},{"location":"api/basic_json/get/#return-value","title":"Return value","text":"
  1. copy of the JSON value, converted to ValueType
  2. a copy of *this, converted into BasicJsonType
  3. pointer to the internally stored JSON value if the requested pointer type fits to the JSON value; nullptr otherwise
"},{"location":"api/basic_json/get/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/get/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the pointee (overload 3) of the result yields an undefined state.

"},{"location":"api/basic_json/get/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    // use explicit conversions\n    auto v1 = json_types[\"boolean\"].template get<bool>();\n    auto v2 = json_types[\"number\"][\"integer\"].template get<int>();\n    auto v3 = json_types[\"number\"][\"integer\"].template get<short>();\n    auto v4 = json_types[\"number\"][\"floating-point\"].template get<float>();\n    auto v5 = json_types[\"number\"][\"floating-point\"].template get<int>();\n    auto v6 = json_types[\"string\"].template get<std::string>();\n    auto v7 = json_types[\"array\"].template get<std::vector<short>>();\n    auto v8 = json_types.template get<std::unordered_map<std::string, json>>();\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n
Example

The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a #cpp nullptr is returned if the value and the requested pointer type does not match.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting pointers\n    auto p1 = value.template get<const json::number_integer_t*>();\n    auto p2 = value.template get<json::number_integer_t*>();\n    auto p3 = value.template get<json::number_integer_t* const>();\n    auto p4 = value.template get<const json::number_integer_t* const>();\n    auto p5 = value.template get<json::number_float_t*>();\n\n    // print the pointees\n    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\\n';\n    std::cout << std::boolalpha << (p5 == nullptr) << '\\n';\n}\n

Output:

17 17 17 17\ntrue\n
"},{"location":"api/basic_json/get/#version-history","title":"Version history","text":"
  1. Since version 2.1.0.
  2. Since version 2.1.0. Extended to work with other specializations of basic_json in version 3.2.0.
  3. Since version 1.0.0.
"},{"location":"api/basic_json/get_allocator/","title":"nlohmann::basic_json::get_allocator","text":"
static allocator_type get_allocator();\n

Returns the allocator associated with the container.

"},{"location":"api/basic_json/get_allocator/#return-value","title":"Return value","text":"

associated allocator

"},{"location":"api/basic_json/get_allocator/#examples","title":"Examples","text":"Example

The example shows how get_allocator() is used to created json values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    auto alloc = json::get_allocator();\n    using traits_t = std::allocator_traits<decltype(alloc)>;\n\n    json* j = traits_t::allocate(alloc, 1);\n    traits_t::construct(alloc, j, \"Hello, world!\");\n\n    std::cout << *j << std::endl;\n\n    traits_t::destroy(alloc, j);\n    traits_t::deallocate(alloc, j, 1);\n}\n

Output:

\"Hello, world!\"\n
"},{"location":"api/basic_json/get_allocator/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/get_binary/","title":"nlohmann::basic_json::get_binary","text":"
binary_t& get_binary();\n\nconst binary_t& get_binary() const;\n

Returns a reference to the stored binary value.

"},{"location":"api/basic_json/get_binary/#return-value","title":"Return value","text":"

Reference to binary value.

"},{"location":"api/basic_json/get_binary/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/get_binary/#exceptions","title":"Exceptions","text":"

Throws type_error.302 if the value is not binary

"},{"location":"api/basic_json/get_binary/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_binary/#examples","title":"Examples","text":"Example

The following code shows how to query a binary value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary vector\n    std::vector<std::uint8_t> vec = {0xCA, 0xFE, 0xBA, 0xBE};\n\n    // create a binary JSON value with subtype 42\n    json j = json::binary(vec, 42);\n\n    // output type and subtype\n    std::cout << \"type: \" << j.type_name() << \", subtype: \" << j.get_binary().subtype() << std::endl;\n}\n

Output:

type: binary, subtype: 42\n
"},{"location":"api/basic_json/get_binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/get_ptr/","title":"nlohmann::basic_json::get_ptr","text":"
template<typename PointerType>\nPointerType get_ptr() noexcept;\n\ntemplate<typename PointerType>\nconstexpr const PointerType get_ptr() const noexcept;\n

Implicit pointer access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get_ptr/#template-parameters","title":"Template parameters","text":"PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Other types will not compile."},{"location":"api/basic_json/get_ptr/#return-value","title":"Return value","text":"

pointer to the internally stored JSON value if the requested pointer type fits to the JSON value; nullptr otherwise

"},{"location":"api/basic_json/get_ptr/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/get_ptr/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_ptr/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the pointee of the result yields an undefined state.

"},{"location":"api/basic_json/get_ptr/#examples","title":"Examples","text":"Example

The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting pointers\n    auto p1 = value.get_ptr<const json::number_integer_t*>();\n    auto p2 = value.get_ptr<json::number_integer_t*>();\n    auto p3 = value.get_ptr<json::number_integer_t* const>();\n    auto p4 = value.get_ptr<const json::number_integer_t* const>();\n    auto p5 = value.get_ptr<json::number_float_t*>();\n\n    // print the pointees\n    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\\n';\n    std::cout << std::boolalpha << (p5 == nullptr) << '\\n';\n}\n

Output:

17 17 17 17\ntrue\n
"},{"location":"api/basic_json/get_ptr/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to binary types in version 3.8.0.
"},{"location":"api/basic_json/get_ref/","title":"nlohmann::basic_json::get_ref","text":"
template<typename ReferenceType>\nReferenceType get_ref();\n\ntemplate<typename ReferenceType>\nconst ReferenceType get_ref() const;\n

Implicit reference access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get_ref/#template-parameters","title":"Template parameters","text":"ReferenceType reference type; must be a reference to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Enforced by a static assertion."},{"location":"api/basic_json/get_ref/#return-value","title":"Return value","text":"

reference to the internally stored JSON value if the requested reference type fits to the JSON value; throws type_error.303 otherwise

"},{"location":"api/basic_json/get_ref/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/get_ref/#exceptions","title":"Exceptions","text":"

Throws type_error.303 if the requested reference type does not match the stored JSON value type; example: \"incompatible ReferenceType for get_ref, actual type is binary\".

"},{"location":"api/basic_json/get_ref/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_ref/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the referee of the result yields an undefined state.

"},{"location":"api/basic_json/get_ref/#examples","title":"Examples","text":"Example

The example shows several calls to get_ref().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting references\n    auto r1 = value.get_ref<const json::number_integer_t&>();\n    auto r2 = value.get_ref<json::number_integer_t&>();\n\n    // print the values\n    std::cout << r1 << ' ' << r2 << '\\n';\n\n    // incompatible type throws exception\n    try\n    {\n        auto r3 = value.get_ref<json::number_float_t&>();\n    }\n    catch (const json::type_error& ex)\n    {\n        std::cout << ex.what() << '\\n';\n    }\n}\n

Output:

17 17\n[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number\n
"},{"location":"api/basic_json/get_ref/#version-history","title":"Version history","text":"
  • Added in version 1.1.0.
  • Extended to binary types in version 3.8.0.
"},{"location":"api/basic_json/get_to/","title":"nlohmann::basic_json::get_to","text":"
template<typename ValueType>\nValueType& get_to(ValueType& v) const noexcept(\n    noexcept(JSONSerializer<ValueType>::from_json(\n        std::declval<const basic_json_t&>(), v)));\n

Explicit type conversion between the JSON value and a compatible value. The value is filled into the input parameter by calling the json_serializer<ValueType> from_json() method.

The function is equivalent to executing

ValueType v;\nJSONSerializer<ValueType>::from_json(*this, v);\n

This overload is chosen if:

  • ValueType is not basic_json,
  • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&)
"},{"location":"api/basic_json/get_to/#template-parameters","title":"Template parameters","text":"ValueType the value type to return"},{"location":"api/basic_json/get_to/#return-value","title":"Return value","text":"

the input parameter, allowing chaining calls

"},{"location":"api/basic_json/get_to/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/get_to/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as #cpp std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    bool v1;\n    int v2;\n    short v3;\n    float v4;\n    int v5;\n    std::string v6;\n    std::vector<short> v7;\n    std::unordered_map<std::string, json> v8;\n\n    // use explicit conversions\n    json_types[\"boolean\"].get_to(v1);\n    json_types[\"number\"][\"integer\"].get_to(v2);\n    json_types[\"number\"][\"integer\"].get_to(v3);\n    json_types[\"number\"][\"floating-point\"].get_to(v4);\n    json_types[\"number\"][\"floating-point\"].get_to(v5);\n    json_types[\"string\"].get_to(v6);\n    json_types[\"array\"].get_to(v7);\n    json_types.get_to(v8);\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n
"},{"location":"api/basic_json/get_to/#version-history","title":"Version history","text":"
  • Since version 3.3.0.
"},{"location":"api/basic_json/input_format_t/","title":"nlohmann::basic_json::input_format_t","text":"
enum class input_format_t {\n    json,\n    cbor,\n    msgpack,\n    ubjson,\n    bson,\n    bjdata\n};\n

This enumeration is used in the sax_parse function to choose the input format to parse:

json JSON (JavaScript Object Notation) cbor CBOR (Concise Binary Object Representation) msgpack MessagePack ubjson UBJSON (Universal Binary JSON) bson BSON (Binary JSON) bjdata BJData (Binary JData)"},{"location":"api/basic_json/input_format_t/#examples","title":"Examples","text":"Example

The example below shows how an input_format_t enum value is passed to sax_parse to set the input format to CBOR.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // CBOR byte string\n    std::vector<std::uint8_t> vec = {{0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse CBOR\n    bool result = json::sax_parse(vec, &sec, json::input_format_t::cbor);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

binary(val=[...])\n\nresult: true\n
"},{"location":"api/basic_json/input_format_t/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/basic_json/insert/","title":"nlohmann::basic_json::insert","text":"
// (1)\niterator insert(const_iterator pos, const basic_json& val);\niterator insert(const_iterator pos, basic_json&& val);\n\n// (2)\niterator insert(const_iterator pos, size_type cnt, const basic_json& val);\n\n// (3)\niterator insert(const_iterator pos, const_iterator first, const_iterator last);\n\n// (4)\niterator insert(const_iterator pos, initializer_list_t ilist);\n\n// (5)\nvoid insert(const_iterator first, const_iterator last);\n
  1. Inserts element val into array before iterator pos.
  2. Inserts cnt copies of val into array before iterator pos.
  3. Inserts elements from range [first, last) into array before iterator pos.
  4. Inserts elements from initializer list ilist into array before iterator pos.
  5. Inserts elements from range [first, last) into object.
"},{"location":"api/basic_json/insert/#parameters","title":"Parameters","text":"pos (in) iterator before which the content will be inserted; may be the end() iterator val (in) value to insert cnt (in) number of copies of val to insert first (in) begin of the range of elements to insert last (in) end of the range of elements to insert ilist (in) initializer list to insert the values from"},{"location":"api/basic_json/insert/#return-value","title":"Return value","text":"
  1. iterator pointing to the inserted val.
  2. iterator pointing to the first element inserted, or pos if cnt==0
  3. iterator pointing to the first element inserted, or pos if first==last
  4. iterator pointing to the first element inserted, or pos if ilist is empty
  5. (none)
"},{"location":"api/basic_json/insert/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/insert/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  2. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  3. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
    • Throws invalid_iterator.211 if first or last are iterators into container for which insert is called; example: \"passed iterators may not belong to container\"
  4. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  5. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than objects; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
"},{"location":"api/basic_json/insert/#complexity","title":"Complexity","text":"
  1. Constant plus linear in the distance between pos and end of the container.
  2. Linear in cnt plus linear in the distance between pos and end of the container.
  3. Linear in std::distance(first, last) plus linear in the distance between pos and end of the container.
  4. Linear in ilist.size() plus linear in the distance between pos and end of the container.
  5. Logarithmic: O(N*log(size() + N)), where N is the number of elements to insert.
"},{"location":"api/basic_json/insert/#examples","title":"Examples","text":"Example (1): insert element into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert number 10 before number 3\n    auto new_pos = v.insert(v.begin() + 2, 10);\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

10\n[1,2,10,3,4]\n
Example (2): insert copies of element into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert number 7 copies of number 7 before number 3\n    auto new_pos = v.insert(v.begin() + 2, 7, 7);\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

7\n[1,2,7,7,7,7,7,7,7,3,4]\n
Example (3): insert range of elements into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // create a JSON array to copy values from\n    json v2 = {\"one\", \"two\", \"three\", \"four\"};\n\n    // insert range from v2 before the end of array v\n    auto new_pos = v.insert(v.end(), v2.begin(), v2.end());\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

\"one\"\n[1,2,3,4,\"one\",\"two\",\"three\",\"four\"]\n
Example (4): insert elements from initializer list into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert range from v2 before the end of array v\n    auto new_pos = v.insert(v.end(), {7, 8, 9});\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

7\n[1,2,3,4,7,8,9]\n
Example (5): insert range of elements into object

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create two JSON objects\n    json j1 = {{\"one\", \"eins\"}, {\"two\", \"zwei\"}};\n    json j2 = {{\"eleven\", \"elf\"}, {\"seventeen\", \"siebzehn\"}};\n\n    // output objects\n    std::cout << j1 << '\\n';\n    std::cout << j2 << '\\n';\n\n    // insert range from j2 to j1\n    j1.insert(j2.begin(), j2.end());\n\n    // output result of insert call\n    std::cout << j1 << '\\n';\n}\n

Output:

{\"one\":\"eins\",\"two\":\"zwei\"}\n{\"eleven\":\"elf\",\"seventeen\":\"siebzehn\"}\n{\"eleven\":\"elf\",\"one\":\"eins\",\"seventeen\":\"siebzehn\",\"two\":\"zwei\"}\n
"},{"location":"api/basic_json/insert/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0.
  3. Added in version 1.0.0.
  4. Added in version 1.0.0.
  5. Added in version 3.0.0.
"},{"location":"api/basic_json/invalid_iterator/","title":"nlohmann::basic_json::invalid_iterator","text":"
class invalid_iterator : public exception;\n

This exception is thrown if iterators passed to a library function do not match the expected semantics.

Exceptions have ids 2xx (see list of iterator errors).

"},{"location":"api/basic_json/invalid_iterator/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/invalid_iterator/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/invalid_iterator/#examples","title":"Examples","text":"Example

The following code shows how a invalid_iterator exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling iterator::key() on non-object iterator\n        json j = \"string\";\n        json::iterator it = j.begin();\n        auto k = it.key();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.invalid_iterator.207] cannot use key() for non-object iterators\nexception id: 207\n
"},{"location":"api/basic_json/invalid_iterator/#see-also","title":"See also","text":"
  • List of iterator errors
  • parse_error for exceptions indicating a parse error
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/invalid_iterator/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/is_array/","title":"nlohmann::basic_json::is_array","text":"
constexpr bool is_array() const noexcept;\n

This function returns true if and only if the JSON value is an array.

"},{"location":"api/basic_json/is_array/#return-value","title":"Return value","text":"

true if type is an array, false otherwise.

"},{"location":"api/basic_json/is_array/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_array/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_array/#examples","title":"Examples","text":"Example

The following code exemplifies is_array() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_array()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_array() << '\\n';\n    std::cout << j_boolean.is_array() << '\\n';\n    std::cout << j_number_integer.is_array() << '\\n';\n    std::cout << j_number_unsigned_integer.is_array() << '\\n';\n    std::cout << j_number_float.is_array() << '\\n';\n    std::cout << j_object.is_array() << '\\n';\n    std::cout << j_array.is_array() << '\\n';\n    std::cout << j_string.is_array() << '\\n';\n    std::cout << j_binary.is_array() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\n
"},{"location":"api/basic_json/is_array/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_binary/","title":"nlohmann::basic_json::is_binary","text":"
constexpr bool is_binary() const noexcept;\n

This function returns true if and only if the JSON value is binary array.

"},{"location":"api/basic_json/is_binary/#return-value","title":"Return value","text":"

true if type is binary, false otherwise.

"},{"location":"api/basic_json/is_binary/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_binary/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_binary/#examples","title":"Examples","text":"Example

The following code exemplifies is_binary() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_binary()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_binary() << '\\n';\n    std::cout << j_boolean.is_binary() << '\\n';\n    std::cout << j_number_integer.is_binary() << '\\n';\n    std::cout << j_number_unsigned_integer.is_binary() << '\\n';\n    std::cout << j_number_float.is_binary() << '\\n';\n    std::cout << j_object.is_binary() << '\\n';\n    std::cout << j_array.is_binary() << '\\n';\n    std::cout << j_string.is_binary() << '\\n';\n    std::cout << j_binary.is_binary() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\n
"},{"location":"api/basic_json/is_binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/is_boolean/","title":"nlohmann::basic_json::is_boolean","text":"
constexpr bool is_boolean() const noexcept;\n

This function returns true if and only if the JSON value is true or false.

"},{"location":"api/basic_json/is_boolean/#return-value","title":"Return value","text":"

true if type is boolean, false otherwise.

"},{"location":"api/basic_json/is_boolean/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_boolean/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_boolean/#examples","title":"Examples","text":"Example

The following code exemplifies is_boolean() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_boolean()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_boolean() << '\\n';\n    std::cout << j_boolean.is_boolean() << '\\n';\n    std::cout << j_number_integer.is_boolean() << '\\n';\n    std::cout << j_number_unsigned_integer.is_boolean() << '\\n';\n    std::cout << j_number_float.is_boolean() << '\\n';\n    std::cout << j_object.is_boolean() << '\\n';\n    std::cout << j_array.is_boolean() << '\\n';\n    std::cout << j_string.is_boolean() << '\\n';\n    std::cout << j_binary.is_boolean() << '\\n';\n}\n

Output:

false\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_boolean/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_discarded/","title":"nlohmann::basic_json::is_discarded","text":"
constexpr bool is_discarded() const noexcept;\n

This function returns true for a JSON value if either:

  • the value was discarded during parsing with a callback function (see parser_callback_t), or
  • the value is the result of parsing invalid JSON with parameter allow_exceptions set to false; see parse for more information.
"},{"location":"api/basic_json/is_discarded/#return-value","title":"Return value","text":"

true if type is discarded, false otherwise.

"},{"location":"api/basic_json/is_discarded/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_discarded/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_discarded/#notes","title":"Notes","text":"

Comparisons

Discarded values are never compared equal with operator==. That is, checking whether a JSON value j is discarded will only work via:

j.is_discarded()\n

because

j == json::value_t::discarded\n

will always be false.

Removal during parsing with callback functions

When a value is discarded by a callback function (see parser_callback_t) during parsing, then it is removed when it is part of a structured value. For instance, if the second value of an array is discarded, instead of [null, discarded, false], the array [null, false] is returned. Only if the top-level value is discarded, the return value of the parse call is discarded.

This function will always be false for JSON values after parsing. That is, discarded values can only occur during parsing, but will be removed when inside a structured value or replaced by null in other cases.

"},{"location":"api/basic_json/is_discarded/#examples","title":"Examples","text":"Example

The following code exemplifies is_discarded() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_discarded()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_discarded() << '\\n';\n    std::cout << j_boolean.is_discarded() << '\\n';\n    std::cout << j_number_integer.is_discarded() << '\\n';\n    std::cout << j_number_unsigned_integer.is_discarded() << '\\n';\n    std::cout << j_number_float.is_discarded() << '\\n';\n    std::cout << j_object.is_discarded() << '\\n';\n    std::cout << j_array.is_discarded() << '\\n';\n    std::cout << j_string.is_discarded() << '\\n';\n    std::cout << j_binary.is_discarded() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_discarded/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_null/","title":"nlohmann::basic_json::is_null","text":"
constexpr bool is_null() const noexcept;\n

This function returns true if and only if the JSON value is null.

"},{"location":"api/basic_json/is_null/#return-value","title":"Return value","text":"

true if type is null, false otherwise.

"},{"location":"api/basic_json/is_null/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_null/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_null/#examples","title":"Examples","text":"Example

The following code exemplifies is_null() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_null()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_null() << '\\n';\n    std::cout << j_boolean.is_null() << '\\n';\n    std::cout << j_number_integer.is_null() << '\\n';\n    std::cout << j_number_unsigned_integer.is_null() << '\\n';\n    std::cout << j_number_float.is_null() << '\\n';\n    std::cout << j_object.is_null() << '\\n';\n    std::cout << j_array.is_null() << '\\n';\n    std::cout << j_string.is_null() << '\\n';\n    std::cout << j_binary.is_null() << '\\n';\n}\n

Output:

true\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_null/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_number/","title":"nlohmann::basic_json::is_number","text":"
constexpr bool is_number() const noexcept;\n

This function returns true if and only if the JSON value is a number. This includes both integer (signed and unsigned) and floating-point values.

"},{"location":"api/basic_json/is_number/#return-value","title":"Return value","text":"

true if type is number (regardless whether integer, unsigned integer or floating-type), false otherwise.

"},{"location":"api/basic_json/is_number/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_number() const noexcept\n{\n    return is_number_integer() || is_number_float();\n}\n
"},{"location":"api/basic_json/is_number/#examples","title":"Examples","text":"Example

The following code exemplifies is_number() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number() << '\\n';\n    std::cout << j_boolean.is_number() << '\\n';\n    std::cout << j_number_integer.is_number() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number() << '\\n';\n    std::cout << j_number_float.is_number() << '\\n';\n    std::cout << j_object.is_number() << '\\n';\n    std::cout << j_array.is_number() << '\\n';\n    std::cout << j_string.is_number() << '\\n';\n    std::cout << j_binary.is_number() << '\\n';\n}\n

Output:

false\nfalse\ntrue\ntrue\ntrue\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number/#see-also","title":"See also","text":"
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_unsigned() check if value is an unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to also return true for unsigned integers in 2.0.0.
"},{"location":"api/basic_json/is_number_float/","title":"nlohmann::basic_json::is_number_float","text":"
constexpr bool is_number_float() const noexcept;\n

This function returns true if and only if the JSON value is a floating-point number. This excludes signed and unsigned integer values.

"},{"location":"api/basic_json/is_number_float/#return-value","title":"Return value","text":"

true if type is a floating-point number, false otherwise.

"},{"location":"api/basic_json/is_number_float/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_float/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_float/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_float() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_float()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_float() << '\\n';\n    std::cout << j_boolean.is_number_float() << '\\n';\n    std::cout << j_number_integer.is_number_float() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_float() << '\\n';\n    std::cout << j_number_float.is_number_float() << '\\n';\n    std::cout << j_object.is_number_float() << '\\n';\n    std::cout << j_array.is_number_float() << '\\n';\n    std::cout << j_string.is_number_float() << '\\n';\n    std::cout << j_binary.is_number_float() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_float/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_unsigned() check if value is an unsigned integer number
"},{"location":"api/basic_json/is_number_float/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_number_integer/","title":"nlohmann::basic_json::is_number_integer","text":"
constexpr bool is_number_integer() const noexcept;\n

This function returns true if and only if the JSON value is a signed or unsigned integer number. This excludes floating-point values.

"},{"location":"api/basic_json/is_number_integer/#return-value","title":"Return value","text":"

true if type is an integer or unsigned integer number, false otherwise.

"},{"location":"api/basic_json/is_number_integer/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_integer/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_integer/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_integer() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_integer()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_integer() << '\\n';\n    std::cout << j_boolean.is_number_integer() << '\\n';\n    std::cout << j_number_integer.is_number_integer() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_integer() << '\\n';\n    std::cout << j_number_float.is_number_integer() << '\\n';\n    std::cout << j_object.is_number_integer() << '\\n';\n    std::cout << j_array.is_number_integer() << '\\n';\n    std::cout << j_string.is_number_integer() << '\\n';\n    std::cout << j_binary.is_number_integer() << '\\n';\n}\n

Output:

false\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_integer/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_unsigned() check if value is an unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number_integer/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to also return true for unsigned integers in 2.0.0.
"},{"location":"api/basic_json/is_number_unsigned/","title":"nlohmann::basic_json::is_number_unsigned","text":"
constexpr bool is_number_unsigned() const noexcept;\n

This function returns true if and only if the JSON value is an unsigned integer number. This excludes floating-point and signed integer values.

"},{"location":"api/basic_json/is_number_unsigned/#return-value","title":"Return value","text":"

true if type is an unsigned integer number, false otherwise.

"},{"location":"api/basic_json/is_number_unsigned/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_unsigned/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_unsigned/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_unsigned() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_unsigned()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_unsigned() << '\\n';\n    std::cout << j_boolean.is_number_unsigned() << '\\n';\n    std::cout << j_number_integer.is_number_unsigned() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_unsigned() << '\\n';\n    std::cout << j_number_float.is_number_unsigned() << '\\n';\n    std::cout << j_object.is_number_unsigned() << '\\n';\n    std::cout << j_array.is_number_unsigned() << '\\n';\n    std::cout << j_string.is_number_unsigned() << '\\n';\n    std::cout << j_binary.is_number_unsigned() << '\\n';\n}\n

Output:

false\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_unsigned/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number_unsigned/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/is_object/","title":"nlohmann::basic_json::is_object","text":"
constexpr bool is_object() const noexcept;\n

This function returns true if and only if the JSON value is an object.

"},{"location":"api/basic_json/is_object/#return-value","title":"Return value","text":"

true if type is an object, false otherwise.

"},{"location":"api/basic_json/is_object/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_object/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_object/#examples","title":"Examples","text":"Example

The following code exemplifies is_object() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_object()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_object() << '\\n';\n    std::cout << j_boolean.is_object() << '\\n';\n    std::cout << j_number_integer.is_object() << '\\n';\n    std::cout << j_number_unsigned_integer.is_object() << '\\n';\n    std::cout << j_number_float.is_object() << '\\n';\n    std::cout << j_object.is_object() << '\\n';\n    std::cout << j_array.is_object() << '\\n';\n    std::cout << j_string.is_object() << '\\n';\n    std::cout << j_binary.is_object() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_object/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_primitive/","title":"nlohmann::basic_json::is_primitive","text":"
constexpr bool is_primitive() const noexcept;\n

This function returns true if and only if the JSON type is primitive (string, number, boolean, null, binary).

"},{"location":"api/basic_json/is_primitive/#return-value","title":"Return value","text":"

true if type is primitive (string, number, boolean, null, or binary), false otherwise.

"},{"location":"api/basic_json/is_primitive/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_primitive/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_primitive/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_primitive() const noexcept\n{\n    return is_null() || is_string() || is_boolean() || is_number() || is_binary();\n}\n
"},{"location":"api/basic_json/is_primitive/#notes","title":"Notes","text":"

The term primitive stems from RFC 8259:

JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

This library extends primitive types to binary types, because binary types are roughly comparable to strings. Hence, is_primitive() returns true for binary values.

"},{"location":"api/basic_json/is_primitive/#examples","title":"Examples","text":"Example

The following code exemplifies is_primitive() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_primitive()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_primitive() << '\\n';\n    std::cout << j_boolean.is_primitive() << '\\n';\n    std::cout << j_number_integer.is_primitive() << '\\n';\n    std::cout << j_number_unsigned_integer.is_primitive() << '\\n';\n    std::cout << j_number_float.is_primitive() << '\\n';\n    std::cout << j_object.is_primitive() << '\\n';\n    std::cout << j_array.is_primitive() << '\\n';\n    std::cout << j_string.is_primitive() << '\\n';\n    std::cout << j_binary.is_primitive() << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\nfalse\nfalse\ntrue\ntrue\n
"},{"location":"api/basic_json/is_primitive/#see-also","title":"See also","text":"
  • is_structured() returns whether JSON value is structured
  • is_null() returns whether JSON value is null
  • is_string() returns whether JSON value is a string
  • is_boolean() returns whether JSON value is a boolean
  • is_number() returns whether JSON value is a number
  • is_binary() returns whether JSON value is a binary array
"},{"location":"api/basic_json/is_primitive/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return true for binary types in version 3.8.0.
"},{"location":"api/basic_json/is_string/","title":"nlohmann::basic_json::is_string","text":"
constexpr bool is_string() const noexcept;\n

This function returns true if and only if the JSON value is a string.

"},{"location":"api/basic_json/is_string/#return-value","title":"Return value","text":"

true if type is a string, false otherwise.

"},{"location":"api/basic_json/is_string/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_string/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_string/#examples","title":"Examples","text":"Example

The following code exemplifies is_string() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_string()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_string() << '\\n';\n    std::cout << j_boolean.is_string() << '\\n';\n    std::cout << j_number_integer.is_string() << '\\n';\n    std::cout << j_number_unsigned_integer.is_string() << '\\n';\n    std::cout << j_number_float.is_string() << '\\n';\n    std::cout << j_object.is_string() << '\\n';\n    std::cout << j_array.is_string() << '\\n';\n    std::cout << j_string.is_string() << '\\n';\n    std::cout << j_binary.is_string() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\n
"},{"location":"api/basic_json/is_string/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_structured/","title":"nlohmann::basic_json::is_structured","text":"
constexpr bool is_structured() const noexcept;\n

This function returns true if and only if the JSON type is structured (array or object).

"},{"location":"api/basic_json/is_structured/#return-value","title":"Return value","text":"

true if type is structured (array or object), false otherwise.

"},{"location":"api/basic_json/is_structured/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_structured/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_structured/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_primitive() const noexcept\n{\n    return is_array() || is_object();\n}\n
"},{"location":"api/basic_json/is_structured/#notes","title":"Notes","text":"

The term structured stems from RFC 8259:

JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

Note that though strings are containers in C++, they are treated as primitive values in JSON.

"},{"location":"api/basic_json/is_structured/#examples","title":"Examples","text":"Example

The following code exemplifies is_structured() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_structured()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_structured() << '\\n';\n    std::cout << j_boolean.is_structured() << '\\n';\n    std::cout << j_number_integer.is_structured() << '\\n';\n    std::cout << j_number_unsigned_integer.is_structured() << '\\n';\n    std::cout << j_number_float.is_structured() << '\\n';\n    std::cout << j_object.is_structured() << '\\n';\n    std::cout << j_array.is_structured() << '\\n';\n    std::cout << j_string.is_structured() << '\\n';\n    std::cout << j_binary.is_structured() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\n
"},{"location":"api/basic_json/is_structured/#see-also","title":"See also","text":"
  • is_primitive() returns whether JSON value is primitive
  • is_array() returns whether value is an array
  • is_object() returns whether value is an object
"},{"location":"api/basic_json/is_structured/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/items/","title":"nlohmann::basic_json::items","text":"
iteration_proxy<iterator> items() noexcept;\niteration_proxy<const_iterator> items() const noexcept;\n

This function allows accessing iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.

For loop without items() function:

for (auto it = j_object.begin(); it != j_object.end(); ++it)\n{\n    std::cout << \"key: \" << it.key() << \", value:\" << it.value() << '\\n';\n}\n

Range-based for loop without items() function:

for (auto it : j_object)\n{\n    // \"it\" is of type json::reference and has no key() member\n    std::cout << \"value: \" << it << '\\n';\n}\n

Range-based for loop with items() function:

for (auto& el : j_object.items())\n{\n    std::cout << \"key: \" << el.key() << \", value:\" << el.value() << '\\n';\n}\n

The items() function also allows using structured bindings (C++17):

for (auto& [key, val] : j_object.items())\n{\n    std::cout << \"key: \" << key << \", value:\" << val << '\\n';\n}\n
"},{"location":"api/basic_json/items/#return-value","title":"Return value","text":"

iteration proxy object wrapping the current value with an interface to use in range-based for loops

"},{"location":"api/basic_json/items/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/items/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/items/#notes","title":"Notes","text":"

When iterating over an array, key() will return the index of the element as string (see example). For primitive types (e.g., numbers), key() returns an empty string.

Lifetime issues

Using items() on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.

"},{"location":"api/basic_json/items/#examples","title":"Examples","text":"Example

The following code shows an example for items().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n\n    // example for an object\n    for (auto& x : j_object.items())\n    {\n        std::cout << \"key: \" << x.key() << \", value: \" << x.value() << '\\n';\n    }\n\n    // example for an array\n    for (auto& x : j_array.items())\n    {\n        std::cout << \"key: \" << x.key() << \", value: \" << x.value() << '\\n';\n    }\n}\n

Output:

key: one, value: 1\nkey: two, value: 2\nkey: 0, value: 1\nkey: 1, value: 2\nkey: 2, value: 4\nkey: 3, value: 8\nkey: 4, value: 16\n
"},{"location":"api/basic_json/items/#version-history","title":"Version history","text":"
  • Added iterator_wrapper in version 3.0.0.
  • Added items and deprecated iterator_wrapper in version 3.1.0.
  • Added structured binding support in version 3.5.0.

Deprecation

This function replaces the static function iterator_wrapper which was introduced in version 1.0.0, but has been deprecated in version 3.1.0. Function iterator_wrapper will be removed in version 4.0.0. Please replace all occurrences of iterator_wrapper(j) with j.items().

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/json_base_class_t/","title":"nlohmann::basic_json::json_base_class_t","text":"
using json_base_class_t = detail::json_base_class<CustomBaseClass>;\n

The base class used to inject custom functionality into each instance of basic_json. Examples of such functionality might be metadata, additional member functions (e.g., visitors), or other application-specific code.

"},{"location":"api/basic_json/json_base_class_t/#template-parameters","title":"Template parameters","text":"CustomBaseClass the base class to be added to basic_json"},{"location":"api/basic_json/json_base_class_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/json_base_class_t/#default-type","title":"Default type","text":"

The default value for CustomBaseClass is void. In this case an empty base class is used and no additional functionality is injected.

"},{"location":"api/basic_json/json_base_class_t/#limitations","title":"Limitations","text":"

The type CustomBaseClass has to be a default-constructible class. basic_json only supports copy/move construction/assignment if CustomBaseClass does so as well.

"},{"location":"api/basic_json/json_base_class_t/#examples","title":"Examples","text":"Example

The following code shows how to inject custom data and methods for each node.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nclass visitor_adaptor_with_metadata\n{\n  public:\n    template <class Fnc>\n    void visit(const Fnc& fnc) const;\n\n    int metadata = 42;\n  private:\n    template <class Ptr, class Fnc>\n    void do_visit(const Ptr& ptr, const Fnc& fnc) const;\n};\n\nusing json = nlohmann::basic_json <\n             std::map,\n             std::vector,\n             std::string,\n             bool,\n             std::int64_t,\n             std::uint64_t,\n             double,\n             std::allocator,\n             nlohmann::adl_serializer,\n             std::vector<std::uint8_t>,\n             visitor_adaptor_with_metadata\n             >;\n\ntemplate <class Fnc>\nvoid visitor_adaptor_with_metadata::visit(const Fnc& fnc) const\n{\n    do_visit(json::json_pointer{}, fnc);\n}\n\ntemplate <class Ptr, class Fnc>\nvoid visitor_adaptor_with_metadata::do_visit(const Ptr& ptr, const Fnc& fnc) const\n{\n    using value_t = nlohmann::detail::value_t;\n    const json& j = *static_cast<const json*>(this);\n    switch (j.type())\n    {\n        case value_t::object:\n            fnc(ptr, j);\n            for (const auto& entry : j.items())\n            {\n                entry.value().do_visit(ptr / entry.key(), fnc);\n            }\n            break;\n        case value_t::array:\n            fnc(ptr, j);\n            for (std::size_t i = 0; i < j.size(); ++i)\n            {\n                j.at(i).do_visit(ptr / std::to_string(i), fnc);\n            }\n            break;\n        case value_t::null:\n        case value_t::string:\n        case value_t::boolean:\n        case value_t::number_integer:\n        case value_t::number_unsigned:\n        case value_t::number_float:\n        case value_t::binary:\n            fnc(ptr, j);\n            break;\n        case value_t::discarded:\n        default:\n            break;\n    }\n}\n\nint main()\n{\n    // create a json object\n    json j;\n    j[\"null\"];\n    j[\"object\"][\"uint\"] = 1U;\n    j[\"object\"].metadata = 21;\n\n    // visit and output\n    j.visit(\n        [&](const json::json_pointer & p,\n            const json & j)\n    {\n        std::cout << (p.empty() ? std::string{\"/\"} : p.to_string())\n                  << \" - metadata = \" << j.metadata << \" -> \" << j.dump() << '\\n';\n    });\n}\n

Output:

/ - metadata = 42 -> {\"null\":null,\"object\":{\"uint\":1}}\n/null - metadata = 42 -> null\n/object - metadata = 21 -> {\"uint\":1}\n/object/uint - metadata = 42 -> 1\n
"},{"location":"api/basic_json/json_base_class_t/#version-history","title":"Version history","text":"
  • Added in version 3.12.0.
"},{"location":"api/basic_json/json_serializer/","title":"nlohmann::basic_json::json_serializer","text":"
template<typename T, typename SFINAE>\nusing json_serializer = JSONSerializer<T, SFINAE>;\n
"},{"location":"api/basic_json/json_serializer/#template-parameters","title":"Template parameters","text":"T type to convert; will be used in the to_json/from_json functions SFINAE type to add compile type checks via SFINAE; usually void"},{"location":"api/basic_json/json_serializer/#notes","title":"Notes","text":""},{"location":"api/basic_json/json_serializer/#default-type","title":"Default type","text":"

The default values for json_serializer is adl_serializer.

"},{"location":"api/basic_json/json_serializer/#examples","title":"Examples","text":"Example

The example below shows how a conversion of a non-default-constructible type is implemented via a specialization of the adl_serializer.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person (not default constructible)\nstruct person\n{\n    person(std::string n, std::string a, int aa)\n        : name(std::move(n)), address(std::move(a)), age(aa)\n    {}\n\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace nlohmann\n{\ntemplate <>\nstruct adl_serializer<ns::person>\n{\n    static ns::person from_json(const json& j)\n    {\n        return {j.at(\"name\"), j.at(\"address\"), j.at(\"age\")};\n    }\n\n    // Here's the catch! You must provide a to_json method! Otherwise, you\n    // will not be able to convert person to json, since you fully\n    // specialized adl_serializer on that type\n    static void to_json(json& j, ns::person p)\n    {\n        j[\"name\"] = p.name;\n        j[\"address\"] = p.address;\n        j[\"age\"] = p.age;\n    }\n};\n} // namespace nlohmann\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
"},{"location":"api/basic_json/json_serializer/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
"},{"location":"api/basic_json/max_size/","title":"nlohmann::basic_json::max_size","text":"
size_type max_size() const noexcept;\n

Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the JSON value.

"},{"location":"api/basic_json/max_size/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null 0 (same as size()) boolean 1 (same as size()) string 1 (same as size()) number 1 (same as size()) binary 1 (same as size()) object result of function object_t::max_size() array result of function array_t::max_size()"},{"location":"api/basic_json/max_size/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/max_size/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their max_size() functions have constant complexity.

"},{"location":"api/basic_json/max_size/#notes","title":"Notes","text":"

This function does not return the maximal length of a string stored as JSON value -- it returns the maximal number of string elements the JSON value can store which is 1.

"},{"location":"api/basic_json/max_size/#examples","title":"Examples","text":"Example

The following code calls max_size() on the different value types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call max_size()\n    std::cout << j_null.max_size() << '\\n';\n    std::cout << j_boolean.max_size() << '\\n';\n    std::cout << j_number_integer.max_size() << '\\n';\n    std::cout << j_number_float.max_size() << '\\n';\n    std::cout << j_object.max_size() << '\\n';\n    std::cout << j_array.max_size() << '\\n';\n    std::cout << j_string.max_size() << '\\n';\n}\n

Output:

0\n1\n1\n1\n115292150460684697\n576460752303423487\n1\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/max_size/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return 1 for binary types in version 3.8.0.
"},{"location":"api/basic_json/merge_patch/","title":"nlohmann::basic_json::merge_patch","text":"
void merge_patch(const basic_json& apply_patch);\n

The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content. This function applies a merge patch to the current JSON value.

The function implements the following algorithm from Section 2 of RFC 7396 (JSON Merge Patch):

define MergePatch(Target, Patch):\n  if Patch is an Object:\n    if Target is not an Object:\n      Target = {} // Ignore the contents and set it to an empty Object\n    for each Name/Value pair in Patch:\n      if Value is null:\n        if Name exists in Target:\n          remove the Name/Value pair from Target\n      else:\n        Target[Name] = MergePatch(Target[Name], Value)\n    return Target\n  else:\n    return Patch\n

Thereby, Target is the current object; that is, the patch is applied to the current value.

"},{"location":"api/basic_json/merge_patch/#parameters","title":"Parameters","text":"apply_patch (in) the patch to apply"},{"location":"api/basic_json/merge_patch/#complexity","title":"Complexity","text":"

Linear in the lengths of apply_patch.

"},{"location":"api/basic_json/merge_patch/#examples","title":"Examples","text":"Example

The following code shows how a JSON Merge Patch is applied to a JSON document.

#include <iostream>\n#include <nlohmann/json.hpp>\n#include <iomanip> // for std::setw\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json document = R\"({\n                \"title\": \"Goodbye!\",\n                \"author\": {\n                    \"givenName\": \"John\",\n                    \"familyName\": \"Doe\"\n                },\n                \"tags\": [\n                    \"example\",\n                    \"sample\"\n                ],\n                \"content\": \"This will be unchanged\"\n            })\"_json;\n\n    // the patch\n    json patch = R\"({\n                \"title\": \"Hello!\",\n                \"phoneNumber\": \"+01-123-456-7890\",\n                \"author\": {\n                    \"familyName\": null\n                },\n                \"tags\": [\n                    \"example\"\n                ]\n            })\"_json;\n\n    // apply the patch\n    document.merge_patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << document << std::endl;\n}\n

Output:

{\n    \"author\": {\n        \"givenName\": \"John\"\n    },\n    \"content\": \"This will be unchanged\",\n    \"phoneNumber\": \"+01-123-456-7890\",\n    \"tags\": [\n        \"example\"\n    ],\n    \"title\": \"Hello!\"\n}\n
"},{"location":"api/basic_json/merge_patch/#see-also","title":"See also","text":"
  • RFC 7396 (JSON Merge Patch)
  • patch apply a JSON patch
"},{"location":"api/basic_json/merge_patch/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
"},{"location":"api/basic_json/meta/","title":"nlohmann::basic_json::meta","text":"
static basic_json meta();\n

This function returns a JSON object with information about the library, including the version number and information on the platform and compiler.

"},{"location":"api/basic_json/meta/#return-value","title":"Return value","text":"

JSON object holding version information

key description compiler Information on the used compiler. It is an object with the following keys: c++ (the used C++ standard), family (the compiler family; possible values are clang, icc, gcc, ilecpp, msvc, pgcpp, sunpro, and unknown), and version (the compiler version). copyright The copyright line for the library as string. name The name of the library as string. platform The used platform as string. Possible values are win32, linux, apple, unix, and unknown. url The URL of the project as string. version The version of the library. It is an object with the following keys: major, minor, and patch as defined by Semantic Versioning, and string (the version string)."},{"location":"api/basic_json/meta/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/meta/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/meta/#examples","title":"Examples","text":"Example

The following code shows an example output of the meta() function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // call meta()\n    std::cout << std::setw(4) << json::meta() << '\\n';\n}\n

Output:

{\n    \"compiler\": {\n        \"c++\": \"201103\",\n        \"family\": \"gcc\",\n        \"version\": \"12.1.0\"\n    },\n    \"copyright\": \"(C) 2013-2022 Niels Lohmann\",\n    \"name\": \"JSON for Modern C++\",\n    \"platform\": \"apple\",\n    \"url\": \"https://github.com/nlohmann/json\",\n    \"version\": {\n        \"major\": 3,\n        \"minor\": 11,\n        \"patch\": 2,\n        \"string\": \"3.11.2\"\n    }\n}\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/meta/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_VERSION_MAJOR/NLOHMANN_JSON_VERSION_MINOR/NLOHMANN_JSON_VERSION_PATCH - library version information
"},{"location":"api/basic_json/meta/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/basic_json/number_float_t/","title":"nlohmann::basic_json::number_float_t","text":"
using number_float_t = NumberFloatType;\n

The type used to store JSON numbers (floating-point).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store floating-point numbers in C++, a type is defined by the template parameter NumberFloatType which chooses the type to use.

"},{"location":"api/basic_json/number_float_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_float_t/#default-type","title":"Default type","text":"

With the default values for NumberFloatType (double), the default value for number_float_t is double.

"},{"location":"api/basic_json/number_float_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in floating-point literals will be ignored. Internally, the value will be stored as decimal number. For instance, the C++ floating-point literal 01.2 will be serialized to 1.2. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_float_t/#limits","title":"Limits","text":"

RFC 8259 states:

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision.

This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than -1.79769313486232e+308 and values greater than 1.79769313486232e+308 will be stored as NaN internally and be serialized to null.

"},{"location":"api/basic_json/number_float_t/#storage","title":"Storage","text":"

Floating-point number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_float_t/#examples","title":"Examples","text":"Example

The following code shows that number_float_t is by default, a typedef to double.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<double, json::number_float_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_float_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/number_integer_t/","title":"nlohmann::basic_json::number_integer_t","text":"
using number_integer_t = NumberIntegerType;\n

The type used to store JSON numbers (integers).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store integer numbers in C++, a type is defined by the template parameter NumberIntegerType which chooses the type to use.

"},{"location":"api/basic_json/number_integer_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_integer_t/#default-type","title":"Default type","text":"

With the default values for NumberIntegerType (std::int64_t), the default value for number_integer_t is std::int64_t.

"},{"location":"api/basic_json/number_integer_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_integer_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 9223372036854775807 (INT64_MAX) and the minimal integer number that can be stored is -9223372036854775808 (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_unsigned_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.

"},{"location":"api/basic_json/number_integer_t/#storage","title":"Storage","text":"

Integer number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_integer_t/#examples","title":"Examples","text":"Example

The following code shows that number_integer_t is by default, a typedef to std::int64_t.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::int64_t, json::number_integer_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_integer_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/number_unsigned_t/","title":"nlohmann::basic_json::number_unsigned_t","text":"
using number_unsigned_t = NumberUnsignedType;\n

The type used to store JSON numbers (unsigned).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store unsigned integer numbers in C++, a type is defined by the template parameter NumberUnsignedType which chooses the type to use.

"},{"location":"api/basic_json/number_unsigned_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_unsigned_t/#default-type","title":"Default type","text":"

With the default values for NumberUnsignedType (std::uint64_t), the default value for number_unsigned_t is std::uint64_t.

"},{"location":"api/basic_json/number_unsigned_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_unsigned_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 18446744073709551615 (UINT64_MAX) and the minimal integer number that can be stored is 0. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_integer_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range \\f[-2^{53}+1, 2^{53}-1]\\f are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable.

"},{"location":"api/basic_json/number_unsigned_t/#storage","title":"Storage","text":"

Integer number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_unsigned_t/#examples","title":"Examples","text":"Example

The following code shows that number_unsigned_t is by default, a typedef to std::uint64_t.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::uint64_t, json::number_unsigned_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_unsigned_t/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/object/","title":"nlohmann::basic_json::object","text":"
static basic_json object(initializer_list_t init = {});\n

Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object {} is created.

"},{"location":"api/basic_json/object/#parameters","title":"Parameters","text":"init (in) initializer list with JSON values to create an object from (optional)"},{"location":"api/basic_json/object/#return-value","title":"Return value","text":"

JSON object value

"},{"location":"api/basic_json/object/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/object/#exceptions","title":"Exceptions","text":"

Throws type_error.301 if init is not a list of pairs whose first elements are strings. In this case, no object can be created. When such a value is passed to basic_json(initializer_list_t, bool, value_t), an array would have been created from the passed initializer list init. See example below.

"},{"location":"api/basic_json/object/#complexity","title":"Complexity","text":"

Linear in the size of init.

"},{"location":"api/basic_json/object/#notes","title":"Notes","text":"

This function is only added for symmetry reasons. In contrast to the related function array(initializer_list_t), there are no cases which can only be expressed by this function. That is, any initializer list init can also be passed to the initializer list constructor basic_json(initializer_list_t, bool, value_t).

"},{"location":"api/basic_json/object/#examples","title":"Examples","text":"Example

The following code shows an example for the object function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON objects\n    json j_no_init_list = json::object();\n    json j_empty_init_list = json::object({});\n    json j_list_of_pairs = json::object({ {\"one\", 1}, {\"two\", 2} });\n\n    // serialize the JSON objects\n    std::cout << j_no_init_list << '\\n';\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_list_of_pairs << '\\n';\n\n    // example for an exception\n    try\n    {\n        // can only create an object from a list of pairs\n        json j_invalid_object = json::object({{ \"one\", 1, 2 }});\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

{}\n{}\n{\"one\":1,\"two\":2}\n[json.exception.type_error.301] cannot create object from initializer list\n
"},{"location":"api/basic_json/object/#see-also","title":"See also","text":"
  • basic_json(initializer_list_t) - create a JSON value from an initializer list
  • array - create a JSON array value from an initializer list
"},{"location":"api/basic_json/object/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/object_comparator_t/","title":"nlohmann::basic_json::object_comparator_t","text":"
using object_comparator_t = typename object_t::key_compare;\n// or\nusing object_comparator_t = default_object_comparator_t;\n

The comparator used by object_t. Defined as typename object_t::key_compare if available, and default_object_comparator_t otherwise.

"},{"location":"api/basic_json/object_comparator_t/#examples","title":"Examples","text":"Example

The example below demonstrates the used object comparator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha\n              << \"json::object_comparator_t(\\\"one\\\", \\\"two\\\") = \" << json::object_comparator_t{}(\"one\", \"two\") << \"\\n\"\n              << \"json::object_comparator_t(\\\"three\\\", \\\"four\\\") = \" << json::object_comparator_t{}(\"three\", \"four\") << std::endl;\n}\n

Output:

json::object_comparator_t(\"one\", \"two\") = true\njson::object_comparator_t(\"three\", \"four\") = false\n
"},{"location":"api/basic_json/object_comparator_t/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Changed to be conditionally defined as typename object_t::key_compare or default_object_comparator_t in version 3.11.0.
"},{"location":"api/basic_json/object_t/","title":"nlohmann::basic_json::object_t","text":"
using object_t = ObjectType<StringType,\n                            basic_json,\n                            default_object_comparator_t,\n                            AllocatorType<std::pair<const StringType, basic_json>>>;\n

The type used to store JSON objects.

RFC 8259 describes JSON objects as follows:

An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.

To store objects in C++, a type is defined by the template parameters described below.

"},{"location":"api/basic_json/object_t/#template-parameters","title":"Template parameters","text":"ObjectType the container to store objects (e.g., std::map or std::unordered_map) StringType the type of the keys or names (e.g., std::string). The comparison function std::less<StringType> is used to order elements inside the container. AllocatorType the allocator to use for objects (e.g., std::allocator)"},{"location":"api/basic_json/object_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/object_t/#default-type","title":"Default type","text":"

With the default values for ObjectType (std::map), StringType (std::string), and AllocatorType (std::allocator), the default value for object_t is:

// until C++14\nstd::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<std::string>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n\n// since C++14\nstd::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n

See default_object_comparator_t for more information.

"},{"location":"api/basic_json/object_t/#behavior","title":"Behavior","text":"

The choice of object_t influences the behavior of the JSON class. With the default type, objects have the following behavior:

  • When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.
  • When the names within an object are not unique, it is unspecified which one of the values for a given key will be chosen. For instance, {\"key\": 2, \"key\": 1} could be equal to either {\"key\": 1} or {\"key\": 2}.
  • Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see dump) in this order. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be stored and serialized as {\"a\": 2, \"b\": 1}.
  • When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be treated as equal.
"},{"location":"api/basic_json/object_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the object's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON object.

"},{"location":"api/basic_json/object_t/#storage","title":"Storage","text":"

Objects are stored as pointers in a basic_json type. That is, for any access to object values, a pointer of type object_t* must be dereferenced.

"},{"location":"api/basic_json/object_t/#object-key-order","title":"Object key order","text":"

The order name/value pairs are added to the object is not preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as std::map with std::less is used by default. Please note this behavior conforms to RFC 8259, because any order implements the specified \"unordered\" nature of JSON objects.

"},{"location":"api/basic_json/object_t/#examples","title":"Examples","text":"Example

The following code shows that object_t is by default, a typedef to std::map<json::string_t, json>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::map<json::string_t, json>, json::object_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/object_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/operator%2B%3D/","title":"nlohmann::basic_json::operator+=","text":"
// (1)\nreference operator+=(basic_json&& val);\nreference operator+=(const basic_json& val);\n\n// (2)\nreference operator+=(const typename object_t::value_type& val);\n\n// (3)\nreference operator+=(initializer_list_t init);\n
  1. Appends the given element val to the end of the JSON array. If the function is called on a JSON null value, an empty array is created before appending val.

  2. Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

  3. This function allows using operator+= with an initializer list. In case

    1. the current value is an object,
    2. the initializer list init contains only two elements, and
    3. the first element of init is a string,

    init is converted into an object element and added using operator+=(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using operator+=(basic_json&&).

"},{"location":"api/basic_json/operator%2B%3D/#parameters","title":"Parameters","text":"val (in) the value to add to the JSON array/object init (in) an initializer list"},{"location":"api/basic_json/operator%2B%3D/#return-value","title":"Return value","text":"

*this

"},{"location":"api/basic_json/operator%2B%3D/#exceptions","title":"Exceptions","text":"

All functions can throw the following exception: - Throws type_error.308 when called on a type other than JSON array or null; example: \"cannot use operator+=() with number\"

"},{"location":"api/basic_json/operator%2B%3D/#complexity","title":"Complexity","text":"
  1. Amortized constant.
  2. Logarithmic in the size of the container, O(log(size())).
  3. Linear in the size of the initializer list init.
"},{"location":"api/basic_json/operator%2B%3D/#notes","title":"Notes","text":"

(3) This function is required to resolve an ambiguous overload error, because pairs like {\"key\", \"value\"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see #235 for more information.

"},{"location":"api/basic_json/operator%2B%3D/#examples","title":"Examples","text":"Example: (1) add element to array

The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.push_back(6);\n    array += 7;\n    null += \"first\";\n    null += \"second\";\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6,7]\n[\"first\",\"second\"]\n
Example: (2) add element to object

The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    object.push_back(json::object_t::value_type(\"three\", 3));\n    object += json::object_t::value_type(\"four\", 4);\n    null += json::object_t::value_type(\"A\", \"a\");\n    null += json::object_t::value_type(\"B\", \"b\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n{\"A\":\"a\",\"B\":\"b\"}\n
Example: (3) add to object from initializer list

The example shows how initializer lists are treated as objects when possible.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values:\n    object.push_back({\"three\", 3});  // object is extended\n    object += {\"four\", 4};           // object is extended\n    null.push_back({\"five\", 5});     // null is converted to array\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // would throw:\n    //object.push_back({1, 2, 3});\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n[[\"five\",5]]\n
"},{"location":"api/basic_json/operator%2B%3D/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.0.0.
"},{"location":"api/basic_json/operator%3D/","title":"nlohmann::basic_json::operator=","text":"
basic_json& operator=(basic_json other) noexcept (\n    std::is_nothrow_move_constructible<value_t>::value &&\n    std::is_nothrow_move_assignable<value_t>::value &&\n    std::is_nothrow_move_constructible<json_value>::value &&\n    std::is_nothrow_move_assignable<json_value>::value\n);\n

Copy assignment operator. Copies a JSON value via the \"copy and swap\" strategy: It is expressed in terms of the copy constructor, destructor, and the swap() member function.

"},{"location":"api/basic_json/operator%3D/#parameters","title":"Parameters","text":"other (in) value to copy from"},{"location":"api/basic_json/operator%3D/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator%3D/#examples","title":"Examples","text":"Example

The code below shows and example for the copy assignment. It creates a copy of value a which is then swapped with b. Finally, the copy of a (which is the null value after the swap) is destroyed.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json a = 23;\n    json b = 42;\n\n    // copy-assign a to b\n    b = a;\n\n    // serialize the JSON arrays\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n

Output:

23\n23\n
"},{"location":"api/basic_json/operator%3D/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/operator%5B%5D/","title":"nlohmann::basic_json::operator[]","text":"
// (1)\nreference operator[](size_type idx);\nconst_reference operator[](size_type idx) const;\n\n// (2)\nreference operator[](typename object_t::key_type key);\nconst_reference operator[](const typename object_t::key_type& key) const;\n\n// (3)\ntemplate<typename KeyType>\nreference operator[](KeyType&& key);\ntemplate<typename KeyType>\nconst_reference operator[](KeyType&& key) const;\n\n// (4)\nreference operator[](const json_pointer& ptr);\nconst_reference operator[](const json_pointer& ptr) const;\n
  1. Returns a reference to the array element at specified location idx.
  2. Returns a reference to the object element with specified key key. The non-const qualified overload takes the key by value.
  3. See 2. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  4. Returns a reference to the element with specified JSON pointer ptr.
"},{"location":"api/basic_json/operator%5B%5D/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/operator%5B%5D/#parameters","title":"Parameters","text":"idx (in) index of the element to access key (in) object key of the element to access ptr (in) JSON pointer to the desired element"},{"location":"api/basic_json/operator%5B%5D/#return-value","title":"Return value","text":"
  1. (const) reference to the element at index idx
  2. (const) reference to the element at key key
  3. (const) reference to the element at key key
  4. (const) reference to the element pointed to by ptr
"},{"location":"api/basic_json/operator%5B%5D/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/operator%5B%5D/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.305 if the JSON value is not an array or null; in that case, using the [] operator with an index makes no sense.
  2. The function can throw the following exceptions:
    • Throws type_error.305 if the JSON value is not an object or null; in that case, using the [] operator with a key makes no sense.
  3. See 2.
  4. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index in the passed JSON pointer ptr begins with '0'.
    • Throws parse_error.109 if an array index in the passed JSON pointer ptr is not a number.
    • Throws out_of_range.402 if the array index '-' is used in the passed JSON pointer ptr for the const version.
    • Throws out_of_range.404 if the JSON pointer ptr can not be resolved.
"},{"location":"api/basic_json/operator%5B%5D/#complexity","title":"Complexity","text":"
  1. Constant if idx is in the range of the array. Otherwise, linear in idx - size().
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
  4. Logarithmic in the size of the container.
"},{"location":"api/basic_json/operator%5B%5D/#notes","title":"Notes","text":"

Undefined behavior and runtime assertions

  1. If the element with key idx does not exist, the behavior is undefined.
  2. If the element with key key does not exist, the behavior is undefined and is guarded by a runtime assertion!
  1. The non-const version may add values: If idx is beyond the range of the array (i.e., idx >= size()), then the array is silently filled up with null values to make idx a valid reference to the last stored element. In case the value was null before, it is converted to an array.

  2. If key is not found in the object, then it is silently added to the object and filled with a null value to make key a valid reference. In case the value was null before, it is converted to an object.

  3. See 2.

  4. null values are created in arrays and objects if necessary.

    In particular:

    • If the JSON pointer points to an object key that does not exist, it is created and filled with a null value before a reference to it is returned.
    • If the JSON pointer points to an array index that does not exist, it is created and filled with a null value before a reference to it is returned. All indices between the current maximum and the given index are also filled with null.
    • The special value - is treated as a synonym for the index past the end.
"},{"location":"api/basic_json/operator%5B%5D/#examples","title":"Examples","text":"Example: (1) access specified array element

The example below shows how array elements can be read and written using [] operator. Note the addition of null values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json array = {1, 2, 3, 4, 5};\n\n    // output element at index 3 (fourth element)\n    std::cout << array[3] << '\\n';\n\n    // change last element to 6\n    array[array.size() - 1] = 6;\n\n    // output changed array\n    std::cout << array << '\\n';\n\n    // write beyond array limit\n    array[10] = 11;\n\n    // output changed array\n    std::cout << array << '\\n';\n}\n

Output:

4\n[1,2,3,4,6]\n[1,2,3,4,6,null,null,null,null,null,11]\n
Example: (1) access specified array element (const)

The example below shows how array elements can be read using the [] operator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    const json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n}\n

Output:

\"third\"\n
Example: (2) access specified object element

The example below shows how object elements can be read and written using the [] operator.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"] << \"\\n\\n\";\n\n    // change element with key \"three\"\n    object[\"three\"] = 3;\n\n    // output changed array\n    std::cout << std::setw(4) << object << \"\\n\\n\";\n\n    // mention nonexisting key\n    object[\"four\"];\n\n    // write to nonexisting key\n    object[\"five\"][\"really\"][\"nested\"] = true;\n\n    // output changed object\n    std::cout << std::setw(4) << object << '\\n';\n}\n

Output:

2\n\n{\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n\n{\n    \"five\": {\n        \"really\": {\n            \"nested\": true\n        }\n    },\n    \"four\": null,\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n
Example: (2) access specified object element (const)

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    const json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"] << '\\n';\n}\n

Output:

2\n
Example: (3) access specified object element using string_view

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <iomanip>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"sv] << \"\\n\\n\";\n\n    // change element with key \"three\"\n    object[\"three\"sv] = 3;\n\n    // output changed array\n    std::cout << std::setw(4) << object << \"\\n\\n\";\n\n    // mention nonexisting key\n    object[\"four\"sv];\n\n    // write to nonexisting key\n    object[\"five\"sv][\"really\"sv][\"nested\"sv] = true;\n\n    // output changed object\n    std::cout << std::setw(4) << object << '\\n';\n}\n

Output:

2\n\n{\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n\n{\n    \"five\": {\n        \"really\": {\n            \"nested\": true\n        }\n    },\n    \"four\": null,\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n
Example: (3) access specified object element using string_view (const)

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    const json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"sv] << '\\n';\n}\n

Output:

2\n
Example: (4) access specified element via JSON Pointer

The example below shows how values can be read and written using JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j[\"/number\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j[\"/string\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j[\"/array\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j[\"/array/1\"_json_pointer] << '\\n';\n\n    // writing access\n\n    // change the string\n    j[\"/string\"_json_pointer] = \"bar\";\n    // output the changed string\n    std::cout << j[\"string\"] << '\\n';\n\n    // \"change\" a nonexisting object entry\n    j[\"/boolean\"_json_pointer] = true;\n    // output the changed object\n    std::cout << j << '\\n';\n\n    // change an array element\n    j[\"/array/1\"_json_pointer] = 21;\n    // \"change\" an array element with nonexisting index\n    j[\"/array/4\"_json_pointer] = 44;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n\n    // \"change\" the array element past the end\n    j[\"/array/-\"_json_pointer] = 55;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n\"bar\"\n{\"array\":[1,2],\"boolean\":true,\"number\":1,\"string\":\"bar\"}\n[1,21,null,null,44]\n[1,21,null,null,44,55]\n
Example: (4) access specified element via JSON Pointer (const)

The example below shows how values can be read using JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    const json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j[\"/number\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j[\"/string\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j[\"/array\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j[\"/array/1\"_json_pointer] << '\\n';\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n
"},{"location":"api/basic_json/operator%5B%5D/#see-also","title":"See also","text":"
  • documentation on unchecked access
  • documentation on runtime assertions
  • see at for access by reference with range checking
  • see value for access with default value
"},{"location":"api/basic_json/operator%5B%5D/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0. Added overloads for T* key in version 1.1.0. Removed overloads for T* key (replaced by 3) in version 3.11.0.
  3. Added in version 3.11.0.
  4. Added in version 2.0.0.
"},{"location":"api/basic_json/operator_ValueType/","title":"nlohmann::basic_json::operator ValueType","text":"
template<typename ValueType>\nJSON_EXPLICIT operator ValueType() const;\n

Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get(). See Notes for the meaning of JSON_EXPLICIT.

"},{"location":"api/basic_json/operator_ValueType/#template-parameters","title":"Template parameters","text":"ValueType the value type to return"},{"location":"api/basic_json/operator_ValueType/#return-value","title":"Return value","text":"

copy of the JSON value, converted to ValueType

"},{"location":"api/basic_json/operator_ValueType/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/operator_ValueType/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value.

"},{"location":"api/basic_json/operator_ValueType/#notes","title":"Notes","text":"

Definition of JSON_EXPLICIT

By default JSON_EXPLICIT is defined to the empty string, so the signature is:

template<typename ValueType>\noperator ValueType() const;\n

If JSON_USE_IMPLICIT_CONVERSIONS is set to 0, JSON_EXPLICIT is defined to explicit:

template<typename ValueType>\nexplicit operator ValueType() const;\n

That is, implicit conversions can be switched off by defining JSON_USE_IMPLICIT_CONVERSIONS to 0.

Future behavior change

Implicit conversions will be switched off by default in the next major release of the library. That is, JSON_EXPLICIT will be set to explicit by default.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

"},{"location":"api/basic_json/operator_ValueType/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There are a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    // use implicit conversions\n    bool v1 = json_types[\"boolean\"];\n    int v2 = json_types[\"number\"][\"integer\"];\n    short v3 = json_types[\"number\"][\"integer\"];\n    float v4 = json_types[\"number\"][\"floating-point\"];\n    int v5 = json_types[\"number\"][\"floating-point\"];\n    std::string v6 = json_types[\"string\"];\n    std::vector<short> v7 = json_types[\"array\"];\n    std::unordered_map<std::string, json> v8 = json_types;\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n\n    // example for an exception\n    try\n    {\n        bool v1 = json_types[\"string\"];\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n[json.exception.type_error.302] type must be boolean, but is string\n
"},{"location":"api/basic_json/operator_ValueType/#version-history","title":"Version history","text":"
  • Since version 1.0.0.
  • Macros JSON_EXPLICIT/JSON_USE_IMPLICIT_CONVERSIONS added in version 3.9.0.
"},{"location":"api/basic_json/operator_eq/","title":"nlohmann::basic_json::operator==","text":"
// until C++20\nbool operator==(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator==(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator==(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n\n// since C++20\nclass basic_json {\n    bool operator==(const_reference rhs) const noexcept;              // (1)\n\n    template<typename ScalarType>\n    bool operator==(ScalarType rhs) const noexcept;                   // (2)\n};\n
  1. Compares two JSON values for equality according to the following rules:

    • Two JSON values are equal if (1) neither value is discarded, or (2) they are of the same type and their stored values are the same according to their respective operator==.
    • Integer and floating-point numbers are automatically converted before comparison.
  2. Compares a JSON value and a scalar or a scalar and a JSON value for equality by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_eq/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_eq/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_eq/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are equal

"},{"location":"api/basic_json/operator_eq/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_eq/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_eq/#notes","title":"Notes","text":"

Comparing special values

  • NaN values are unordered within the domain of numbers. The following comparisons all yield false:
    1. Comparing a NaN with itself.
    2. Comparing a NaN with another NaN.
    3. Comparing a NaN and any other number.
  • JSON null values are all equal.
  • Discarded values never compare equal to themselves.

Comparing floating-point numbers

Floating-point numbers inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default. To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance

template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>\ninline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept\n{\n    return std::abs(a - b) <= epsilon;\n}\n

Or you can self-defined operator equal function like this:

bool my_equal(const_reference lhs, const_reference rhs)\n{\n    const auto lhs_type lhs.type();\n    const auto rhs_type rhs.type();\n    if (lhs_type == rhs_type)\n    {\n        switch(lhs_type)\n            // self_defined case\n            case value_t::number_float:\n                return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();\n            // other cases remain the same with the original\n            ...\n    }\n...\n}\n

Comparing different basic_json specializations

Comparing different basic_json specializations can have surprising effects. For instance, the result of comparing the JSON objects

{\n   \"version\": 1,\n   \"type\": \"integer\"\n}\n

and

{\n   \"type\": \"integer\",\n   \"version\": 1\n}\n

depends on whether nlohmann::json or nlohmann::ordered_json is used:

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    nlohmann::json uj1 = {{\"version\", 1}, {\"type\", \"integer\"}};\n    nlohmann::json uj2 = {{\"type\", \"integer\"}, {\"version\", 1}};\n\n    nlohmann::ordered_json oj1 = {{\"version\", 1}, {\"type\", \"integer\"}};\n    nlohmann::ordered_json oj2 = {{\"type\", \"integer\"}, {\"version\", 1}};\n\n    std::cout << std::boolalpha << (uj1 == uj2) << '\\n' << (oj1 == oj2) << std::endl;\n}\n

Output:

true\nfalse\n
"},{"location":"api/basic_json/operator_eq/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.000000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" == \" << array_2 << \" \" << (array_1 == array_2) << '\\n';\n    std::cout << object_1 << \" == \" << object_2 << \" \" << (object_1 == object_2) << '\\n';\n    std::cout << number_1 << \" == \" << number_2 << \" \" << (number_1 == number_2) << '\\n';\n    std::cout << string_1 << \" == \" << string_2 << \" \" << (string_1 == string_2) << '\\n';\n}\n

Output:

[1,2,3] == [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} == {\"A\":\"a\",\"B\":\"b\"} true\n17 == 17.0 true\n\"foo\" == \"bar\" false\n
Example

The example demonstrates comparing several JSON types against the null pointer (JSON null).

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array = {1, 2, 3};\n    json object = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json number = 17;\n    json string = \"foo\";\n    json null;\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array << \" == nullptr \" << (array == nullptr) << '\\n';\n    std::cout << object << \" == nullptr \" << (object == nullptr) << '\\n';\n    std::cout << number << \" == nullptr \" << (number == nullptr) << '\\n';\n    std::cout << string << \" == nullptr \" << (string == nullptr) << '\\n';\n    std::cout << null << \" == nullptr \" << (null == nullptr) << '\\n';\n}\n

Output:

[1,2,3] == nullptr false\n{\"A\":\"a\",\"B\":\"b\"} == nullptr false\n17 == nullptr false\n\"foo\" == nullptr false\nnull == nullptr true\n
"},{"location":"api/basic_json/operator_eq/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
  2. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
"},{"location":"api/basic_json/operator_ge/","title":"nlohmann::basic_json::operator>=","text":"
// until C++20\nbool operator>=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator>=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator>=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is greater than or equal to another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs < rhs) (see operator<).
  2. Compares whether a JSON value is greater than or equal to a scalar or a scalar is greater than or equal to a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_ge/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_ge/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_ge/#return-value","title":"Return value","text":"

whether lhs is less than or equal to rhs

"},{"location":"api/basic_json/operator_ge/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_ge/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_ge/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_ge/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" >= \" << array_2 << \" \" << (array_1 >= array_2) << '\\n';\n    std::cout << object_1 << \" >= \" << object_2 << \" \" << (object_1 >= object_2) << '\\n';\n    std::cout << number_1 << \" >= \" << number_2 << \" \" << (number_1 >= number_2) << '\\n';\n    std::cout << string_1 << \" >= \" << string_2 << \" \" << (string_1 >= string_2) << '\\n';\n}\n

Output:

[1,2,3] >= [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} >= {\"A\":\"a\",\"B\":\"b\"} true\n17 >= 17.0000000000001 false\n\"foo\" >= \"bar\" true\n
"},{"location":"api/basic_json/operator_ge/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_ge/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_gt/","title":"nlohmann::basic_json::operator>","text":"
// until C++20\nbool operator>(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator>(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator>(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is greater than another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs <= rhs) (see operator<=).
  2. Compares wether a JSON value is greater than a scalar or a scalar is greater than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_gt/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_gt/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_gt/#return-value","title":"Return value","text":"

whether lhs is greater than rhs

"},{"location":"api/basic_json/operator_gt/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_gt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_gt/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_gt/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" > \" << array_2 << \" \" << (array_1 > array_2) << '\\n';\n    std::cout << object_1 << \" > \" << object_2 << \" \" << (object_1 > object_2) << '\\n';\n    std::cout << number_1 << \" > \" << number_2 << \" \" << (number_1 > number_2) << '\\n';\n    std::cout << string_1 << \" > \" << string_2 << \" \" << (string_1 > string_2) << '\\n';\n}\n

Output:

[1,2,3] > [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} > {\"A\":\"a\",\"B\":\"b\"} false\n17 > 17.0000000000001 false\n\"foo\" > \"bar\" true\n
"},{"location":"api/basic_json/operator_gt/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_gt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_le/","title":"nlohmann::basic_json::operator<=","text":"
// until C++20\nbool operator<=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator<=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator<=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is less than or equal to another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(rhs < lhs) (see operator<).
  2. Compares wether a JSON value is less than or equal to a scalar or a scalar is less than or equal to a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_le/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_le/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_le/#return-value","title":"Return value","text":"

whether lhs is less than or equal to rhs

"},{"location":"api/basic_json/operator_le/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_le/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_le/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_le/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" <= \" << array_2 << \" \" << (array_1 <= array_2) << '\\n';\n    std::cout << object_1 << \" <= \" << object_2 << \" \" << (object_1 <= object_2) << '\\n';\n    std::cout << number_1 << \" <= \" << number_2 << \" \" << (number_1 <= number_2) << '\\n';\n    std::cout << string_1 << \" <= \" << string_2 << \" \" << (string_1 <= string_2) << '\\n';\n}\n

Output:

[1,2,3] <= [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} <= {\"A\":\"a\",\"B\":\"b\"} true\n17 <= 17.0000000000001 true\n\"foo\" <= \"bar\" false\n
"},{"location":"api/basic_json/operator_le/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_le/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_lt/","title":"nlohmann::basic_json::operator<","text":"
// until C++20\nbool operator<(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator<(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator<(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is less than another JSON value rhs according to the following rules:

    • If either operand is discarded, the comparison yields false.
    • If both operands have the same type, the values are compared using their respective operator<.
    • Integer and floating-point numbers are automatically converted before comparison.
    • In case lhs and rhs have different types, the values are ignored and the order of the types is considered, which is:
      1. null
      2. boolean
      3. number (all types)
      4. object
      5. array
      6. string
      7. binary For instance, any boolean value is considered less than any string.
  2. Compares wether a JSON value is less than a scalar or a scalar is less than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_lt/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_lt/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_lt/#return-value","title":"Return value","text":"

whether lhs is less than rhs

"},{"location":"api/basic_json/operator_lt/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_lt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_lt/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_lt/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" == \" << array_2 << \" \" << (array_1 < array_2) << '\\n';\n    std::cout << object_1 << \" == \" << object_2 << \" \" << (object_1 < object_2) << '\\n';\n    std::cout << number_1 << \" == \" << number_2 << \" \" << (number_1 < number_2) << '\\n';\n    std::cout << string_1 << \" == \" << string_2 << \" \" << (string_1 < string_2) << '\\n';\n}\n

Output:

[1,2,3] == [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} == {\"A\":\"a\",\"B\":\"b\"} false\n17 == 17.0000000000001 true\n\"foo\" == \"bar\" false\n
"},{"location":"api/basic_json/operator_lt/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_lt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_ne/","title":"nlohmann::basic_json::operator!=","text":"
// until C++20\nbool operator!=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator!=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator!=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n\n// since C++20\nclass basic_json {\n    bool operator!=(const_reference rhs) const noexcept;              // (1)\n\n    template<typename ScalarType>\n    bool operator!=(ScalarType rhs) const noexcept;                   // (2)\n};\n
  1. Compares two JSON values for inequality according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs == rhs) (until C++20) or !(*this == rhs) (since C++20).
  2. Compares a JSON value and a scalar or a scalar and a JSON value for inequality by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_ne/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_ne/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_ne/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are not equal

"},{"location":"api/basic_json/operator_ne/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_ne/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_ne/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

"},{"location":"api/basic_json/operator_ne/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.000000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" != \" << array_2 << \" \" << (array_1 != array_2) << '\\n';\n    std::cout << object_1 << \" != \" << object_2 << \" \" << (object_1 != object_2) << '\\n';\n    std::cout << number_1 << \" != \" << number_2 << \" \" << (number_1 != number_2) << '\\n';\n    std::cout << string_1 << \" != \" << string_2 << \" \" << (string_1 != string_2) << '\\n';\n}\n

Output:

[1,2,3] != [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} != {\"A\":\"a\",\"B\":\"b\"} false\n17 != 17.0 false\n\"foo\" != \"bar\" true\n
Example

The example demonstrates comparing several JSON types against the null pointer (JSON null).

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array = {1, 2, 3};\n    json object = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json number = 17;\n    json string = \"foo\";\n    json null;\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array << \" != nullptr \" << (array != nullptr) << '\\n';\n    std::cout << object << \" != nullptr \" << (object != nullptr) << '\\n';\n    std::cout << number << \" != nullptr \" << (number != nullptr) << '\\n';\n    std::cout << string << \" != nullptr \" << (string != nullptr) << '\\n';\n    std::cout << null << \" != nullptr \" << (null != nullptr) << '\\n';\n}\n

Output:

[1,2,3] != nullptr true\n{\"A\":\"a\",\"B\":\"b\"} != nullptr true\n17 != nullptr true\n\"foo\" != nullptr true\nnull != nullptr false\n
"},{"location":"api/basic_json/operator_ne/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
  2. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
"},{"location":"api/basic_json/operator_spaceship/","title":"nlohmann::basic_json::operator<=>","text":"
// since C++20\nclass basic_json {\n    std::partial_ordering operator<=>(const_reference rhs) const noexcept;  // (1)\n\n    template<typename ScalarType>\n    std::partial_ordering operator<=>(const ScalarType rhs) const noexcept; // (2)\n};\n
  1. 3-way compares two JSON values producing a result of type std::partial_ordering according to the following rules:

    • Two JSON values compare with a result of std::partial_ordering::unordered if either value is discarded.
    • If both JSON values are of the same type, the result is produced by 3-way comparing their stored values using their respective operator<=>.
    • Integer and floating-point numbers are converted to their common type and then 3-way compared using their respective operator<=>. For instance, comparing an integer and a floating-point value will 3-way compare the first value converted to floating-point with the second value.
    • Otherwise, yields a result by comparing the type (see value_t).
  2. 3-way compares a JSON value and a scalar or a scalar and a JSON value by converting the scalar to a JSON value and 3-way comparing both JSON values (see 1).

"},{"location":"api/basic_json/operator_spaceship/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_spaceship/#parameters","title":"Parameters","text":"rhs (in) second value to consider"},{"location":"api/basic_json/operator_spaceship/#return-value","title":"Return value","text":"

the std::partial_ordering of the 3-way comparison of *this and rhs

"},{"location":"api/basic_json/operator_spaceship/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_spaceship/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_spaceship/#notes","title":"Notes","text":"

Comparing NaN

  • NaN values are unordered within the domain of numbers. The following comparisons all yield std::partial_ordering::unordered:
    1. Comparing a NaN with itself.
    2. Comparing a NaN with another NaN.
    3. Comparing a NaN and any other number.
"},{"location":"api/basic_json/operator_spaceship/#examples","title":"Examples","text":"Example: (1) comparing JSON values

The example demonstrates comparing several JSON values.

#include <compare>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nconst char* to_string(const std::partial_ordering& po)\n{\n    if (std::is_lt(po))\n    {\n        return \"less\";\n    }\n    else if (std::is_gt(po))\n    {\n        return \"greater\";\n    }\n    else if (std::is_eq(po))\n    {\n        return \"equivalent\";\n    }\n    return \"unordered\";\n}\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number = 17;\n    json string = \"foo\";\n    json discarded = json(json::value_t::discarded);\n\n    // output values and comparisons\n    std::cout << array_1 << \" <=> \" << array_2 << \" := \" << to_string(array_1 <=> array_2) << '\\n'; // *NOPAD*\n    std::cout << object_1 << \" <=> \" << object_2 << \" := \" << to_string(object_1 <=> object_2) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << number << \" := \" << to_string(string <=> number) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << discarded << \" := \" << to_string(string <=> discarded) << '\\n'; // *NOPAD*\n}\n

Output:

[1,2,3] <=> [1,2,4] := less\n{\"A\":\"a\",\"B\":\"b\"} <=> {\"A\":\"a\",\"B\":\"b\"} := equivalent\n\"foo\" <=> 17 := greater\n\"foo\" <=> <discarded> := unordered\n
Example: (2) comparing JSON values and scalars

The example demonstrates comparing several JSON values and scalars.

#include <compare>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nconst char* to_string(const std::partial_ordering& po)\n{\n    if (std::is_lt(po))\n    {\n        return \"less\";\n    }\n    else if (std::is_gt(po))\n    {\n        return \"greater\";\n    }\n    else if (std::is_eq(po))\n    {\n        return \"equivalent\";\n    }\n    return \"unordered\";\n}\n\nint main()\n{\n    using float_limits = std::numeric_limits<json::number_float_t>;\n    constexpr auto nan = float_limits::quiet_NaN();\n\n    // create several JSON values\n    json boolean = false;\n    json number = 17;\n    json string = \"17\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha << std::fixed;\n    std::cout << boolean << \" <=> \" << true << \" := \" << to_string(boolean <=> true) << '\\n'; // *NOPAD*\n    std::cout << number << \" <=> \" << 17.0 << \" := \" << to_string(number <=> 17.0) << '\\n'; // *NOPAD*\n    std::cout << number << \" <=> \" << nan << \" := \" << to_string(number <=> nan) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << 17 << \" := \" << to_string(string <=> 17) << '\\n'; // *NOPAD*\n}\n

Output:

false <=> true := less\n17 <=> 17.000000 := equivalent\n17 <=> nan := unordered\n\"17\" <=> 17 := greater\n
"},{"location":"api/basic_json/operator_spaceship/#see-also","title":"See also","text":"
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • operator< - comparison: less than
  • operator<= - comparison: less than or equal
  • operator> - comparison: greater than
  • operator>= - comparison: greater than or equal
"},{"location":"api/basic_json/operator_spaceship/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 3.11.0.
"},{"location":"api/basic_json/operator_value_t/","title":"nlohmann::basic_json::operator value_t","text":"
constexpr operator value_t() const noexcept;\n

Return the type of the JSON value as a value from the value_t enumeration.

"},{"location":"api/basic_json/operator_value_t/#return-value","title":"Return value","text":"

the type of the JSON value

Value type return value null value_t::null boolean value_t::boolean string value_t::string number (integer) value_t::number_integer number (unsigned integer) value_t::number_unsigned number (floating-point) value_t::number_float object value_t::object array value_t::array binary value_t::binary discarded value_t::discarded"},{"location":"api/basic_json/operator_value_t/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/operator_value_t/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/operator_value_t/#examples","title":"Examples","text":"Example

The following code exemplifies operator value_t() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call operator value_t()\n    json::value_t t_null = j_null;\n    json::value_t t_boolean = j_boolean;\n    json::value_t t_number_integer = j_number_integer;\n    json::value_t t_number_unsigned = j_number_unsigned;\n    json::value_t t_number_float = j_number_float;\n    json::value_t t_object = j_object;\n    json::value_t t_array = j_array;\n    json::value_t t_string = j_string;\n\n    // print types\n    std::cout << std::boolalpha;\n    std::cout << (t_null == json::value_t::null) << '\\n';\n    std::cout << (t_boolean == json::value_t::boolean) << '\\n';\n    std::cout << (t_number_integer == json::value_t::number_integer) << '\\n';\n    std::cout << (t_number_unsigned == json::value_t::number_unsigned) << '\\n';\n    std::cout << (t_number_float == json::value_t::number_float) << '\\n';\n    std::cout << (t_object == json::value_t::object) << '\\n';\n    std::cout << (t_array == json::value_t::array) << '\\n';\n    std::cout << (t_string == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/operator_value_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/other_error/","title":"nlohmann::basic_json::other_error","text":"
class other_error : public exception;\n

This exception is thrown in case of errors that cannot be classified with the other exception types.

Exceptions have ids 5xx (see list of other errors).

"},{"location":"api/basic_json/other_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/other_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/other_error/#examples","title":"Examples","text":"Example

The following code shows how a other_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    try\n    {\n        // executing a failing JSON Patch operation\n        json value = R\"({\n            \"best_biscuit\": {\n                \"name\": \"Oreo\"\n            }\n        })\"_json;\n        json patch = R\"([{\n            \"op\": \"test\",\n            \"path\": \"/best_biscuit/name\",\n            \"value\": \"Choco Leibniz\"\n        }])\"_json;\n        value.patch(patch);\n    }\n    catch (const json::other_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/best_biscuit/name\",\"value\":\"Choco Leibniz\"}\nexception id: 501\n
"},{"location":"api/basic_json/other_error/#see-also","title":"See also","text":"
  • List of other errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
"},{"location":"api/basic_json/other_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/out_of_range/","title":"nlohmann::basic_json::out_of_range","text":"
class out_of_range : public exception;\n

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

Exceptions have ids 4xx (see list of out-of-range errors).

"},{"location":"api/basic_json/out_of_range/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/out_of_range/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/out_of_range/#examples","title":"Examples","text":"Example

The following code shows how a out_of_range exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for an invalid index\n        json j = {1, 2, 3, 4};\n        j.at(4) = 10;\n    }\n    catch (const json::out_of_range& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.401] array index 4 is out of range\nexception id: 401\n
"},{"location":"api/basic_json/out_of_range/#see-also","title":"See also","text":"
  • List of out-of-range errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/out_of_range/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/parse/","title":"nlohmann::basic_json::parse","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json parse(InputType&& i,\n                        const parser_callback_t cb = nullptr,\n                        const bool allow_exceptions = true,\n                        const bool ignore_comments = false);\n\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json parse(IteratorType first, IteratorType last,\n                        const parser_callback_t cb = nullptr,\n                        const bool allow_exceptions = true,\n                        const bool ignore_comments = false);\n
  1. Deserialize from a compatible input.
  2. Deserialize from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

"},{"location":"api/basic_json/parse/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer (must not be null)
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • a std::string
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType

a compatible iterator type, for instance.

  • a pair of std::string::iterator or std::vector<std::uint8_t>::iterator
  • a pair of pointers such as ptr and ptr + len
"},{"location":"api/basic_json/parse/#parameters","title":"Parameters","text":"i (in) Input to parse from. cb (in) a parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default) ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/parse/#return-value","title":"Return value","text":"

Deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/parse/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/parse/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.101 in case of an unexpected token.
  • Throws parse_error.102 if to_unicode fails or surrogate error.
  • Throws parse_error.103 if to_unicode fails.
"},{"location":"api/basic_json/parse/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function cb or reading from (1) the input i or (2) the iterator range [first, last] has a super-linear complexity.

"},{"location":"api/basic_json/parse/#notes","title":"Notes","text":"

(1) A UTF-8 byte order mark is silently ignored.

Runtime assertion

The precondition that a passed FILE pointer must not be null is enforced with a runtime assertion.

"},{"location":"api/basic_json/parse/#examples","title":"Examples","text":"Parsing from a character array

The example below demonstrates the parse() function reading from an array.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    char text[] = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from a string

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from an input stream

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // fill a stream with JSON text\n    std::stringstream ss;\n    ss << text;\n\n    // parse and serialize JSON\n    json j_complete = json::parse(ss);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // fill a stream with JSON text\n    ss.clear();\n    ss << text;\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(ss, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from a contiguous container

The example below demonstrates the parse() function reading from a contiguous container.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given as std::vector\n    std::vector<std::uint8_t> text = {'[', '1', ',', '2', ',', '3', ']', '\\0'};\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Parsing from a non null-terminated string

The example below demonstrates the parse() function reading from a string that is not null-terminated.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given as string that is not null-terminated\n    const char* ptr = \"[1,2,3]another value\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(ptr, ptr + 7);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Parsing from an iterator pair

The example below demonstrates the parse() function reading from an iterator pair.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given an input with other values\n    std::vector<std::uint8_t> input = {'[', '1', ',', '2', ',', '3', ']', 'o', 't', 'h', 'e', 'r'};\n\n    // parse and serialize JSON\n    json j_complete = json::parse(input.begin(), input.begin() + 7);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Effect of allow_exceptions parameter

The example below demonstrates the effect of the allow_exceptions parameter in the \u00b4parse()` function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // an invalid JSON text\n    std::string text = R\"(\n    {\n        \"key\": \"value without closing quotes\n    }\n    )\";\n\n    // parse with exceptions\n    try\n    {\n        json j = json::parse(text);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    // parse without exceptions\n    json j = json::parse(text, nullptr, false);\n\n    if (j.is_discarded())\n    {\n        std::cout << \"the input is invalid JSON\" << std::endl;\n    }\n    else\n    {\n        std::cout << \"the input is valid JSON: \" << j << std::endl;\n    }\n}\n

Output:

[json.exception.parse_error.101] parse error at line 4, column 0: syntax error while parsing value - invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n; last read: '\"value without closing quotes<U+000A>'\nthe input is invalid JSON\n
"},{"location":"api/basic_json/parse/#see-also","title":"See also","text":"
  • accept - check if the input is valid JSON
  • operator>> - deserialize from stream
"},{"location":"api/basic_json/parse/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Overload for contiguous containers (1) added in version 2.0.3.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to parse with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like parse({ptr, ptr+len}, ...); with parse(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/parse_error/","title":"nlohmann::basic_json::parse_error","text":"
class parse_error : public exception;\n

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, BSON, CBOR, MessagePack, UBJSON, as well as when using JSON Patch.

Member byte holds the byte index of the last read character in the input file (see note below).

Exceptions have ids 1xx (see list of parse errors).

"},{"location":"api/basic_json/parse_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/parse_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
  • byte - byte index of the parse error
"},{"location":"api/basic_json/parse_error/#notes","title":"Notes","text":"

For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector for binary formats.

"},{"location":"api/basic_json/parse_error/#examples","title":"Examples","text":"Example

The following code shows how a parse_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // parsing input with a syntax error\n        json::parse(\"[1,2,3,]\");\n    }\n    catch (const json::parse_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << '\\n'\n                  << \"byte position of error: \" << e.byte << std::endl;\n    }\n}\n

Output:

message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nexception id: 101\nbyte position of error: 8\n
"},{"location":"api/basic_json/parse_error/#see-also","title":"See also","text":"
  • List of parse errors
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/parse_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/parse_event_t/","title":"nlohmann::basic_json::parse_event_t","text":"
enum class parse_event_t : std::uint8_t {\n    object_start,\n    object_end,\n    array_start,\n    array_end,\n    key,\n    value\n};\n

The parser callback distinguishes the following events:

  • object_start: the parser read { and started to process a JSON object
  • key: the parser read a key of a value in an object
  • object_end: the parser read } and finished processing a JSON object
  • array_start: the parser read [ and started to process a JSON array
  • array_end: the parser read ] and finished processing a JSON array
  • value: the parser finished reading a JSON value
"},{"location":"api/basic_json/parse_event_t/#examples","title":"Examples","text":""},{"location":"api/basic_json/parse_event_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/parser_callback_t/","title":"nlohmann::basic_json::parser_callback_t","text":"
template<typename BasicJsonType>\nusing parser_callback_t =\n    std::function<bool(int depth, parse_event_t event, BasicJsonType& parsed)>;\n

With a parser callback function, the result of parsing a JSON text can be influenced. When passed to parse, it is called on certain events (passed as parse_event_t via parameter event) with a set recursion depth depth and context JSON value parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.

We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters depth, event, and parsed.

parameter event description parameter depth parameter parsed parse_event_t::object_start the parser read { and started to process a JSON object depth of the parent of the JSON object a JSON value with type discarded parse_event_t::key the parser read a key of a value in an object depth of the currently parsed JSON object a JSON string containing the key parse_event_t::object_end the parser read } and finished processing a JSON object depth of the parent of the JSON object the parsed JSON object parse_event_t::array_start the parser read [ and started to process a JSON array depth of the parent of the JSON array a JSON value with type discarded parse_event_t::array_end the parser read ] and finished processing a JSON array depth of the parent of the JSON array the parsed JSON array parse_event_t::value the parser finished reading a JSON value depth of the value the parsed JSON value

Discarding a value (i.e., returning false) has different effects depending on the context in which function was called:

  • Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.
  • In case a value outside a structured type is skipped, it is replaced with null. This case happens if the top-level element is skipped.
"},{"location":"api/basic_json/parser_callback_t/#parameters","title":"Parameters","text":"depth (in) the depth of the recursion during parsing event (in) an event of type parse_event_t indicating the context in the callback function has been called parsed (in, out) the current intermediate parse result; note that writing to this value has no effect for parse_event_t::key events"},{"location":"api/basic_json/parser_callback_t/#return-value","title":"Return value","text":"

Whether the JSON value which called the function during parsing should be kept (true) or not (false). In the latter case, it is either skipped completely or replaced by an empty discarded object.

"},{"location":"api/basic_json/parser_callback_t/#examples","title":"Examples","text":"Example

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
"},{"location":"api/basic_json/parser_callback_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/patch/","title":"nlohmann::basic_json::patch","text":"
basic_json patch(const basic_json& json_patch) const;\n

JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.

"},{"location":"api/basic_json/patch/#parameters","title":"Parameters","text":"json_patch (in) JSON patch document"},{"location":"api/basic_json/patch/#return-value","title":"Return value","text":"

patched document

"},{"location":"api/basic_json/patch/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/patch/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.104 if the JSON patch does not consist of an array of objects.
  • Throws parse_error.105 if the JSON patch is malformed (e.g., mandatory attributes are missing); example: \"operation add must have member path\".
  • Throws out_of_range.401 if an array index is out of range.
  • Throws out_of_range.403 if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: \"key baz not found\".
  • Throws out_of_range.405 if JSON pointer has no parent (\"add\", \"remove\", \"move\")
  • Throws out_of_range.501 if \"test\" operation was unsuccessful.
"},{"location":"api/basic_json/patch/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.

"},{"location":"api/basic_json/patch/#notes","title":"Notes","text":"

The application of a patch is atomic: Either all operations succeed and the patched document is returned or an exception is thrown. In any case, the original value is not changed: the patch is applied to a copy of the value.

"},{"location":"api/basic_json/patch/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // apply the patch\n    json patched_doc = doc.patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << doc << \"\\n\\n\"\n              << std::setw(4) << patched_doc << std::endl;\n}\n

Output:

{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/patch/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
  • RFC 6901 (JSON Pointer)
  • patch_inplace applies a JSON Patch without creating a copy of the document
  • merge_patch applies a JSON Merge Patch
"},{"location":"api/basic_json/patch/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/patch_inplace/","title":"nlohmann::basic_json::patch_inplace","text":"
void patch_inplace(const basic_json& json_patch) const;\n

JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch. This function applies a JSON patch in place and returns void.

"},{"location":"api/basic_json/patch_inplace/#parameters","title":"Parameters","text":"json_patch (in) JSON patch document"},{"location":"api/basic_json/patch_inplace/#exception-safety","title":"Exception safety","text":"

No guarantees, value may be corrupted by an unsuccessful patch operation.

"},{"location":"api/basic_json/patch_inplace/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.104 if the JSON patch does not consist of an array of objects.
  • Throws parse_error.105 if the JSON patch is malformed (e.g., mandatory attributes are missing); example: \"operation add must have member path\".
  • Throws out_of_range.401 if an array index is out of range.
  • Throws out_of_range.403 if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: \"key baz not found\".
  • Throws out_of_range.405 if JSON pointer has no parent (\"add\", \"remove\", \"move\")
  • Throws out_of_range.501 if \"test\" operation was unsuccessful.
"},{"location":"api/basic_json/patch_inplace/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.

"},{"location":"api/basic_json/patch_inplace/#notes","title":"Notes","text":"

Unlike patch, patch_inplace applies the operation \"in place\" and no copy of the JSON value is created. That makes it faster for large documents by avoiding the copy. However, the JSON value might be corrupted if the function throws an exception.

"},{"location":"api/basic_json/patch_inplace/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // output original document\n    std::cout << \"Before\\n\" << std::setw(4) << doc << std::endl;\n\n    // apply the patch\n    doc.patch_inplace(patch);\n\n    // output patched document\n    std::cout << \"\\nAfter\\n\" << std::setw(4) << doc << std::endl;\n}\n

Output:

Before\n{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\nAfter\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/patch_inplace/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
  • RFC 6901 (JSON Pointer)
  • patch applies a JSON Merge Patch
  • merge_patch applies a JSON Merge Patch
"},{"location":"api/basic_json/patch_inplace/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/push_back/","title":"nlohmann::basic_json::push_back","text":"
// (1)\nvoid push_back(basic_json&& val);\nvoid push_back(const basic_json& val);\n\n// (2)\nvoid push_back(const typename object_t::value_type& val);\n\n// (3)\nvoid push_back(initializer_list_t init);\n
  1. Appends the given element val to the end of the JSON array. If the function is called on a JSON null value, an empty array is created before appending val.

  2. Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

  3. This function allows using push_back with an initializer list. In case

    1. the current value is an object,
    2. the initializer list init contains only two elements, and
    3. the first element of init is a string,

    init is converted into an object element and added using push_back(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using push_back(basic_json&&).

"},{"location":"api/basic_json/push_back/#parameters","title":"Parameters","text":"val (in) the value to add to the JSON array/object init (in) an initializer list"},{"location":"api/basic_json/push_back/#exceptions","title":"Exceptions","text":"

All functions can throw the following exception: - Throws type_error.308 when called on a type other than JSON array or null; example: \"cannot use push_back() with number\"

"},{"location":"api/basic_json/push_back/#complexity","title":"Complexity","text":"
  1. Amortized constant.
  2. Logarithmic in the size of the container, O(log(size())).
  3. Linear in the size of the initializer list init.
"},{"location":"api/basic_json/push_back/#notes","title":"Notes","text":"

(3) This function is required to resolve an ambiguous overload error, because pairs like {\"key\", \"value\"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see #235 for more information.

"},{"location":"api/basic_json/push_back/#examples","title":"Examples","text":"Example: (1) add element to array

The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.push_back(6);\n    array += 7;\n    null += \"first\";\n    null += \"second\";\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6,7]\n[\"first\",\"second\"]\n
Example: (2) add element to object

The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    object.push_back(json::object_t::value_type(\"three\", 3));\n    object += json::object_t::value_type(\"four\", 4);\n    null += json::object_t::value_type(\"A\", \"a\");\n    null += json::object_t::value_type(\"B\", \"b\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n{\"A\":\"a\",\"B\":\"b\"}\n
Example: (3) add to object from initializer list

The example shows how initializer lists are treated as objects when possible.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values:\n    object.push_back({\"three\", 3});  // object is extended\n    object += {\"four\", 4};           // object is extended\n    null.push_back({\"five\", 5});     // null is converted to array\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // would throw:\n    //object.push_back({1, 2, 3});\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n[[\"five\",5]]\n
"},{"location":"api/basic_json/push_back/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.0.0.
"},{"location":"api/basic_json/rbegin/","title":"nlohmann::basic_json::rbegin","text":"
reverse_iterator rbegin() noexcept;\nconst_reverse_iterator rbegin() const noexcept;\n

Returns an iterator to the reverse-beginning; that is, the last element.

"},{"location":"api/basic_json/rbegin/#return-value","title":"Return value","text":"

reverse iterator to the first element

"},{"location":"api/basic_json/rbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/rbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/rbegin/#examples","title":"Examples","text":"Example

The following code shows an example for rbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-beginning\n    json::reverse_iterator it = array.rbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/rbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/rend/","title":"nlohmann::basic_json::rend","text":"
reverse_iterator rend() noexcept;\nconst_reverse_iterator rend() const noexcept;\n

Returns an iterator to the reverse-end; that is, one before the first element. This element acts as a placeholder, attempting to access it results in undefined behavior.

"},{"location":"api/basic_json/rend/#return-value","title":"Return value","text":"

reverse iterator to the element following the last element

"},{"location":"api/basic_json/rend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/rend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/rend/#examples","title":"Examples","text":"Example

The following code shows an example for eend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-end\n    json::reverse_iterator it = array.rend();\n\n    // increment the iterator to point to the first element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/rend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/sax_parse/","title":"nlohmann::basic_json::sax_parse","text":"
// (1)\ntemplate <typename InputType, typename SAX>\nstatic bool sax_parse(InputType&& i,\n                      SAX* sax,\n                      input_format_t format = input_format_t::json,\n                      const bool strict = true,\n                      const bool ignore_comments = false);\n\n// (2)\ntemplate<class IteratorType, class SAX>\nstatic bool sax_parse(IteratorType first, IteratorType last,\n                      SAX* sax,\n                      input_format_t format = input_format_t::json,\n                      const bool strict = true,\n                      const bool ignore_comments = false);\n

Read from input and generate SAX events

  1. Read from a compatible input.
  2. Read from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

The SAX event lister must follow the interface of json_sax.

"},{"location":"api/basic_json/sax_parse/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType Description SAX Description"},{"location":"api/basic_json/sax_parse/#parameters","title":"Parameters","text":"i (in) Input to parse from. sax (in) SAX event listener format (in) the format to parse (JSON, CBOR, MessagePack, or UBJSON) (optional, input_format_t::json by default), see input_format_t for more information strict (in) whether the input has to be consumed completely (optional, true by default) ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/sax_parse/#return-value","title":"Return value","text":"

return value of the last processed SAX event

"},{"location":"api/basic_json/sax_parse/#exception-safety","title":"Exception safety","text":""},{"location":"api/basic_json/sax_parse/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the SAX consumer sax has a super-linear complexity.

"},{"location":"api/basic_json/sax_parse/#notes","title":"Notes","text":"

A UTF-8 byte order mark is silently ignored.

"},{"location":"api/basic_json/sax_parse/#examples","title":"Examples","text":"Example

The example below demonstrates the sax_parse() function reading from string and processing the events with a user-defined SAX event consumer.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/basic_json/sax_parse/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to sax_parse with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like sax_parse({ptr, ptr+len}); with sax_parse(ptr, ptr+len);.

"},{"location":"api/basic_json/size/","title":"nlohmann::basic_json::size","text":"
size_type size() const noexcept;\n

Returns the number of elements in a JSON value.

"},{"location":"api/basic_json/size/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null 0 boolean 1 string 1 number 1 binary 1 object result of function object_t::size() array result of function array_t::size()"},{"location":"api/basic_json/size/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/size/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their size() functions have constant complexity.

"},{"location":"api/basic_json/size/#notes","title":"Notes","text":"

This function does not return the length of a string stored as JSON value -- it returns the number of elements in the JSON value which is 1 in the case of a string.

"},{"location":"api/basic_json/size/#examples","title":"Examples","text":"Example

The following code calls size() on the different value types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call size()\n    std::cout << j_null.size() << '\\n';\n    std::cout << j_boolean.size() << '\\n';\n    std::cout << j_number_integer.size() << '\\n';\n    std::cout << j_number_float.size() << '\\n';\n    std::cout << j_object.size() << '\\n';\n    std::cout << j_object_empty.size() << '\\n';\n    std::cout << j_array.size() << '\\n';\n    std::cout << j_array_empty.size() << '\\n';\n    std::cout << j_string.size() << '\\n';\n}\n

Output:

0\n1\n1\n1\n2\n0\n5\n0\n1\n
"},{"location":"api/basic_json/size/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return 1 for binary types in version 3.8.0.
"},{"location":"api/basic_json/std_hash/","title":"std::hash<nlohmann::basic_json>","text":"
namespace std {\n    struct hash<nlohmann::basic_json>;\n}\n

Return a hash value for a JSON object. The hash function tries to rely on std::hash where possible. Furthermore, the type of the JSON value is taken into account to have different hash values for null, 0, 0U, and false, etc.

"},{"location":"api/basic_json/std_hash/#examples","title":"Examples","text":"Example

The example shows how to calculate hash values for different JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    std::cout << \"hash(null) = \" << std::hash<json> {}(json(nullptr)) << '\\n'\n              << \"hash(false) = \" << std::hash<json> {}(json(false)) << '\\n'\n              << \"hash(0) = \" << std::hash<json> {}(json(0)) << '\\n'\n              << \"hash(0U) = \" << std::hash<json> {}(json(0U)) << '\\n'\n              << \"hash(\\\"\\\") = \" << std::hash<json> {}(json(\"\")) << '\\n'\n              << \"hash({}) = \" << std::hash<json> {}(json::object()) << '\\n'\n              << \"hash([]) = \" << std::hash<json> {}(json::array()) << '\\n'\n              << \"hash({\\\"hello\\\": \\\"world\\\"}) = \" << std::hash<json> {}(\"{\\\"hello\\\": \\\"world\\\"}\"_json)\n              << std::endl;\n}\n

Output:

hash(null) = 2654435769\nhash(false) = 2654436030\nhash(0) = 2654436095\nhash(0U) = 2654436156\nhash(\"\") = 6142509191626859748\nhash({}) = 2654435832\nhash([]) = 2654435899\nhash({\"hello\": \"world\"}) = 4469488738203676328\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/std_hash/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended for arbitrary basic_json types in version 3.10.5.
"},{"location":"api/basic_json/std_swap/","title":"std::swap<basic_json>","text":"
namespace std {\n    void swap(nlohmann::basic_json& j1, nlohmann::basic_json& j2);\n}\n

Exchanges the values of two JSON objects.

"},{"location":"api/basic_json/std_swap/#parameters","title":"Parameters","text":"j1 (in, out) value to be replaced by j2 j2 (in, out) value to be replaced by j1"},{"location":"api/basic_json/std_swap/#possible-implementation","title":"Possible implementation","text":"
void swap(nlohmann::basic_json& j1, nlohmann::basic_json& j2)\n{\n    j1.swap(j2);\n}\n
"},{"location":"api/basic_json/std_swap/#examples","title":"Examples","text":"Example

The following code shows how two values are swapped with std::swap.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j1 = {{\"one\", 1}, {\"two\", 2}};\n    json j2 = {1, 2, 4, 8, 16};\n\n    std::cout << \"j1 = \" << j1 << \" | j2 = \" << j2 << '\\n';\n\n    // swap values\n    std::swap(j1, j2);\n\n    std::cout << \"j1 = \" << j1 << \" | j2 = \" << j2 << std::endl;\n}\n

Output:

j1 = {\"one\":1,\"two\":2} | j2 = [1,2,4,8,16]\nj1 = [1,2,4,8,16] | j2 = {\"one\":1,\"two\":2}\n
"},{"location":"api/basic_json/std_swap/#see-also","title":"See also","text":"
  • swap
"},{"location":"api/basic_json/std_swap/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended for arbitrary basic_json types in version 3.10.5.
"},{"location":"api/basic_json/string_t/","title":"nlohmann::basic_json::string_t","text":"
using string_t = StringType;\n

The type used to store JSON strings.

RFC 8259 describes JSON strings as follows:

A string is a sequence of zero or more Unicode characters.

To store objects in C++, a type is defined by the template parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization.

"},{"location":"api/basic_json/string_t/#template-parameters","title":"Template parameters","text":"StringType the container to store strings (e.g., std::string). Note this container is used for keys/names in objects, see object_t."},{"location":"api/basic_json/string_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/string_t/#default-type","title":"Default type","text":"

With the default values for StringType (std::string), the default value for string_t is std::string.

"},{"location":"api/basic_json/string_t/#encoding","title":"Encoding","text":"

Strings are stored in UTF-8 encoding. Therefore, functions like std::string::size() or std::string::length() return the number of bytes in the string rather than the number of characters or glyphs.

"},{"location":"api/basic_json/string_t/#string-comparison","title":"String comparison","text":"

RFC 8259 states:

Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that \"a\\\\b\" and \"a\\u005Cb\" are not equal.

This implementation is interoperable as it does compare strings code unit by code unit.

"},{"location":"api/basic_json/string_t/#storage","title":"Storage","text":"

String values are stored as pointers in a basic_json type. That is, for any access to string values, a pointer of type string_t* must be dereferenced.

"},{"location":"api/basic_json/string_t/#examples","title":"Examples","text":"Example

The following code shows that string_t is by default, a typedef to std::string.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::string, json::string_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/string_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/swap/","title":"nlohmann::basic_json::swap","text":"
// (1)\nvoid swap(reference other) noexcept;\n\n// (2)\nvoid swap(reference left, reference right) noexcept;\n\n// (3)\nvoid swap(array_t& other);\n\n// (4)\nvoid swap(object_t& other);\n\n// (5)\nvoid swap(string_t& other);\n\n// (6)\nvoid swap(binary_t& other);\n\n// (7)\nvoid swap(typename binary_t::container_type& other);\n
  1. Exchanges the contents of the JSON value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  2. Exchanges the contents of the JSON value from left with those of right. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Implemented as a friend function callable via ADL.
  3. Exchanges the contents of a JSON array with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  4. Exchanges the contents of a JSON object with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  5. Exchanges the contents of a JSON string with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  6. Exchanges the contents of a binary value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  7. Exchanges the contents of a binary value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Unlike version (6), no binary subtype is involved.
"},{"location":"api/basic_json/swap/#parameters","title":"Parameters","text":"other (in, out) value to exchange the contents with left (in, out) value to exchange the contents with right (in, out) value to exchange the contents with"},{"location":"api/basic_json/swap/#exceptions","title":"Exceptions","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. No-throw guarantee: this function never throws exceptions.
  3. Throws type_error.310 if called on JSON values other than arrays; example: \"cannot use swap() with boolean\"
  4. Throws type_error.310 if called on JSON values other than objects; example: \"cannot use swap() with boolean\"
  5. Throws type_error.310 if called on JSON values other than strings; example: \"cannot use swap() with boolean\"
  6. Throws type_error.310 if called on JSON values other than binaries; example: \"cannot use swap() with boolean\"
  7. Throws type_error.310 if called on JSON values other than binaries; example: \"cannot use swap() with boolean\"
"},{"location":"api/basic_json/swap/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/swap/#examples","title":"Examples","text":"Example: Swap JSON value (1, 2)

The example below shows how JSON values can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create two JSON values\n    json j1 = {1, 2, 3, 4, 5};\n    json j2 = {{\"pi\", 3.141592653589793}, {\"e\", 2.718281828459045}};\n\n    // swap the values\n    j1.swap(j2);\n\n    // output the values\n    std::cout << \"j1 = \" << j1 << '\\n';\n    std::cout << \"j2 = \" << j2 << '\\n';\n}\n

Output:

j1 = {\"e\":2.718281828459045,\"pi\":3.141592653589793}\nj2 = [1,2,3,4,5]\n
Example: Swap array (3)

The example below shows how arrays can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = {{\"array\", {1, 2, 3, 4}}};\n\n    // create an array_t\n    json::array_t array = {\"Snap\", \"Crackle\", \"Pop\"};\n\n    // swap the array stored in the JSON value\n    value[\"array\"].swap(array);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"array = \" << array << '\\n';\n}\n

Output:

value = {\"array\":[\"Snap\",\"Crackle\",\"Pop\"]}\narray = [1,2,3,4]\n
Example: Swap object (4)

The example below shows how objects can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = { {\"translation\", {{\"one\", \"eins\"}, {\"two\", \"zwei\"}}} };\n\n    // create an object_t\n    json::object_t object = {{\"cow\", \"Kuh\"}, {\"dog\", \"Hund\"}};\n\n    // swap the object stored in the JSON value\n    value[\"translation\"].swap(object);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"object = \" << object << '\\n';\n}\n

Output:

value = {\"translation\":{\"cow\":\"Kuh\",\"dog\":\"Hund\"}}\nobject = {\"one\":\"eins\",\"two\":\"zwei\"}\n
Example: Swap string (5)

The example below shows how strings can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = { \"the good\", \"the bad\", \"the ugly\" };\n\n    // create string_t\n    json::string_t string = \"the fast\";\n\n    // swap the object stored in the JSON value\n    value[1].swap(string);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"string = \" << string << '\\n';\n}\n

Output:

value = [\"the good\",\"the fast\",\"the ugly\"]\nstring = the bad\n
Example: Swap string (6)

The example below shows how binary values can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary value\n    json value = json::binary({1, 2, 3});\n\n    // create a binary_t\n    json::binary_t binary = {{4, 5, 6}};\n\n    // swap the object stored in the JSON value\n    value.swap(binary);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"binary = \" << json(binary) << '\\n';\n}\n

Output:

value = {\"bytes\":[4,5,6],\"subtype\":null}\nbinary = {\"bytes\":[1,2,3],\"subtype\":null}\n
"},{"location":"api/basic_json/swap/#see-also","title":"See also","text":"
  • std::swap<basic_json>
"},{"location":"api/basic_json/swap/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 1.0.0.
  4. Since version 1.0.0.
  5. Since version 1.0.0.
  6. Since version 3.8.0.
  7. Since version 3.8.0.
"},{"location":"api/basic_json/to_bjdata/","title":"nlohmann::basic_json::to_bjdata","text":"
// (1)\nstatic std::vector<std::uint8_t> to_bjdata(const basic_json& j,\n                                           const bool use_size = false,\n                                           const bool use_type = false);\n\n// (2)\nstatic void to_bjdata(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                      const bool use_size = false, const bool use_type = false);\nstatic void to_bjdata(const basic_json& j, detail::output_adapter<char> o,\n                      const bool use_size = false, const bool use_type = false);\n

Serializes a given JSON value j to a byte vector using the BJData (Binary JData) serialization format. BJData aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the BJData serialization.
  2. Writes the BJData serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_bjdata/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to use_size (in) whether to add size annotations to container types; optional, false by default. use_type (in) whether to add type annotations to container types (must be combined with use_size = true); optional, false by default."},{"location":"api/basic_json/to_bjdata/#return-value","title":"Return value","text":"
  1. BJData serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_bjdata/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_bjdata/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_bjdata/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in BJData format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print BJData's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to BJData\n    std::vector<std::uint8_t> v = json::to_bjdata(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to BJData using default representation\n    std::vector<std::uint8_t> v_array = json::to_bjdata(array);\n    // serialize it to BJData using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_bjdata(array, true);\n    // serialize it to BJData using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_bjdata(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"api/basic_json/to_bjdata/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/to_bson/","title":"nlohmann::basic_json::to_bson","text":"
// (1)\nstatic std::vector<std::uint8_t> to_bson(const basic_json& j);\n\n// (2)\nstatic void to_bson(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_bson(const basic_json& j, detail::output_adapter<char> o);\n

BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are stored as a single entity (a so-called document).

  1. Returns a byte vector containing the BSON serialization.
  2. Writes the BSON serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_bson/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_bson/#return-value","title":"Return value","text":"
  1. BSON serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_bson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_bson/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_bson/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in BSON format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to BSON\n    std::vector<std::uint8_t> v = json::to_bson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x1b 0x00 0x00 0x00 0x08 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0x00 0x01 0x10 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 0x00 0x00 0x00 0x00 0x00 \n
"},{"location":"api/basic_json/to_bson/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.
"},{"location":"api/basic_json/to_cbor/","title":"nlohmann::basic_json::to_cbor","text":"
// (1)\nstatic std::vector<std::uint8_t> to_cbor(const basic_json& j);\n\n// (2)\nstatic void to_cbor(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_cbor(const basic_json& j, detail::output_adapter<char> o);\n

Serializes a given JSON value j to a byte vector using the CBOR (Concise Binary Object Representation) serialization format. CBOR is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the CBOR serialization.
  2. Writes the CBOR serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_cbor/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_cbor/#return-value","title":"Return value","text":"
  1. CBOR serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_cbor/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_cbor/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_cbor/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in CBOR format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to CBOR\n    std::vector<std::uint8_t> v = json::to_cbor(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0xa2 0x67 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xf5 0x66 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"api/basic_json/to_cbor/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Compact representation of floating-point numbers added in version 3.8.0.
"},{"location":"api/basic_json/to_msgpack/","title":"nlohmann::basic_json::to_msgpack","text":"
// (1)\nstatic std::vector<std::uint8_t> to_msgpack(const basic_json& j);\n\n// (2)\nstatic void to_msgpack(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_msgpack(const basic_json& j, detail::output_adapter<char> o);\n

Serializes a given JSON value j to a byte vector using the MessagePack serialization format. MessagePack is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the MessagePack serialization.
  2. Writes the MessagePack serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_msgpack/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_msgpack/#return-value","title":"Return value","text":"
  1. MessagePack serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_msgpack/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_msgpack/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_msgpack/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in MessagePack format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to MessagePack\n    std::vector<std::uint8_t> v = json::to_msgpack(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x82 0xa7 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xc3 0xa6 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"api/basic_json/to_msgpack/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
"},{"location":"api/basic_json/to_string/","title":"to_string(basic_json)","text":"
template <typename BasicJsonType>\nstd::string to_string(const BasicJsonType& j);\n

This function implements a user-defined to_string for JSON objects.

"},{"location":"api/basic_json/to_string/#template-parameters","title":"Template parameters","text":"BasicJsonType a specialization of basic_json"},{"location":"api/basic_json/to_string/#return-value","title":"Return value","text":"

string containing the serialization of the JSON value

"},{"location":"api/basic_json/to_string/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/to_string/#exceptions","title":"Exceptions","text":"

Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded

"},{"location":"api/basic_json/to_string/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/to_string/#possible-implementation","title":"Possible implementation","text":"
template <typename BasicJsonType>\nstd::string to_string(const BasicJsonType& j)\n{\n    return j.dump();\n}\n
"},{"location":"api/basic_json/to_string/#examples","title":"Examples","text":"Example

The following code shows how the library's to_string() function integrates with others, allowing argument-dependent lookup.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing std::to_string;\n\nint main()\n{\n    // create values\n    json j = {{\"one\", 1}, {\"two\", 2}};\n    int i = 42;\n\n    // use ADL to select best to_string function\n    auto j_str = to_string(j);  // calling nlohmann::to_string\n    auto i_str = to_string(i);  // calling std::to_string\n\n    // serialize without indentation\n    std::cout << j_str << \"\\n\\n\"\n              << i_str << std::endl;\n}\n

Output:

{\"one\":1,\"two\":2}\n\n42\n
"},{"location":"api/basic_json/to_string/#see-also","title":"See also","text":"
  • dump
"},{"location":"api/basic_json/to_string/#version-history","title":"Version history","text":"

Added in version 3.7.0.

"},{"location":"api/basic_json/to_ubjson/","title":"nlohmann::basic_json::to_ubjson","text":"
// (1)\nstatic std::vector<std::uint8_t> to_ubjson(const basic_json& j,\n                                           const bool use_size = false,\n                                           const bool use_type = false);\n\n// (2)\nstatic void to_ubjson(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                      const bool use_size = false, const bool use_type = false);\nstatic void to_ubjson(const basic_json& j, detail::output_adapter<char> o,\n                      const bool use_size = false, const bool use_type = false);\n

Serializes a given JSON value j to a byte vector using the UBJSON (Universal Binary JSON) serialization format. UBJSON aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the UBJSON serialization.
  2. Writes the UBJSON serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_ubjson/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to use_size (in) whether to add size annotations to container types; optional, false by default. use_type (in) whether to add type annotations to container types (must be combined with use_size = true); optional, false by default."},{"location":"api/basic_json/to_ubjson/#return-value","title":"Return value","text":"
  1. UBJSON serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_ubjson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_ubjson/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_ubjson/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in UBJSON format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print UBJSON's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to UBJSON\n    std::vector<std::uint8_t> v = json::to_ubjson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to UBJSON using default representation\n    std::vector<std::uint8_t> v_array = json::to_ubjson(array);\n    // serialize it to UBJSON using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_ubjson(array, true);\n    // serialize it to UBJSON using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_ubjson(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"api/basic_json/to_ubjson/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"api/basic_json/type/","title":"nlohmann::basic_json::type","text":"
constexpr value_t type() const noexcept;\n

Return the type of the JSON value as a value from the value_t enumeration.

"},{"location":"api/basic_json/type/#return-value","title":"Return value","text":"

the type of the JSON value

Value type return value null value_t::null boolean value_t::boolean string value_t::string number (integer) value_t::number_integer number (unsigned integer) value_t::number_unsigned number (floating-point) value_t::number_float object value_t::object array value_t::array binary value_t::binary discarded value_t::discarded"},{"location":"api/basic_json/type/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/type/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/type/#examples","title":"Examples","text":"Example

The following code exemplifies type() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type()\n    std::cout << std::boolalpha;\n    std::cout << (j_null.type() == json::value_t::null) << '\\n';\n    std::cout << (j_boolean.type() == json::value_t::boolean) << '\\n';\n    std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\\n';\n    std::cout << (j_number_unsigned.type() == json::value_t::number_unsigned) << '\\n';\n    std::cout << (j_number_float.type() == json::value_t::number_float) << '\\n';\n    std::cout << (j_object.type() == json::value_t::object) << '\\n';\n    std::cout << (j_array.type() == json::value_t::array) << '\\n';\n    std::cout << (j_string.type() == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/type/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/type_error/","title":"nlohmann::basic_json::type_error","text":"
class type_error : public exception;\n

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

Exceptions have ids 3xx (see list of type errors).

"},{"location":"api/basic_json/type_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/type_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/type_error/#examples","title":"Examples","text":"Example

The following code shows how a type_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling push_back() on a string value\n        json j = \"string\";\n        j.push_back(\"another string\");\n    }\n    catch (const json::type_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.type_error.308] cannot use push_back() with string\nexception id: 308\n
"},{"location":"api/basic_json/type_error/#see-also","title":"See also","text":"
  • List of type errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/type_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/type_name/","title":"nlohmann::basic_json::type_name","text":"
const char* type_name() const noexcept;\n

Returns the type name as string to be used in error messages -- usually to indicate that a function was called on a wrong JSON type.

"},{"location":"api/basic_json/type_name/#return-value","title":"Return value","text":"

a string representation of the type (value_t):

Value type return value null \"null\" boolean \"boolean\" string \"string\" number (integer, unsigned integer, floating-point) \"number\" object \"object\" array \"array\" binary \"binary\" discarded \"discarded\""},{"location":"api/basic_json/type_name/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/type_name/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/type_name/#examples","title":"Examples","text":"Example

The following code exemplifies type_name() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type_name()\n    std::cout << j_null << \" is a \" << j_null.type_name() << '\\n';\n    std::cout << j_boolean << \" is a \" << j_boolean.type_name() << '\\n';\n    std::cout << j_number_integer << \" is a \" << j_number_integer.type_name() << '\\n';\n    std::cout << j_number_unsigned << \" is a \" << j_number_unsigned.type_name() << '\\n';\n    std::cout << j_number_float << \" is a \" << j_number_float.type_name() << '\\n';\n    std::cout << j_object << \" is an \" << j_object.type_name() << '\\n';\n    std::cout << j_array << \" is an \" << j_array.type_name() << '\\n';\n    std::cout << j_string << \" is a \" << j_string.type_name() << '\\n';\n}\n

Output:

null is a null\ntrue is a boolean\n-17 is a number\n42 is a number\n23.42 is a number\n{\"one\":1,\"two\":2} is an object\n[1,2,4,8,16] is an array\n\"Hello, world\" is a string\n
"},{"location":"api/basic_json/type_name/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Part of the public API version since 2.1.0.
  • Changed return value to const char* and added noexcept in version 3.0.0.
  • Added support for binary type in version 3.8.0.
"},{"location":"api/basic_json/unflatten/","title":"nlohmann::basic_json::unflatten","text":"
basic_json unflatten() const;\n

The function restores the arbitrary nesting of a JSON value that has been flattened before using the flatten() function. The JSON value must meet certain constraints:

  1. The value must be an object.
  2. The keys must be JSON pointers (see RFC 6901)
  3. The mapped values must be primitive JSON types.
"},{"location":"api/basic_json/unflatten/#return-value","title":"Return value","text":"

the original JSON from a flattened version

"},{"location":"api/basic_json/unflatten/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/unflatten/#exceptions","title":"Exceptions","text":"

The function can throw the following exceptions:

  • Throws type_error.314 if value is not an object
  • Throws type_error.315 if object values are not primitive
"},{"location":"api/basic_json/unflatten/#complexity","title":"Complexity","text":"

Linear in the size the JSON value.

"},{"location":"api/basic_json/unflatten/#notes","title":"Notes","text":"

Empty objects and arrays are flattened by flatten() to null values and can not unflattened to their original type. Apart from this example, for a JSON value j, the following is always true: j == j.flatten().unflatten().

"},{"location":"api/basic_json/unflatten/#examples","title":"Examples","text":"Example

The following code shows how a flattened JSON object is unflattened into the original nested JSON object.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value\n    json j_flattened =\n    {\n        {\"/answer/everything\", 42},\n        {\"/happy\", true},\n        {\"/list/0\", 1},\n        {\"/list/1\", 0},\n        {\"/list/2\", 2},\n        {\"/name\", \"Niels\"},\n        {\"/nothing\", nullptr},\n        {\"/object/currency\", \"USD\"},\n        {\"/object/value\", 42.99},\n        {\"/pi\", 3.141}\n    };\n\n    // call unflatten()\n    std::cout << std::setw(4) << j_flattened.unflatten() << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141\n}\n
"},{"location":"api/basic_json/unflatten/#see-also","title":"See also","text":"
  • flatten the reverse function
"},{"location":"api/basic_json/unflatten/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/update/","title":"nlohmann::basic_json::update","text":"
// (1)\nvoid update(const_reference j, bool merge_objects = false);\n\n// (2)\nvoid update(const_iterator first, const_iterator last, bool merge_objects = false);\n
  1. Inserts all values from JSON object j.
  2. Inserts all values from range [first, last)

When merge_objects is false (default), existing keys are overwritten. When merge_objects is true, recursively merges objects with common keys.

The function is motivated by Python's dict.update function.

"},{"location":"api/basic_json/update/#parameters","title":"Parameters","text":"j (in) JSON object to read values from merge_objects (in) when true, existing keys are not overwritten, but contents of objects are merged recursively (default: false) first (in) begin of the range of elements to insert last (in) end of the range of elements to insert"},{"location":"api/basic_json/update/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: \"cannot use update() with string\"
  2. The function can throw the following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: \"cannot use update() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
"},{"location":"api/basic_json/update/#complexity","title":"Complexity","text":"
  1. O(N*log(size() + N)), where N is the number of elements to insert.
  2. O(N*log(size() + N)), where N is the number of elements to insert.
"},{"location":"api/basic_json/update/#examples","title":"Examples","text":"Example

The example shows how update() is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create two JSON objects\n    json o1 = R\"( {\"color\": \"red\", \"price\": 17.99, \"names\": {\"de\": \"Flugzeug\"}} )\"_json;\n    json o2 = R\"( {\"color\": \"blue\", \"speed\": 100, \"names\": {\"en\": \"plane\"}} )\"_json;\n    json o3 = o1;\n\n    // add all keys from o2 to o1 (updating \"color\", replacing \"names\")\n    o1.update(o2);\n\n    // add all keys from o2 to o1 (updating \"color\", merging \"names\")\n    o3.update(o2, true);\n\n    // output updated object o1 and o3\n    std::cout << std::setw(2) << o1 << '\\n';\n    std::cout << std::setw(2) << o3 << '\\n';\n}\n

Output:

{\n  \"color\": \"blue\",\n  \"names\": {\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n{\n  \"color\": \"blue\",\n  \"names\": {\n    \"de\": \"Flugzeug\",\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n
Example

The example shows how update() is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create two JSON objects\n    json o1 = R\"( {\"color\": \"red\", \"price\": 17.99, \"names\": {\"de\": \"Flugzeug\"}} )\"_json;\n    json o2 = R\"( {\"color\": \"blue\", \"speed\": 100, \"names\": {\"en\": \"plane\"}} )\"_json;\n    json o3 = o1;\n\n    // add all keys from o2 to o1 (updating \"color\", replacing \"names\")\n    o1.update(o2.begin(), o2.end());\n\n    // add all keys from o2 to o1 (updating \"color\", merging \"names\")\n    o3.update(o2.begin(), o2.end(), true);\n\n    // output updated object o1 and o3\n    std::cout << std::setw(2) << o1 << '\\n';\n    std::cout << std::setw(2) << o3 << '\\n';\n}\n

Output:

{\n  \"color\": \"blue\",\n  \"names\": {\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n{\n  \"color\": \"blue\",\n  \"names\": {\n    \"de\": \"Flugzeug\",\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n
Example

One common use case for this function is the handling of user settings. Assume your application can be configured in some aspects:

{\n    \"color\": \"red\",\n    \"active\": true,\n    \"name\": {\"de\": \"Maus\", \"en\": \"mouse\"}\n}\n

The user may override the default settings selectively:

{\n    \"color\": \"blue\",\n    \"name\": {\"es\": \"rat\u00f3n\"},\n}\n

Then update manages the merging of default settings and user settings:

auto user_settings = json::parse(\"config.json\");\nauto effective_settings = get_default_settings();\neffective_settings.update(user_settings);\n

Now effective_settings contains the default settings, but those keys set by the user are overwritten:

{\n    \"color\": \"blue\",\n    \"active\": true,\n    \"name\": {\"es\": \"rat\u00f3n\"}\n}\n

Note existing keys were just overwritten. To merge objects, merge_objects setting should be set to true:

auto user_settings = json::parse(\"config.json\");\nauto effective_settings = get_default_settings();\neffective_settings.update(user_settings, true);\n
{\n    \"color\": \"blue\",\n    \"active\": true,\n    \"name\": {\"de\": \"Maus\", \"en\": \"mouse\", \"es\": \"rat\u00f3n\"}\n}\n
"},{"location":"api/basic_json/update/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Added merge_objects parameter in 3.10.4.
"},{"location":"api/basic_json/value/","title":"nlohmann::basic_json::value","text":"
// (1)\ntemplate<class ValueType>\nValueType value(const typename object_t::key_type& key,\n                ValueType&& default_value) const;\n\n// (2)\ntemplate<class ValueType, class KeyType>\nValueType value(KeyType&& key,\n                ValueType&& default_value) const;\n\n// (3)\ntemplate<class ValueType>\nValueType value(const json_pointer& ptr,\n                const ValueType& default_value) const;\n
  1. Returns either a copy of an object's element at the specified key key or a given default value if no element with key key exists.

    The function is basically equivalent to executing

    try {\n   return at(key);\n} catch(out_of_range) {\n   return default_value;\n}\n

  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.

  3. Returns either a copy of an object's element at the specified JSON pointer ptr or a given default value if no value at ptr exists.

    The function is basically equivalent to executing

    try {\n   return at(ptr);\n} catch(out_of_range) {\n   return default_value;\n}\n

Differences to at and operator[]

  • Unlike at, this function does not throw if the given key/ptr was not found.
  • Unlike operator[], this function does not implicitly add an element to the position defined by key/ptr key. This function is furthermore also applicable to const objects.
"},{"location":"api/basic_json/value/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17). ValueType type compatible to JSON values, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. Note the type of the expected value at key/ptr and the default value default_value must be compatible."},{"location":"api/basic_json/value/#parameters","title":"Parameters","text":"key (in) key of the element to access default_value (in) the value to return if key/ptr found no value ptr (in) a JSON pointer to the element to access"},{"location":"api/basic_json/value/#return-value","title":"Return value","text":"
  1. copy of the element at key key or default_value if key is not found
  2. copy of the element at key key or default_value if key is not found
  3. copy of the element at JSON Pointer ptr or default_value if no value for ptr is found
"},{"location":"api/basic_json/value/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/value/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.302 if default_value does not match the type of the value at key
    • Throws type_error.306 if the JSON value is not an object; in that case, using value() with a key makes no sense.
  2. See 1.
  3. The function can throw the following exceptions:
    • Throws type_error.302 if default_value does not match the type of the value at ptr
    • Throws type_error.306 if the JSON value is not an object; in that case, using value() with a key makes no sense.
"},{"location":"api/basic_json/value/#complexity","title":"Complexity","text":"
  1. Logarithmic in the size of the container.
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
"},{"location":"api/basic_json/value/#examples","title":"Examples","text":"Example: (1) access specified object element with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"integer\", 0);\n    double v_floating = j.value(\"floating\", 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"nonexisting\", \"oops\");\n    bool v_boolean = j.value(\"nonexisting\", false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
Example: (2) access specified object element using string_view with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"integer\"sv, 0);\n    double v_floating = j.value(\"floating\"sv, 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"nonexisting\"sv, \"oops\");\n    bool v_boolean = j.value(\"nonexisting\"sv, false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
Example: (3) access specified object element via JSON Pointer with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"/integer\"_json_pointer, 0);\n    double v_floating = j.value(\"/floating\"_json_pointer, 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"/nonexisting\"_json_pointer, \"oops\");\n    bool v_boolean = j.value(\"/nonexisting\"_json_pointer, false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
"},{"location":"api/basic_json/value/#see-also","title":"See also","text":"
  • see at for access by reference with range checking
  • see operator[] for unchecked access by reference
"},{"location":"api/basic_json/value/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Changed parameter default_value type from const ValueType& to ValueType&& in version 3.11.0.
  2. Added in version 3.11.0. Made ValueType the first template parameter in version 3.11.2.
  3. Added in version 2.0.2.
"},{"location":"api/basic_json/value_t/","title":"nlohmann::basic_json::value_t","text":"
enum class value_t : std::uint8_t {\n    null,\n    object,\n    array,\n    string,\n    boolean,\n    number_integer,\n    number_unsigned,\n    number_float,\n    binary,\n    discarded\n};\n

This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions is_null, is_object, is_array, is_string, is_boolean, is_number (with is_number_integer, is_number_unsigned, and is_number_float), is_discarded, is_binary, is_primitive, and is_structured rely on it.

"},{"location":"api/basic_json/value_t/#notes","title":"Notes","text":"

Ordering

The order of types is as follows:

  1. null
  2. boolean
  3. number_integer, number_unsigned, number_float
  4. object
  5. array
  6. string
  7. binary

discarded is unordered.

Types of numbers

There are three enumerators for numbers (number_integer, number_unsigned, and number_float) to distinguish between different types of numbers:

  • number_unsigned_t for unsigned integers
  • number_integer_t for signed integers
  • number_float_t for floating-point numbers or to approximate integers which do not fit into the limits of their respective type

Comparison operators

operator< and operator<=> (since C++20) are overloaded and compare according to the ordering described above. Until C++20 all other relational and equality operators yield results according to the integer value of each enumerator. Since C++20 some compilers consider the rewritten candidates generated from operator<=> during overload resolution, while others do not. For predictable and portable behavior use:

  • operator< or operator<=> when wanting to compare according to the order described above
  • operator== or operator!= when wanting to compare according to each enumerators integer value
"},{"location":"api/basic_json/value_t/#examples","title":"Examples","text":"Example

The following code how type() queries the value_t for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type()\n    std::cout << std::boolalpha;\n    std::cout << (j_null.type() == json::value_t::null) << '\\n';\n    std::cout << (j_boolean.type() == json::value_t::boolean) << '\\n';\n    std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\\n';\n    std::cout << (j_number_unsigned.type() == json::value_t::number_unsigned) << '\\n';\n    std::cout << (j_number_float.type() == json::value_t::number_float) << '\\n';\n    std::cout << (j_object.type() == json::value_t::object) << '\\n';\n    std::cout << (j_array.type() == json::value_t::array) << '\\n';\n    std::cout << (j_string.type() == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/value_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/~basic_json/","title":"nlohmann::basic_json::~basic_json","text":"
~basic_json() noexcept;\n

Destroys the JSON value and frees all allocated memory.

"},{"location":"api/basic_json/~basic_json/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/~basic_json/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/~basic_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/byte_container_with_subtype/","title":"nlohmann::byte_container_with_subtype","text":"
template<typename BinaryType>\nclass byte_container_with_subtype : public BinaryType;\n

This type extends the template parameter BinaryType provided to basic_json with a subtype used by BSON and MessagePack. This type exists so that the user does not have to specify a type themselves with a specific naming scheme in order to override the binary type.

"},{"location":"api/byte_container_with_subtype/#template-parameters","title":"Template parameters","text":"BinaryType container to store bytes (std::vector<std::uint8_t> by default)"},{"location":"api/byte_container_with_subtype/#member-types","title":"Member types","text":"
  • container_type - the type of the underlying container (BinaryType)
  • subtype_type - the type of the subtype (std::uint64_t)
"},{"location":"api/byte_container_with_subtype/#member-functions","title":"Member functions","text":"
  • (constructor)
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • set_subtype - sets the binary subtype
  • subtype - return the binary subtype
  • has_subtype - return whether the value has a subtype
  • clear_subtype - clears the binary subtype
"},{"location":"api/byte_container_with_subtype/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
  • Changed type of subtypes to std::uint64_t in 3.10.0.
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/","title":"nlohmann::byte_container_with_subtype::byte_container_with_subtype","text":"
// (1)\nbyte_container_with_subtype();\n\n// (2)\nbyte_container_with_subtype(const container_type& container);\nbyte_container_with_subtype(container_type&& container);\n\n// (3)\nbyte_container_with_subtype(const container_type& container, subtype_type subtype);\nbyte_container_with_subtype(container_type&& container, subtype_type subtype);\n
  1. Create empty binary container without subtype.
  2. Create binary container without subtype.
  3. Create binary container with subtype.
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#parameters","title":"Parameters","text":"container (in) binary container subtype (in) subtype"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how byte containers can be created.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // (1) create empty container\n    auto c1 = byte_container_with_subtype();\n\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // (2) create container\n    auto c2 = byte_container_with_subtype(bytes);\n\n    // (3) create container with subtype\n    auto c3 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << json(c1) << \"\\n\" << json(c2) << \"\\n\" << json(c3) << std::endl;\n}\n

Output:

{\"bytes\":[],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":42}\n
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/clear_subtype/","title":"nlohmann::byte_container_with_subtype::clear_subtype","text":"
void clear_subtype() noexcept;\n

Clears the binary subtype and flags the value as not having a subtype, which has implications for serialization; for instance MessagePack will prefer the bin family over the ext family.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how clear_subtype can remove subtypes.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container with subtype\n    auto c1 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << \"before calling clear_subtype(): \" << json(c1) << '\\n';\n\n    c1.clear_subtype();\n\n    std::cout << \"after calling clear_subtype(): \" << json(c1) << '\\n';\n}\n

Output:

before calling clear_subtype(): {\"bytes\":[202,254,186,190],\"subtype\":42}\nafter calling clear_subtype(): {\"bytes\":[202,254,186,190],\"subtype\":null}\n
"},{"location":"api/byte_container_with_subtype/clear_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/has_subtype/","title":"nlohmann::byte_container_with_subtype::has_subtype","text":"
constexpr bool has_subtype() const noexcept;\n

Returns whether the value has a subtype.

"},{"location":"api/byte_container_with_subtype/has_subtype/#return-value","title":"Return value","text":"

whether the value has a subtype

"},{"location":"api/byte_container_with_subtype/has_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/has_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/has_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how has_subtype can check whether a subtype was set.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container\n    auto c1 = byte_container_with_subtype(bytes);\n\n    // create container with subtype\n    auto c2 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << std::boolalpha << \"c1.has_subtype() = \" << c1.has_subtype()\n              << \"\\nc2.has_subtype() = \" << c2.has_subtype() << std::endl;\n}\n

Output:

c1.has_subtype() = false\nc2.has_subtype() = true\n
"},{"location":"api/byte_container_with_subtype/has_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/set_subtype/","title":"nlohmann::byte_container_with_subtype::set_subtype","text":"
void set_subtype(subtype_type subtype) noexcept;\n

Sets the binary subtype of the value, also flags a binary JSON value as having a subtype, which has implications for serialization.

"},{"location":"api/byte_container_with_subtype/set_subtype/#parameters","title":"Parameters","text":"subtype (in) subtype to set"},{"location":"api/byte_container_with_subtype/set_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/set_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/set_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how a subtype can be set with set_subtype.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container without subtype\n    auto c = byte_container_with_subtype(bytes);\n\n    std::cout << \"before calling set_subtype(42): \" << json(c) << '\\n';\n\n    // set the subtype\n    c.set_subtype(42);\n\n    std::cout << \"after calling set_subtype(42): \" << json(c) << '\\n';\n}\n

Output:

before calling set_subtype(42): {\"bytes\":[202,254,186,190],\"subtype\":null}\nafter calling set_subtype(42): {\"bytes\":[202,254,186,190],\"subtype\":42}\n
"},{"location":"api/byte_container_with_subtype/set_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/subtype/","title":"nlohmann::byte_container_with_subtype::subtype","text":"
constexpr subtype_type subtype() const noexcept;\n

Returns the numerical subtype of the value if it has a subtype. If it does not have a subtype, this function will return subtype_type(-1) as a sentinel value.

"},{"location":"api/byte_container_with_subtype/subtype/#return-value","title":"Return value","text":"

the numerical subtype of the binary value, or subtype_type(-1) if no subtype is set

"},{"location":"api/byte_container_with_subtype/subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how the subtype can be retrieved with subtype. Note how subtype_type(-1) is returned for container c1.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container\n    auto c1 = byte_container_with_subtype(bytes);\n\n    // create container with subtype\n    auto c2 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << \"c1.subtype() = \" << c1.subtype()\n              << \"\\nc2.subtype() = \" << c2.subtype() << std::endl;\n\n    // in case no subtype is set, return special value\n    assert(c1.subtype() == static_cast<byte_container_with_subtype::subtype_type>(-1));\n}\n

Output:

c1.subtype() = 18446744073709551615\nc2.subtype() = 42\n
"},{"location":"api/byte_container_with_subtype/subtype/#version-history","title":"Version history","text":"
  • Added in version 3.8.0
  • Fixed return value to properly return subtype_type(-1) as documented in version 3.10.0.
"},{"location":"api/json_pointer/","title":"nlohmann::json_pointer","text":"
template<typename RefStringType>\nclass json_pointer;\n

A JSON pointer defines a string syntax for identifying a specific value within a JSON document. It can be used with functions at and operator[]. Furthermore, JSON pointers are the base for JSON patches.

"},{"location":"api/json_pointer/#template-parameters","title":"Template parameters","text":"RefStringType the string type used for the reference tokens making up the JSON pointer

Deprecation

For backwards compatibility RefStringType may also be a specialization of basic_json in which case string_t will be deduced as basic_json::string_t. This feature is deprecated and may be removed in a future major version.

"},{"location":"api/json_pointer/#member-types","title":"Member types","text":"
  • string_t - the string type used for the reference tokens
"},{"location":"api/json_pointer/#member-functions","title":"Member functions","text":"
  • (constructor)
  • to_string - return a string representation of the JSON pointer
  • operator string_t - return a string representation of the JSON pointer
  • operator== - compare: equal
  • operator!= - compare: not equal
  • operator/= - append to the end of the JSON pointer
  • operator/ - create JSON Pointer by appending
  • parent_pointer - returns the parent of this JSON pointer
  • pop_back - remove last reference token
  • back - return last reference token
  • push_back - append an unescaped token at the end of the pointer
  • empty - return whether pointer points to the root document
"},{"location":"api/json_pointer/#literals","title":"Literals","text":"
  • operator\"\"_json_pointer - user-defined string literal for JSON pointers
"},{"location":"api/json_pointer/#see-also","title":"See also","text":"
  • RFC 6901
"},{"location":"api/json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Changed template parameter from basic_json to string type in version 3.11.0.
"},{"location":"api/json_pointer/back/","title":"nlohmann::json_pointer::back","text":"
const string_t& back() const;\n

Return last reference token.

"},{"location":"api/json_pointer/back/#return-value","title":"Return value","text":"

Last reference token.

"},{"location":"api/json_pointer/back/#exceptions","title":"Exceptions","text":"

Throws out_of_range.405 if JSON pointer has no parent.

"},{"location":"api/json_pointer/back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/back/#examples","title":"Examples","text":"Example

The example shows the usage of back.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"/foo\");\n    json::json_pointer ptr2(\"/foo/0\");\n\n    // call empty()\n    std::cout << \"last reference token of \\\"\" << ptr1 << \"\\\" is \\\"\" << ptr1.back() << \"\\\"\\n\"\n              << \"last reference token of \\\"\" << ptr2 << \"\\\" is \\\"\" << ptr2.back() << \"\\\"\" << std::endl;\n}\n

Output:

last reference token of \"/foo\" is \"foo\"\nlast reference token of \"/foo/0\" is \"0\"\n
"},{"location":"api/json_pointer/back/#version-history","title":"Version history","text":"
  • Added in version 3.6.0.
  • Changed return type to string_t in version 3.11.0.
"},{"location":"api/json_pointer/empty/","title":"nlohmann::json_pointer::empty","text":"
bool empty() const noexcept;\n

Return whether pointer points to the root document.

"},{"location":"api/json_pointer/empty/#return-value","title":"Return value","text":"

true iff the JSON pointer points to the root document.

"},{"location":"api/json_pointer/empty/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/json_pointer/empty/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/empty/#examples","title":"Examples","text":"Example

The example shows the result of empty for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n\n    // call empty()\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\": \" << ptr0.empty() << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\": \" << ptr1.empty() << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\": \" << ptr2.empty() << '\\n'\n              << \"\\\"\" << ptr3 << \"\\\": \" << ptr3.empty() << std::endl;\n}\n

Output:

\"\": true\n\"\": true\n\"/foo\": false\n\"/foo/0\": false\n
"},{"location":"api/json_pointer/empty/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/json_pointer/","title":"nlohmann::json_pointer::json_pointer","text":"
explicit json_pointer(const string_t& s = \"\");\n

Create a JSON pointer according to the syntax described in Section 3 of RFC6901.

"},{"location":"api/json_pointer/json_pointer/#parameters","title":"Parameters","text":"s (in) string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value"},{"location":"api/json_pointer/json_pointer/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  • Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/json_pointer/#examples","title":"Examples","text":"Example

The example shows the construction several valid JSON pointers as well as the exceptional behavior.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // correct JSON pointers\n    json::json_pointer p1;\n    json::json_pointer p2(\"\");\n    json::json_pointer p3(\"/\");\n    json::json_pointer p4(\"//\");\n    json::json_pointer p5(\"/foo/bar\");\n    json::json_pointer p6(\"/foo/bar/-\");\n    json::json_pointer p7(\"/foo/~0\");\n    json::json_pointer p8(\"/foo/~1\");\n\n    // error: JSON pointer does not begin with a slash\n    try\n    {\n        json::json_pointer p9(\"foo\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1\n    try\n    {\n        json::json_pointer p10(\"/foo/~\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1\n    try\n    {\n        json::json_pointer p11(\"/foo/~3\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo'\n[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n
"},{"location":"api/json_pointer/json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Changed type of s to string_t in version 3.11.0.
"},{"location":"api/json_pointer/operator_eq/","title":"nlohmann::json_pointer::operator==","text":"
// until C++20\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\nbool operator==(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs) noexcept;            // (1)\n\ntemplate<typename RefStringTypeLhs, typename StringType>\nbool operator==(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const StringType& rhs);                                         // (2)\n\ntemplate<typename RefStringTypeRhs, typename StringType>\nbool operator==(\n    const StringType& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs);                     // (2)\n\n// since C++20\nclass json_pointer {\n    template<typename RefStringTypeRhs>\n    bool operator==(\n        const json_pointer<RefStringTypeRhs>& rhs) const noexcept;  // (1)\n\n    bool operator==(const string_t& rhs) const;                     // (2)\n};\n
  1. Compares two JSON pointers for equality by comparing their reference tokens.

  2. Compares a JSON pointer and a string or a string and a JSON pointer for equality by converting the string to a JSON pointer and comparing the JSON pointers according to 1.

"},{"location":"api/json_pointer/operator_eq/#template-parameters","title":"Template parameters","text":"RefStringTypeLhs, RefStringTypeRhs the string type of the left-hand side or right-hand side JSON pointer, respectively StringType the string type derived from the json_pointer operand (json_pointer::string_t)"},{"location":"api/json_pointer/operator_eq/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/json_pointer/operator_eq/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are equal

"},{"location":"api/json_pointer/operator_eq/#exception-safety","title":"Exception safety","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. Strong exception safety: if an exception occurs, the original value stays intact.
"},{"location":"api/json_pointer/operator_eq/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function can throw the following exceptions:
  3. Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  4. Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/operator_eq/#complexity","title":"Complexity","text":"

Constant if lhs and rhs differ in the number of reference tokens, otherwise linear in the number of reference tokens.

"},{"location":"api/json_pointer/operator_eq/#notes","title":"Notes","text":"

Deprecation

Overload 2 is deprecated and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_eq/#examples","title":"Examples","text":"Example: (1) Comparing JSON pointers

The example demonstrates comparing JSON pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // compare JSON pointers\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << ptr0 << \"\\\": \" << (ptr0 == ptr0) << '\\n'\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << ptr1 << \"\\\": \" << (ptr0 == ptr1) << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (ptr1 == ptr2) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (ptr2 == ptr2) << std::endl;\n}\n

Output:

\"\" == \"\": true\n\"\" == \"\": true\n\"\" == \"/foo\": false\n\"/foo\" == \"/foo\": true\n
Example: (2) Comparing JSON pointers and strings

The example demonstrates comparing JSON pointers and strings, and when doing so may raise an exception.

#include <exception>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // different strings\n    std::string str0(\"\");\n    std::string str1(\"/foo\");\n    std::string str2(\"bar\");\n\n    // compare JSON pointers and strings\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << str0 << \"\\\": \" << (ptr0 == str0) << '\\n'\n              << \"\\\"\" << str0 << \"\\\" == \\\"\" << ptr1 << \"\\\": \" << (str0 == ptr1) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" == \\\"\" << str1 << \"\\\": \" << (ptr2 == str1) << std::endl;\n\n    try\n    {\n        std::cout << \"\\\"\" << str2 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (str2 == ptr2) << std::endl;\n    }\n    catch (const json::parse_error& ex)\n    {\n        std::cout << ex.what() << std::endl;\n    }\n}\n

Output:

\"\" == \"\": true\n\"\" == \"\": true\n\"/foo\" == \"/foo\": true\n\"bar\" == \"/foo\": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'\n
"},{"location":"api/json_pointer/operator_eq/#version-history","title":"Version history","text":"
  1. Added in version 2.1.0. Added C++20 member functions in version 3.11.2.
  2. Added for backward compatibility and deprecated in version 3.11.2.
"},{"location":"api/json_pointer/operator_ne/","title":"nlohmann::json_pointer::operator!=","text":"
// until C++20\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\nbool operator!=(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs) noexcept;  // (1)\n\ntemplate<typename RefStringTypeLhs, typename StringType>\nbool operator!=(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const StringType& rhs);                               // (2)\n\ntemplate<typename RefStringTypeRhs, typename StringType>\nbool operator!=(\n    const StringType& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs);           // (2)\n
  1. Compares two JSON pointers for inequality by comparing their reference tokens.

  2. Compares a JSON pointer and a string or a string and a JSON pointer for inequality by converting the string to a JSON pointer and comparing the JSON pointers according to 1.

"},{"location":"api/json_pointer/operator_ne/#template-parameters","title":"Template parameters","text":"RefStringTypeLhs, RefStringTypeRhs the string type of the left-hand side or right-hand side JSON pointer, respectively StringType the string type derived from the json_pointer operand (json_pointer::string_t)"},{"location":"api/json_pointer/operator_ne/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/json_pointer/operator_ne/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are not equal

"},{"location":"api/json_pointer/operator_ne/#exception-safety","title":"Exception safety","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. Strong exception safety: if an exception occurs, the original value stays intact.
"},{"location":"api/json_pointer/operator_ne/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function can throw the following exceptions:
  3. Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  4. Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/operator_ne/#complexity","title":"Complexity","text":"

Constant if lhs and rhs differ in the number of reference tokens, otherwise linear in the number of reference tokens.

"},{"location":"api/json_pointer/operator_ne/#notes","title":"Notes","text":"

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator==.

Deprecation

Overload 2 is deprecated and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_ne/#examples","title":"Examples","text":"Example: (1) Comparing JSON pointers

The example demonstrates comparing JSON pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // compare JSON pointers\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << ptr0 << \"\\\": \" << (ptr0 != ptr0) << '\\n'\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << ptr1 << \"\\\": \" << (ptr0 != ptr1) << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (ptr1 != ptr2) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (ptr2 != ptr2) << std::endl;\n}\n

Output:

\"\" != \"\": false\n\"\" != \"\": false\n\"\" != \"/foo\": true\n\"/foo\" != \"/foo\": false\n
Example: (2) Comparing JSON pointers and strings

The example demonstrates comparing JSON pointers and strings, and when doing so may raise an exception.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // different strings\n    std::string str0(\"\");\n    std::string str1(\"/foo\");\n    std::string str2(\"bar\");\n\n    // compare JSON pointers and strings\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << str0 << \"\\\": \" << (ptr0 != str0) << '\\n'\n              << \"\\\"\" << str0 << \"\\\" != \\\"\" << ptr1 << \"\\\": \" << (str0 != ptr1) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" != \\\"\" << str1 << \"\\\": \" << (ptr2 != str1) << std::endl;\n\n    try\n    {\n        std::cout << \"\\\"\" << str2 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (str2 != ptr2) << std::endl;\n    }\n    catch (const json::parse_error& ex)\n    {\n        std::cout << ex.what() << std::endl;\n    }\n}\n

Output:

\"\" != \"\": false\n\"\" != \"\": false\n\"/foo\" != \"/foo\": false\n\"bar\" != \"/foo\": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'\n
"},{"location":"api/json_pointer/operator_ne/#version-history","title":"Version history","text":"
  1. Added in version 2.1.0.
  2. Added for backward compatibility and deprecated in version 3.11.2.
"},{"location":"api/json_pointer/operator_slash/","title":"nlohmann::json_pointer::operator/","text":"
// (1)\njson_pointer operator/(const json_pointer& lhs, const json_pointer& rhs);\n\n// (2)\njson_pointer operator/(const json_pointer& lhs, string_t token);\n\n// (3)\njson_pointer operator/(const json_pointer& lhs, std::size_t array_idx);\n
  1. create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer
  2. create a new JSON pointer by appending the unescaped token at the end of the JSON pointer
  3. create a new JSON pointer by appending the array-index-token at the end of the JSON pointer
"},{"location":"api/json_pointer/operator_slash/#parameters","title":"Parameters","text":"lhs (in) JSON pointer rhs (in) JSON pointer to append token (in) reference token to append array_idx (in) array index to append"},{"location":"api/json_pointer/operator_slash/#return-value","title":"Return value","text":"
  1. a new JSON pointer with rhs appended to lhs
  2. a new JSON pointer with unescaped token appended to lhs
  3. a new JSON pointer with array_idx appended to lhs
"},{"location":"api/json_pointer/operator_slash/#complexity","title":"Complexity","text":"
  1. Linear in the length of lhs and rhs.
  2. Linear in the length of lhs.
  3. Linear in the length of lhs.
"},{"location":"api/json_pointer/operator_slash/#examples","title":"Examples","text":"Example

The example shows the usage of operator/.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON pointer\n    json::json_pointer ptr(\"/foo\");\n\n    // append a JSON Pointer\n    std::cout << \"\\\"\" << ptr / json::json_pointer(\"/bar/baz\") << \"\\\"\\n\";\n\n    // append a string\n    std::cout << \"\\\"\" << ptr / \"fob\" << \"\\\"\\n\";\n\n    // append an array index\n    std::cout << \"\\\"\" << ptr / 42 << \"\\\"\" << std::endl;\n}\n

Output:

\"/foo/bar/baz\"\n\"/foo/fob\"\n\"/foo/42\"\n
"},{"location":"api/json_pointer/operator_slash/#version-history","title":"Version history","text":"
  1. Added in version 3.6.0.
  2. Added in version 3.6.0. Changed type of token to string_t in version 3.11.0.
  3. Added in version 3.6.0.
"},{"location":"api/json_pointer/operator_slasheq/","title":"nlohmann::json_pointer::operator/=","text":"
// (1)\njson_pointer& operator/=(const json_pointer& ptr);\n\n// (2)\njson_pointer& operator/=(string_t token);\n\n// (3)\njson_pointer& operator/=(std::size_t array_idx)\n
  1. append another JSON pointer at the end of this JSON pointer
  2. append an unescaped reference token at the end of this JSON pointer
  3. append an array index at the end of this JSON pointer
"},{"location":"api/json_pointer/operator_slasheq/#parameters","title":"Parameters","text":"ptr (in) JSON pointer to append token (in) reference token to append array_idx (in) array index to append"},{"location":"api/json_pointer/operator_slasheq/#return-value","title":"Return value","text":"
  1. JSON pointer with ptr appended
  2. JSON pointer with token appended without escaping token
  3. JSON pointer with array_idx appended
"},{"location":"api/json_pointer/operator_slasheq/#complexity","title":"Complexity","text":"
  1. Linear in the length of ptr.
  2. Amortized constant.
  3. Amortized constant.
"},{"location":"api/json_pointer/operator_slasheq/#examples","title":"Examples","text":"Example

The example shows the usage of operator/=.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON pointer\n    json::json_pointer ptr(\"/foo\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append a JSON Pointer\n    ptr /= json::json_pointer(\"/bar/baz\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append a string\n    ptr /= \"fob\";\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append an array index\n    ptr /= 42;\n    std::cout << \"\\\"\" << ptr << \"\\\"\" << std::endl;\n}\n

Output:

\"/foo\"\n\"/foo/bar/baz\"\n\"/foo/bar/baz/fob\"\n\"/foo/bar/baz/fob/42\"\n
"},{"location":"api/json_pointer/operator_slasheq/#version-history","title":"Version history","text":"
  1. Added in version 3.6.0.
  2. Added in version 3.6.0. Changed type of token to string_t in version 3.11.0.
  3. Added in version 3.6.0.
"},{"location":"api/json_pointer/operator_string_t/","title":"nlohmann::json_pointer::operator string_t","text":"
operator string_t() const\n

Return a string representation of the JSON pointer.

"},{"location":"api/json_pointer/operator_string_t/#return-value","title":"Return value","text":"

A string representation of the JSON pointer

"},{"location":"api/json_pointer/operator_string_t/#possible-implementation","title":"Possible implementation","text":"
operator string_t() const\n{\n    return to_string();\n}\n
"},{"location":"api/json_pointer/operator_string_t/#notes","title":"Notes","text":"

Deprecation

This function is deprecated in favor of to_string and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_string_t/#examples","title":"Examples","text":"Example

The example shows how JSON Pointers can be implicitly converted to strings.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"/foo/0\");\n    json::json_pointer ptr2(\"/a~1b\");\n\n    // implicit conversion to string\n    std::string s;\n    s += ptr1;\n    s += \"\\n\";\n    s += ptr2;\n\n    std::cout << s << std::endl;\n}\n

Output:

/foo/0\n/a~1b\n
"},{"location":"api/json_pointer/operator_string_t/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
  • Changed type to string_t and deprecated in version 3.11.0.
"},{"location":"api/json_pointer/parent_pointer/","title":"nlohmann::json_pointer::parent_pointer","text":"
json_pointer parent_pointer() const;\n

Returns the parent of this JSON pointer.

"},{"location":"api/json_pointer/parent_pointer/#return-value","title":"Return value","text":"

Parent of this JSON pointer; in case this JSON pointer is the root, the root itself is returned.

"},{"location":"api/json_pointer/parent_pointer/#complexity","title":"Complexity","text":"

Linear in the length of the JSON pointer.

"},{"location":"api/json_pointer/parent_pointer/#examples","title":"Examples","text":"Example

The example shows the result of parent_pointer for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n\n    // call parent_pointer()\n    std::cout << std::boolalpha\n              << \"parent of \\\"\" << ptr1 << \"\\\" is \\\"\" << ptr1.parent_pointer() << \"\\\"\\n\"\n              << \"parent of \\\"\" << ptr2 << \"\\\" is \\\"\" << ptr2.parent_pointer() << \"\\\"\\n\"\n              << \"parent of \\\"\" << ptr3 << \"\\\" is \\\"\" << ptr3.parent_pointer() << \"\\\"\" << std::endl;\n}\n

Output:

parent of \"\" is \"\"\nparent of \"/foo\" is \"\"\nparent of \"/foo/0\" is \"/foo\"\n
"},{"location":"api/json_pointer/parent_pointer/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/pop_back/","title":"nlohmann::json_pointer::pop_back","text":"
void pop_back();\n

Remove last reference token.

"},{"location":"api/json_pointer/pop_back/#exceptions","title":"Exceptions","text":"

Throws out_of_range.405 if JSON pointer has no parent.

"},{"location":"api/json_pointer/pop_back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/pop_back/#examples","title":"Examples","text":"Example

The example shows the usage of pop_back.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create empty JSON Pointer\n    json::json_pointer ptr(\"/foo/bar/baz\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // call pop_back()\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n}\n

Output:

\"/foo/bar/baz\"\n\"/foo/bar\"\n\"/foo\"\n\"\"\n
"},{"location":"api/json_pointer/pop_back/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/push_back/","title":"nlohmann::json_pointer::push_back","text":"
void push_back(const string_t& token);\n\nvoid push_back(string_t&& token);\n

Append an unescaped token at the end of the reference pointer.

"},{"location":"api/json_pointer/push_back/#parameters","title":"Parameters","text":"token (in) token to add"},{"location":"api/json_pointer/push_back/#complexity","title":"Complexity","text":"

Amortized constant.

"},{"location":"api/json_pointer/push_back/#examples","title":"Examples","text":"Example

The example shows the result of push_back for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create empty JSON Pointer\n    json::json_pointer ptr;\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // call push_back()\n    ptr.push_back(\"foo\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.push_back(\"0\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.push_back(\"bar\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n}\n

Output:

\"\"\n\"/foo\"\n\"/foo/0\"\n\"/foo/0/bar\"\n
"},{"location":"api/json_pointer/push_back/#version-history","title":"Version history","text":"
  • Added in version 3.6.0.
  • Changed type of token to string_t in version 3.11.0.
"},{"location":"api/json_pointer/string_t/","title":"nlohmann::json_pointer::string_t","text":"
using string_t = RefStringType;\n

The string type used for the reference tokens making up the JSON pointer.

See basic_json::string_t for more information.

"},{"location":"api/json_pointer/string_t/#examples","title":"Examples","text":"Example

The example shows the type string_t and its relation to basic_json::string_t.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json::json_pointer::string_t s = \"This is a string.\";\n\n    std::cout << s << std::endl;\n\n    std::cout << std::boolalpha << std::is_same<json::json_pointer::string_t, json::string_t>::value << std::endl;\n}\n

Output:

This is a string.\ntrue\n
"},{"location":"api/json_pointer/string_t/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/json_pointer/to_string/","title":"nlohmann::json_pointer::to_string","text":"
string_t to_string() const;\n

Return a string representation of the JSON pointer.

"},{"location":"api/json_pointer/to_string/#return-value","title":"Return value","text":"

A string representation of the JSON pointer

"},{"location":"api/json_pointer/to_string/#notes","title":"Notes","text":"

For each JSON pointer ptr, it holds:

ptr == json_pointer(ptr.to_string());\n
"},{"location":"api/json_pointer/to_string/#examples","title":"Examples","text":"Example

The example shows the result of to_string.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n    json::json_pointer ptr4(\"/\");\n    json::json_pointer ptr5(\"/a~1b\");\n    json::json_pointer ptr6(\"/c%d\");\n    json::json_pointer ptr7(\"/e^f\");\n    json::json_pointer ptr8(\"/g|h\");\n    json::json_pointer ptr9(\"/i\\\\j\");\n    json::json_pointer ptr10(\"/k\\\"l\");\n    json::json_pointer ptr11(\"/ \");\n    json::json_pointer ptr12(\"/m~0n\");\n\n    std::cout << \"\\\"\" << ptr1.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr2.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr3.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr4.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr5.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr6.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr7.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr8.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr9.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr10.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr11.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr12.to_string() << \"\\\"\" << std::endl;\n}\n

Output:

\"\"\n\"/foo\"\n\"/foo/0\"\n\"/\"\n\"/a~1b\"\n\"/c%d\"\n\"/e^f\"\n\"/g|h\"\n\"/i\\j\"\n\"/k\"l\"\n\"/ \"\n\"/m~0n\"\n
"},{"location":"api/json_pointer/to_string/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
  • Changed return type to string_t in version 3.11.0.
"},{"location":"api/json_sax/","title":"nlohmann::json_sax","text":"
template<typename BasicJsonType>\nstruct json_sax;\n

This class describes the SAX interface used by sax_parse. Each function is called in different situations while the input is parsed. The boolean return value informs the parser whether to continue processing the input.

"},{"location":"api/json_sax/#template-parameters","title":"Template parameters","text":"BasicJsonType a specialization of basic_json"},{"location":"api/json_sax/#member-types","title":"Member types","text":"
  • number_integer_t - BasicJsonType's type for numbers (integer)
  • number_unsigned_t - BasicJsonType's type for numbers (unsigned)
  • number_float_t - BasicJsonType's type for numbers (floating-point)
  • string_t - BasicJsonType's type for strings
  • binary_t - BasicJsonType's type for binary arrays
"},{"location":"api/json_sax/#member-functions","title":"Member functions","text":"
  • binary (virtual) - a binary value was read
  • boolean (virtual) - a boolean value was read
  • end_array (virtual) - the end of an array was read
  • end_object (virtual) - the end of an object was read
  • key (virtual) - an object key was read
  • null (virtual) - a null value was read
  • number_float (virtual) - a floating-point number was read
  • number_integer (virtual) - an integer number was read
  • number_unsigned (virtual) - an unsigned integer number was read
  • parse_error (virtual) - a parse error occurred
  • start_array (virtual) - the beginning of an array was read
  • start_object (virtual) - the beginning of an object was read
  • string (virtual) - a string value was read
"},{"location":"api/json_sax/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
  • Support for binary values (binary_t, binary) added in version 3.8.0.
"},{"location":"api/json_sax/binary/","title":"nlohmann::json_sax::binary","text":"
virtual bool binary(binary_t& val) = 0;\n

A binary value was read.

"},{"location":"api/json_sax/binary/#parameters","title":"Parameters","text":"val (in) binary value"},{"location":"api/json_sax/binary/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/binary/#notes","title":"Notes","text":"

It is safe to move the passed binary value.

"},{"location":"api/json_sax/binary/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // CBOR byte string\n    std::vector<std::uint8_t> vec = {{0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse CBOR\n    bool result = json::sax_parse(vec, &sec, json::input_format_t::cbor);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

binary(val=[...])\n\nresult: true\n
"},{"location":"api/json_sax/binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/json_sax/boolean/","title":"nlohmann::json_sax::boolean","text":"
virtual bool boolean(bool val) = 0;\n

A boolean value was read.

"},{"location":"api/json_sax/boolean/#parameters","title":"Parameters","text":"val (in) boolean value"},{"location":"api/json_sax/boolean/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/boolean/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/boolean/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/end_array/","title":"nlohmann::json_sax::end_array","text":"
virtual bool end_array() = 0;\n

The end of an array was read.

"},{"location":"api/json_sax/end_array/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/end_array/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/end_array/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/end_object/","title":"nlohmann::json_sax::end_object","text":"
virtual bool end_object() = 0;\n

The end of an object was read.

"},{"location":"api/json_sax/end_object/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/end_object/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/end_object/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/key/","title":"nlohmann::json_sax::key","text":"
virtual bool key(string_t& val) = 0;\n

An object key was read.

"},{"location":"api/json_sax/key/#parameters","title":"Parameters","text":"val (in) object key"},{"location":"api/json_sax/key/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/key/#notes","title":"Notes","text":"

It is safe to move the passed object key value.

"},{"location":"api/json_sax/key/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/key/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/null/","title":"nlohmann::json_sax::null","text":"
virtual bool null() = 0;\n

A null value was read.

"},{"location":"api/json_sax/null/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/null/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/null/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_float/","title":"nlohmann::json_sax::number_float","text":"
virtual bool number_float(number_float_t val, const string_t& s) = 0;\n

A floating-point number was read.

"},{"location":"api/json_sax/number_float/#parameters","title":"Parameters","text":"val (in) floating-point value s (in) string representation of the original input"},{"location":"api/json_sax/number_float/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_float/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_float/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_integer/","title":"nlohmann::json_sax::number_integer","text":"
virtual bool number_integer(number_integer_t val) = 0;\n

An integer number was read.

"},{"location":"api/json_sax/number_integer/#parameters","title":"Parameters","text":"val (in) integer value"},{"location":"api/json_sax/number_integer/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_integer/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_integer/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_unsigned/","title":"nlohmann::json_sax::number_unsigned","text":"
virtual bool number_unsigned(number_unsigned_t val) = 0;\n

An unsigned integer number was read.

"},{"location":"api/json_sax/number_unsigned/#parameters","title":"Parameters","text":"val (in) unsigned integer value"},{"location":"api/json_sax/number_unsigned/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_unsigned/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_unsigned/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/parse_error/","title":"nlohmann::json_sax::parse_error","text":"
virtual bool parse_error(std::size_t position,\n                         const std::string& last_token,\n                         const detail::exception& ex) = 0;\n

A parse error occurred.

"},{"location":"api/json_sax/parse_error/#parameters","title":"Parameters","text":"position (in) the position in the input where the error occurs last_token (in) the last read token ex (in) an exception object describing the error"},{"location":"api/json_sax/parse_error/#return-value","title":"Return value","text":"

Whether parsing should proceed (must return false).

"},{"location":"api/json_sax/parse_error/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/parse_error/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/start_array/","title":"nlohmann::json_sax::start_array","text":"
virtual bool start_array(std::size_t elements) = 0;\n

The beginning of an array was read.

"},{"location":"api/json_sax/start_array/#parameters","title":"Parameters","text":"elements (in) number of object elements or -1 if unknown"},{"location":"api/json_sax/start_array/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/start_array/#notes","title":"Notes","text":"

Binary formats may report the number of elements.

"},{"location":"api/json_sax/start_array/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/start_array/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/start_object/","title":"nlohmann::json_sax::start_object","text":"
virtual bool start_object(std::size_t elements) = 0;\n

The beginning of an object was read.

"},{"location":"api/json_sax/start_object/#parameters","title":"Parameters","text":"elements (in) number of object elements or -1 if unknown"},{"location":"api/json_sax/start_object/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/start_object/#notes","title":"Notes","text":"

Binary formats may report the number of elements.

"},{"location":"api/json_sax/start_object/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/start_object/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/string/","title":"nlohmann::json_sax::string","text":"
virtual bool string(string_t& val) = 0;\n

A string value was read.

"},{"location":"api/json_sax/string/#parameters","title":"Parameters","text":"val (in) string value"},{"location":"api/json_sax/string/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/string/#notes","title":"Notes","text":"

It is safe to move the passed string value.

"},{"location":"api/json_sax/string/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/string/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/macros/","title":"Macros","text":"

Some aspects of the library can be configured by defining preprocessor macros before including the json.hpp header. See also the macro overview page.

"},{"location":"api/macros/#runtime-assertions","title":"Runtime assertions","text":"
  • JSON_ASSERT(x) - control behavior of runtime assertions
"},{"location":"api/macros/#exceptions","title":"Exceptions","text":"
  • JSON_CATCH_USER(exception)JSON_THROW_USER(exception)JSON_TRY_USER - control exceptions
  • JSON_DIAGNOSTICS - control extended diagnostics
  • JSON_NOEXCEPTION - switch off exceptions
"},{"location":"api/macros/#language-support","title":"Language support","text":"
  • JSON_HAS_CPP_11JSON_HAS_CPP_14JSON_HAS_CPP_17JSON_HAS_CPP_20 - set supported C++ standard
  • JSON_HAS_FILESYSTEMJSON_HAS_EXPERIMENTAL_FILESYSTEM - control std::filesystem support
  • JSON_HAS_RANGES - control std::ranges support
  • JSON_HAS_THREE_WAY_COMPARISON - control 3-way comparison support
  • JSON_NO_IO - switch off functions relying on certain C++ I/O headers
  • JSON_SKIP_UNSUPPORTED_COMPILER_CHECK - do not warn about unsupported compilers
  • JSON_USE_GLOBAL_UDLS - place user-defined string literals (UDLs) into the global namespace
"},{"location":"api/macros/#library-version","title":"Library version","text":"
  • JSON_SKIP_LIBRARY_VERSION_CHECK - skip library version check
  • NLOHMANN_JSON_VERSION_MAJORNLOHMANN_JSON_VERSION_MINORNLOHMANN_JSON_VERSION_PATCH - library version information
"},{"location":"api/macros/#library-namespace","title":"Library namespace","text":"
  • NLOHMANN_JSON_NAMESPACE - full name of the nlohmann namespace
  • NLOHMANN_JSON_NAMESPACE_BEGINNLOHMANN_JSON_NAMESPACE_END - open and close the library namespace
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION - disable the version component of the inline namespace
"},{"location":"api/macros/#type-conversions","title":"Type conversions","text":"
  • JSON_DISABLE_ENUM_SERIALIZATION - switch off default serialization/deserialization functions for enums
  • JSON_USE_IMPLICIT_CONVERSIONS - control implicit conversions
"},{"location":"api/macros/#comparison-behavior","title":"Comparison behavior","text":"
  • JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON - control comparison of discarded values
"},{"location":"api/macros/#serializationdeserialization-macros","title":"Serialization/deserialization macros","text":"
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) - serialization/deserialization of types with access to private variables
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) - serialization/deserialization of types without access to private variables
  • NLOHMANN_JSON_SERIALIZE_ENUM(type, ...) - serialization/deserialization of enum types
"},{"location":"api/macros/json_assert/","title":"JSON_ASSERT","text":"
#define JSON_ASSERT(x) /* value */\n

This macro controls which code is executed for runtime assertions of the library.

"},{"location":"api/macros/json_assert/#parameters","title":"Parameters","text":"x (in) expression of scalar type"},{"location":"api/macros/json_assert/#default-definition","title":"Default definition","text":"

The default value is assert(x).

#define JSON_ASSERT(x) assert(x)\n

Therefore, assertions can be switched off by defining NDEBUG.

"},{"location":"api/macros/json_assert/#notes","title":"Notes","text":"
  • The library uses numerous assertions to guarantee invariants and to abort in case of otherwise undefined behavior (e.g., when calling operator[] with a missing object key on a const object). See page runtime assertions for more information.
  • Defining the macro to code that does not call std::abort may leave the library in an undefined state.
  • The macro is undefined outside the library.
"},{"location":"api/macros/json_assert/#examples","title":"Examples","text":"Example 1: default behavior

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

Assertion failed: (m_value.object->find(key) != m_value.object->end()), function operator[], file json.hpp, line 2144.\n
Example 2: user-defined behavior

The assertion reporting can be changed by defining JSON_ASSERT(x) differently.

#include <cstdio>\n#include <cstdlib>\n#define JSON_ASSERT(x) if(!(x)){fprintf(stderr, \"assertion error in %s\\n\", __FUNCTION__); std::abort();}\n\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

assertion error in operator[]\n
"},{"location":"api/macros/json_assert/#version-history","title":"Version history","text":"
  • Added in version 3.9.0.
"},{"location":"api/macros/json_diagnostics/","title":"JSON_DIAGNOSTICS","text":"
#define JSON_DIAGNOSTICS /* value */\n

This macro enables extended diagnostics for exception messages. Possible values are 1 to enable or 0 to disable (default).

When enabled, exception messages contain a JSON Pointer to the JSON value that triggered the exception. Note that enabling this macro increases the size of every JSON value by one pointer and adds some runtime overhead.

"},{"location":"api/macros/json_diagnostics/#default-definition","title":"Default definition","text":"

The default value is 0 (extended diagnostics are switched off).

#define JSON_DIAGNOSTICS 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_diagnostics/#notes","title":"Notes","text":"

ABI compatibility

As of version 3.11.0, this macro is no longer required to be defined consistently throughout a codebase to avoid One Definition Rule (ODR) violations, as the value of this macro is encoded in the namespace, resulting in distinct symbol names.

This allows different parts of a codebase to use different versions or configurations of this library without causing improper behavior.

Where possible, it is still recommended that all code define this the same way for maximum interoperability.

CMake option

Diagnostic messages can also be controlled with the CMake option JSON_Diagnostics (OFF by default) which defines JSON_DIAGNOSTICS accordingly.

"},{"location":"api/macros/json_diagnostics/#examples","title":"Examples","text":"Example 1: default behavior
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] type must be number, but is string\n

This exception can be hard to debug if storing the value \"12\" and accessing it is further apart.

Example 2: extended diagnostic messages
#include <iostream>\n\n# define JSON_DIAGNOSTICS 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] (/address/housenumber) type must be number, but is string\n

Now the exception message contains a JSON Pointer /address/housenumber that indicates which value has the wrong type.

"},{"location":"api/macros/json_diagnostics/#version-history","title":"Version history","text":"
  • Added in version 3.10.0.
  • As of version 3.11.0 the definition is allowed to vary between translation units.
"},{"location":"api/macros/json_disable_enum_serialization/","title":"JSON_DISABLE_ENUM_SERIALIZATION","text":"
#define JSON_DISABLE_ENUM_SERIALIZATION /* value */\n

When defined to 1, default serialization and deserialization functions for enums are excluded and have to be provided by the user, for example, using NLOHMANN_JSON_SERIALIZE_ENUM (see arbitrary type conversions for more details).

Parsing or serializing an enum will result in a compiler error.

This works for both unscoped and scoped enums.

"},{"location":"api/macros/json_disable_enum_serialization/#default-definition","title":"Default definition","text":"

The default value is 0.

#define JSON_DISABLE_ENUM_SERIALIZATION 0\n
"},{"location":"api/macros/json_disable_enum_serialization/#notes","title":"Notes","text":"

CMake option

Enum serialization can also be controlled with the CMake option JSON_DisableEnumSerialization (OFF by default) which defines JSON_DISABLE_ENUM_SERIALIZATION accordingly.

"},{"location":"api/macros/json_disable_enum_serialization/#examples","title":"Examples","text":"Example 1: Disabled behavior

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, meaning the code below does not compile.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nint main()\n{\n    // normally invokes to_json serialization function but with JSON_DISABLE_ENUM_SERIALIZATION defined, it does not\n    const json j = Choice::first; \n\n    // normally invokes from_json parse function but with JSON_DISABLE_ENUM_SERIALIZATION defined, it does not\n    Choice ch = j.template get<Choice>();\n}\n
Example 2: Serialize enum macro

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, but uses NLOHMANN_JSON_SERIALIZE_ENUM to parse and serialize the enum.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Choice,\n{\n    { Choice::first, \"first\" },\n    { Choice::second, \"second\" },\n})\n\nint main()\n{\n    // uses user-defined to_json function defined by macro\n    const json j = Choice::first; \n\n    // uses user-defined from_json function defined by macro\n    Choice ch = j.template get<Choice>();\n}\n
Example 3: User-defined serialization/deserialization functions

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, but uses user-defined functions to parse and serialize the enum.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nvoid from_json(const json& j, Choice& ch)\n{\n    auto value = j.template get<std::string>();\n    if (value == \"first\")\n    {\n        ch = Choice::first;\n    }\n    else if (value == \"second\")\n    {\n        ch = Choice::second;\n    }\n}\n\nvoid to_json(json& j, const Choice& ch)\n{\n    auto value = j.template get<std::string>();\n    if (value == \"first\")\n    {\n        ch = Choice::first;\n    }\n    else if (value == \"second\")\n    {\n        ch = Choice::second;\n    }\n}\n\nint main()\n{\n    // uses user-defined to_json function\n    const json j = Choice::first; \n\n    // uses user-defined from_json function\n    Choice ch = j.template get<Choice>();\n}\n
"},{"location":"api/macros/json_disable_enum_serialization/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_SERIALIZE_ENUM
"},{"location":"api/macros/json_disable_enum_serialization/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_has_cpp_11/","title":"JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20","text":"
#define JSON_HAS_CPP_11\n#define JSON_HAS_CPP_14\n#define JSON_HAS_CPP_17\n#define JSON_HAS_CPP_20\n

The library targets C++11, but also supports some features introduced in later C++ versions (e.g., std::string_view support for C++17). For these new features, the library implements some preprocessor checks to determine the C++ standard. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly.

"},{"location":"api/macros/json_has_cpp_11/#default-definition","title":"Default definition","text":"

The default value is detected based on preprocessor macros such as __cplusplus, _HAS_CXX17, or _MSVC_LANG.

"},{"location":"api/macros/json_has_cpp_11/#notes","title":"Notes","text":"
  • JSON_HAS_CPP_11 is always defined.
  • All macros are undefined outside the library.
"},{"location":"api/macros/json_has_cpp_11/#examples","title":"Examples","text":"Example

The code below forces the library to use the C++14 standard:

#define JSON_HAS_CPP_14 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_cpp_11/#version-history","title":"Version history","text":"
  • Added in version 3.10.5.
"},{"location":"api/macros/json_has_filesystem/","title":"JSON_HAS_FILESYSTEM / JSON_HAS_EXPERIMENTAL_FILESYSTEM","text":"
#define JSON_HAS_FILESYSTEM /* value */\n#define JSON_HAS_EXPERIMENTAL_FILESYSTEM /* value */\n

When compiling with C++17, the library provides conversions from and to std::filesystem::path. As compiler support for filesystem is limited, the library tries to detect whether <filesystem>/std::filesystem (JSON_HAS_FILESYSTEM) or <experimental/filesystem>/std::experimental::filesystem (JSON_HAS_EXPERIMENTAL_FILESYSTEM) should be used. To override the built-in check, define JSON_HAS_FILESYSTEM or JSON_HAS_EXPERIMENTAL_FILESYSTEM to 1.

"},{"location":"api/macros/json_has_filesystem/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macros __cpp_lib_filesystem, __cpp_lib_experimental_filesystem, __has_include(<filesystem>), or __has_include(<experimental/filesystem>).

"},{"location":"api/macros/json_has_filesystem/#notes","title":"Notes","text":"
  • Note that older compilers or older versions of libstd++ also require the library stdc++fs to be linked to for filesystem support.
  • Both macros are undefined outside the library.
"},{"location":"api/macros/json_has_filesystem/#examples","title":"Examples","text":"Example

The code below forces the library to use the header <experimental/filesystem>.

#define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_filesystem/#version-history","title":"Version history","text":"
  • Added in version 3.10.5.
"},{"location":"api/macros/json_has_ranges/","title":"JSON_HAS_RANGES","text":"
#define JSON_HAS_RANGES /* value */\n

This macro indicates whether the standard library has any support for ranges. Implies support for concepts. Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_ranges/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macro __cpp_lib_ranges.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_ranges/#examples","title":"Examples","text":"Example

The code below forces the library to enable support for ranges:

#define JSON_HAS_RANGES 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_ranges/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_has_static_rtti/","title":"JSON_HAS_STATIC_RTTI","text":"
#define JSON_HAS_STATIC_RTTI /* value */\n

This macro indicates whether the standard library has any support for RTTI (run time type information). Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_static_rtti/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macro _HAS_STATIC_RTTI.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_static_rtti/#examples","title":"Examples","text":"Example

The code below forces the library to enable support for libraries with RTTI dependence:

#define JSON_HAS_STATIC_RTTI 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_static_rtti/#version-history","title":"Version history","text":"
  • Added in version ?.
"},{"location":"api/macros/json_has_three_way_comparison/","title":"JSON_HAS_THREE_WAY_COMPARISON","text":"
#define JSON_HAS_THREE_WAY_COMPARISON /* value */\n

This macro indicates whether the compiler and standard library support 3-way comparison. Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_three_way_comparison/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macros __cpp_impl_three_way_comparison and __cpp_lib_three_way_comparison.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_three_way_comparison/#examples","title":"Examples","text":"Example

The code below forces the library to use 3-way comparison:

#define JSON_HAS_THREE_WAY_COMPARISON 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_three_way_comparison/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_no_io/","title":"JSON_NO_IO","text":"
#define JSON_NO_IO\n

When defined, headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream> are not included and parse functions relying on these headers are excluded. This is relevant for environments where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)).

"},{"location":"api/macros/json_no_io/#default-definition","title":"Default definition","text":"

By default, JSON_NO_IO is not defined.

#undef JSON_NO_IO\n
"},{"location":"api/macros/json_no_io/#examples","title":"Examples","text":"Example

The code below forces the library not to use the headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream>.

#define JSON_NO_IO 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_no_io/#version-history","title":"Version history","text":"
  • Added in version 3.10.0.
"},{"location":"api/macros/json_noexception/","title":"JSON_NOEXCEPTION","text":"
#define JSON_NOEXCEPTION\n

Exceptions can be switched off by defining the symbol JSON_NOEXCEPTION. When defining JSON_NOEXCEPTION, try is replaced by if (true), catch is replaced by if (false), and throw is replaced by std::abort().

The same effect is achieved by setting the compiler flag -fno-exceptions.

"},{"location":"api/macros/json_noexception/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_NOEXCEPTION\n
"},{"location":"api/macros/json_noexception/#notes","title":"Notes","text":"

The explanatory what() string of exceptions is not available for MSVC if exceptions are disabled, see #2824.

"},{"location":"api/macros/json_noexception/#examples","title":"Examples","text":"Example

The code below switches off exceptions in the library.

#define JSON_NOEXCEPTION 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_noexception/#see-also","title":"See also","text":"
  • Switch off exceptions for more information how to switch off exceptions
"},{"location":"api/macros/json_noexception/#version-history","title":"Version history","text":"

Added in version 2.1.0.

"},{"location":"api/macros/json_skip_library_version_check/","title":"JSON_SKIP_LIBRARY_VERSION_CHECK","text":"
#define JSON_SKIP_LIBRARY_VERSION_CHECK\n

When defined, the library will not create a compiler warning when a different version of the library was already included.

"},{"location":"api/macros/json_skip_library_version_check/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_SKIP_LIBRARY_VERSION_CHECK\n
"},{"location":"api/macros/json_skip_library_version_check/#notes","title":"Notes","text":"

ABI compatibility

Mixing different library versions in the same code can be a problem as the different versions may not be ABI compatible.

"},{"location":"api/macros/json_skip_library_version_check/#examples","title":"Examples","text":"

Example

The following warning will be shown in case a different version of the library was already included:

Already included a different version of the library!\n
"},{"location":"api/macros/json_skip_library_version_check/#version-history","title":"Version history","text":"

Added in version 3.11.0.

"},{"location":"api/macros/json_skip_unsupported_compiler_check/","title":"JSON_SKIP_UNSUPPORTED_COMPILER_CHECK","text":"
#define JSON_SKIP_UNSUPPORTED_COMPILER_CHECK\n

When defined, the library will not create a compile error when a known unsupported compiler is detected. This allows to use the library with compilers that do not fully support C++11 and may only work if unsupported features are not used.

"},{"location":"api/macros/json_skip_unsupported_compiler_check/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_SKIP_UNSUPPORTED_COMPILER_CHECK\n
"},{"location":"api/macros/json_skip_unsupported_compiler_check/#examples","title":"Examples","text":"Example

The code below switches off the check whether the compiler is supported.

#define JSON_SKIP_UNSUPPORTED_COMPILER_CHECK 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_skip_unsupported_compiler_check/#version-history","title":"Version history","text":"

Added in version 3.2.0.

"},{"location":"api/macros/json_throw_user/","title":"JSON_CATCH_USER, JSON_THROW_USER, JSON_TRY_USER","text":"
// (1)\n#define JSON_CATCH_USER(exception) /* value */\n// (2)\n#define JSON_THROW_USER(exception) /* value */\n// (3)\n#define JSON_TRY_USER /* value */\n

Controls how exceptions are handled by the library.

  1. This macro overrides catch calls inside the library. The argument is the type of the exception to catch. As of version 3.8.0, the library only catches std::out_of_range exceptions internally to rethrow them as json::out_of_range exceptions. The macro is always followed by a scope.
  2. This macro overrides throw calls inside the library. The argument is the exception to be thrown. Note that JSON_THROW_USER should leave the current scope (e.g., by throwing or aborting), as continuing after it may yield undefined behavior.
  3. This macro overrides try calls inside the library. It has no arguments and is always followed by a scope.
"},{"location":"api/macros/json_throw_user/#parameters","title":"Parameters","text":"exception (in) an exception type"},{"location":"api/macros/json_throw_user/#default-definition","title":"Default definition","text":"

By default, the macros map to their respective C++ keywords:

#define JSON_CATCH_USER(exception) catch(exception)\n#define JSON_THROW_USER(exception) throw exception\n#define JSON_TRY_USER              try\n

When exceptions are switched off, the try block is executed unconditionally, and throwing exceptions is replaced by calling std::abort to make reaching the throw branch abort the process.

#define JSON_THROW_USER(exception) std::abort()\n#define JSON_TRY_USER              if (true)\n#define JSON_CATCH_USER(exception) if (false)\n
"},{"location":"api/macros/json_throw_user/#examples","title":"Examples","text":"Example

The code below switches off exceptions and creates a log entry with a detailed error message in case of errors.

#include <iostream>\n\n#define JSON_TRY_USER if(true)\n#define JSON_CATCH_USER(exception) if(false)\n#define JSON_THROW_USER(exception)                           \\\n    {std::clog << \"Error in \" << __FILE__ << \":\" << __LINE__ \\\n               << \" (function \" << __FUNCTION__ << \") - \"    \\\n               << (exception).what() << std::endl;           \\\n     std::abort();}\n\n#include <nlohmann/json.hpp>\n
"},{"location":"api/macros/json_throw_user/#see-also","title":"See also","text":"
  • Switch off exceptions for more information how to switch off exceptions
  • JSON_NOEXCEPTION - switch off exceptions
"},{"location":"api/macros/json_throw_user/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"api/macros/json_use_global_udls/","title":"JSON_USE_GLOBAL_UDLS","text":"
#define JSON_USE_GLOBAL_UDLS /* value */\n

When defined to 1, the user-defined string literals (UDLs) are placed into the global namespace instead of nlohmann::literals::json_literals.

"},{"location":"api/macros/json_use_global_udls/#default-definition","title":"Default definition","text":"

The default value is 1.

#define JSON_USE_GLOBAL_UDLS 1\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_use_global_udls/#notes","title":"Notes","text":"

Future behavior change

The user-defined string literals will be removed from the global namespace in the next major release of the library.

To prepare existing code, define JSON_USE_GLOBAL_UDLS to 0 and bring the string literals into scope where needed. Refer to any of the string literals for details.

CMake option

The placement of user-defined string literals can also be controlled with the CMake option JSON_GlobalUDLs (ON by default) which defines JSON_USE_GLOBAL_UDLS accordingly.

"},{"location":"api/macros/json_use_global_udls/#examples","title":"Examples","text":"Example 1: Default behavior

The code below shows the default behavior using the _json UDL.

#include <nlohmann/json.hpp>\n\n#include <iostream>\n\nint main()\n{\n    auto j = \"42\"_json;\n\n    std::cout << j << std::endl;\n}\n

Output:

42\n
Example 2: Namespaced UDLs

The code below shows how UDLs need to be brought into scope before using _json when JSON_USE_GLOBAL_UDLS is defined to 0.

#define JSON_USE_GLOBAL_UDLS 0\n#include <nlohmann/json.hpp>\n\n#include <iostream>\n\nint main()\n{\n    // auto j = \"42\"_json; // This line would fail to compile,\n                           // because the UDLs are not in the global namespace\n\n    // Bring the UDLs into scope\n    using namespace nlohmann::json_literals;\n\n    auto j = \"42\"_json;\n\n    std::cout << j << std::endl;\n}\n

Output:

42\n
"},{"location":"api/macros/json_use_global_udls/#see-also","title":"See also","text":"
  • operator\"\"_json
  • operator\"\"_json_pointer
"},{"location":"api/macros/json_use_global_udls/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_use_implicit_conversions/","title":"JSON_USE_IMPLICIT_CONVERSIONS","text":"
#define JSON_USE_IMPLICIT_CONVERSIONS /* value */\n

When defined to 0, implicit conversions are switched off. By default, implicit conversions are switched on. The value directly affects operator ValueType.

"},{"location":"api/macros/json_use_implicit_conversions/#default-definition","title":"Default definition","text":"

By default, implicit conversions are enabled.

#define JSON_USE_IMPLICIT_CONVERSIONS 1\n
"},{"location":"api/macros/json_use_implicit_conversions/#notes","title":"Notes","text":"

Future behavior change

Implicit conversions will be switched off by default in the next major release of the library.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

CMake option

Implicit conversions can also be controlled with the CMake option JSON_ImplicitConversions (ON by default) which defines JSON_USE_IMPLICIT_CONVERSIONS accordingly.

"},{"location":"api/macros/json_use_implicit_conversions/#examples","title":"Examples","text":"Example

This is an example for an implicit conversion:

json j = \"Hello, world!\";\nstd::string s = j;\n

When JSON_USE_IMPLICIT_CONVERSIONS is defined to 0, the code above does no longer compile. Instead, it must be written like this:

json j = \"Hello, world!\";\nauto s = j.template get<std::string>();\n
"},{"location":"api/macros/json_use_implicit_conversions/#see-also","title":"See also","text":"
  • operator ValueType - get a value (implicit)
  • get - get a value (explicit)
"},{"location":"api/macros/json_use_implicit_conversions/#version-history","title":"Version history","text":"
  • Added in version 3.9.0.
"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/","title":"JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON","text":"
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON /* value */\n

This macro enables the (incorrect) legacy comparison behavior of discarded JSON values. Possible values are 1 to enable or 0 to disable (default).

When enabled, comparisons involving at least one discarded JSON value yield results as follows:

Operator Result == false != true < false <= true >= true > false

Otherwise, comparisons involving at least one discarded JSON value always yield false.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#default-definition","title":"Default definition","text":"

The default value is 0.

#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#notes","title":"Notes","text":"

Inconsistent behavior in C++20 and beyond

When targeting C++20 or above, enabling the legacy comparison behavior is strongly discouraged.

  • The 3-way comparison operator (<=>) will always give the correct result (std::partial_ordering::unordered) regardless of the value of JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON.
  • Overloads for the equality and relational operators emulate the legacy behavior.

Code outside your control may use either 3-way comparison or the equality and relational operators, resulting in inconsistent and unpredictable behavior.

See operator<=> for more information on 3-way comparison.

Deprecation

The legacy comparison behavior is deprecated and may be removed in a future major version release.

New code should not depend on it and existing code should try to remove or rewrite expressions relying on it.

CMake option

Legacy comparison can also be controlled with the CMake option JSON_LegacyDiscardedValueComparison (OFF by default) which defines JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON accordingly.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#examples","title":"Examples","text":"Example

The code below switches on the legacy discarded value comparison behavior in the library.

#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/nlohmann_define_type_intrusive/","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE","text":"
#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)              // (1)\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) // (2)\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) // (3)\n

These macros can be used to simplify the serialization/deserialization of types if you want to use a JSON object as serialization and want to use the member variable names as object keys in that object. The macro is to be defined inside the class/struct to create code for. Unlike NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, it can access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

  1. Will use at during deserialization and will throw out_of_range.403 if a key is missing in the JSON object.
  2. Will use value during deserialization and fall back to the default value for the respective type of the member variable if a key in the JSON object is missing. The generated from_json() function default constructs an object and uses its values as the defaults when calling the value function.
  3. Only defines the serialization. Useful in cases when the type does not have a default constructor and only serialization in required.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#parameters","title":"Parameters","text":"type (in) name of the type (class, struct) to serialize/deserialize member (in) name of the member variable to serialize/deserialize; up to 64 members can be given as comma-separated list"},{"location":"api/macros/nlohmann_define_type_intrusive/#default-definition","title":"Default definition","text":"

The macros add two friend functions to the class which take care of the serialization and deserialization:

friend void to_json(nlohmann::json&, const type&);\nfriend void from_json(const nlohmann::json&, type&); // except (3)\n

See examples below for the concrete generated code.

"},{"location":"api/macros/nlohmann_define_type_intrusive/#notes","title":"Notes","text":"

Prerequisites

  1. The type type must be default constructible (except (3)). See How can I use get() for non-default constructible/non-copyable types? for how to overcome this limitation.
  2. The macro must be used inside the type (class/struct).

Implementation limits

  • The current implementation is limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#examples","title":"Examples","text":"Example (1): NLOHMANN_DEFINE_TYPE_INTRUSIVE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\ndeserialization failed: [json.exception.out_of_range.403] key 'age' not found\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE is used inside the class.
  • A missing key \"age\" in the deserialization yields an exception. To fall back to the default value, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT can be used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n\n    friend void from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n    {\n        nlohmann_json_t.name = nlohmann_json_j.at(\"name\");\n        nlohmann_json_t.address = nlohmann_json_j.at(\"address\");\n        nlohmann_json_t.age = nlohmann_json_j.at(\"age\");\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n
Example (2): NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\nroundtrip: {\"address\":\"742 Evergreen Terrace\",\"age\":-1,\"name\":\"Maggie Simpson\"}\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT is used inside the class.
  • A missing key \"age\" in the deserialization does not yield an exception. Instead, the default value -1 is used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n\n    friend void from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n    {\n        person nlohmann_json_default_obj;\n        nlohmann_json_t.name = nlohmann_json_j.value(\"name\", nlohmann_json_default_obj.name);\n        nlohmann_json_t.address = nlohmann_json_j.value(\"address\", nlohmann_json_default_obj.address);\n        nlohmann_json_t.age = nlohmann_json_j.value(\"age\", nlohmann_json_default_obj.age);\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Note how a default-initialized person object is used in the from_json to fill missing values.

Example (3): NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    // No default constructor\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n

Notes:

  • ns::person is non-default-constructible. This allows this macro to be used instead of NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE is used inside the class.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    // No default constructor\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n
"},{"location":"api/macros/nlohmann_define_type_intrusive/#see-also","title":"See also","text":"
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE{_WITH_DEFAULT, _ONLY_SERIALIZE} for a similar macro that can be defined outside the type.
  • Arbitrary Type Conversions for an overview.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#version-history","title":"Version history","text":"
  1. Added in version 3.9.0.
  2. Added in version 3.11.0.
  3. Added in version TODO.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE","text":"
#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)              // (1)\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) // (2)\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) // (3)\n

These macros can be used to simplify the serialization/deserialization of types if you want to use a JSON object as serialization and want to use the member variable names as object keys in that object. The macro is to be defined outside the class/struct to create code for, but inside its namespace. Unlike NLOHMANN_DEFINE_TYPE_INTRUSIVE, it cannot access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

  1. Will use at during deserialization and will throw out_of_range.403 if a key is missing in the JSON object.
  2. Will use value during deserialization and fall back to the default value for the respective type of the member variable if a key in the JSON object is missing. The generated from_json() function default constructs an object and uses its values as the defaults when calling the value function.
  3. Only defines the serialization. Useful in cases when the type does not have a default constructor and only serialization in required.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#parameters","title":"Parameters","text":"type (in) name of the type (class, struct) to serialize/deserialize member (in) name of the (public) member variable to serialize/deserialize; up to 64 members can be given as comma-separated list"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#default-definition","title":"Default definition","text":"

The macros add two functions to the namespace which take care of the serialization and deserialization:

void to_json(nlohmann::json&, const type&);\nvoid from_json(const nlohmann::json&, type&); // except (3)\n

See examples below for the concrete generated code.

"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#notes","title":"Notes","text":"

Prerequisites

  1. The type type must be default constructible (except (3). See How can I use get() for non-default constructible/non-copyable types? for how to overcome this limitation.
  2. The macro must be used outside the type (class/struct).
  3. The passed members must be public.

Implementation limits

  • The current implementation is limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#examples","title":"Examples","text":"Example (1): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\ndeserialization failed: [json.exception.out_of_range.403] key 'age' not found\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE is used outside the class, but inside its namespace ns.
  • A missing key \"age\" in the deserialization yields an exception. To fall back to the default value, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT can be used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n\nvoid from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n{\n    nlohmann_json_t.name = nlohmann_json_j.at(\"name\");\n    nlohmann_json_t.address = nlohmann_json_j.at(\"address\");\n    nlohmann_json_t.age = nlohmann_json_j.at(\"age\");\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n
Example (2): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\nroundtrip: {\"address\":\"742 Evergreen Terrace\",\"age\":-1,\"name\":\"Maggie Simpson\"}\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT is used outside the class, but inside its namespace ns.
  • A missing key \"age\" in the deserialization does not yield an exception. Instead, the default value -1 is used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n\nvoid from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n{\n    person nlohmann_json_default_obj;\n    nlohmann_json_t.name = nlohmann_json_j.value(\"name\", nlohmann_json_default_obj.name);\n    nlohmann_json_t.address = nlohmann_json_j.value(\"address\", nlohmann_json_default_obj.address);\n    nlohmann_json_t.age = nlohmann_json_j.value(\"age\", nlohmann_json_default_obj.age);\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Note how a default-initialized person object is used in the from_json to fill missing values.

Example (3): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n

Notes:

  • ns::person is non-default-constructible. This allows this macro to be used instead of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE is used outside the class, but inside its namespace ns.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#see-also","title":"See also","text":"
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE{_WITH_DEFAULT, _ONLY_SERIALIZE} for a similar macro that can be defined inside the type.
  • Arbitrary Type Conversions for an overview.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#version-history","title":"Version history","text":"
  1. Added in version 3.9.0.
  2. Added in version 3.11.0.
  3. Added in version TODO.
"},{"location":"api/macros/nlohmann_json_namespace/","title":"NLOHMANN_JSON_NAMESPACE","text":"
#define NLOHMANN_JSON_NAMESPACE /* value */\n

This macro evaluates to the full name of the nlohmann namespace.

"},{"location":"api/macros/nlohmann_json_namespace/#default-definition","title":"Default definition","text":"

The default value consists of the root namespace (nlohmann) and an inline ABI namespace. See nlohmann Namespace for details.

When the macro is not defined, the library will define it to its default value. Overriding this value has no effect on the library.

"},{"location":"api/macros/nlohmann_json_namespace/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE instead of just nlohmann, as well as how to output the value of NLOHMANN_JSON_NAMESPACE.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// possible use case: use NLOHMANN_JSON_NAMESPACE instead of nlohmann\nusing json = NLOHMANN_JSON_NAMESPACE::json;\n\n// macro needed to output the NLOHMANN_JSON_NAMESPACE as string literal\n#define Q(x) #x\n#define QUOTE(x) Q(x)\n\nint main()\n{\n    std::cout << QUOTE(NLOHMANN_JSON_NAMESPACE) << std::endl;\n}\n

Output:

nlohmann::json_abi_v3_11_2\n
"},{"location":"api/macros/nlohmann_json_namespace/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION
"},{"location":"api/macros/nlohmann_json_namespace/#version-history","title":"Version history","text":"
  • Added in version 3.11.0. Changed inline namespace name in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_namespace_begin/","title":"NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END","text":"
#define NLOHMANN_JSON_NAMESPACE_BEGIN /* value */  // (1)\n#define NLOHMANN_JSON_NAMESPACE_END   /* value */  // (2)\n

These macros can be used to open and close the nlohmann namespace. See nlohmann Namespace for details.

  1. Opens the namespace.
  2. Closes the namespace.
"},{"location":"api/macros/nlohmann_json_namespace_begin/#default-definition","title":"Default definition","text":"

The default definitions open and close the nlohmann namespace. The precise definition of [NLOHMANN_JSON_NAMESPACE_BEGIN] varies as described here.

  1. Default definition of NLOHMANN_JSON_NAMESPACE_BEGIN:

    namespace nlohmann\n{\ninline namespace json_abi_v3_11_2\n{\n
  2. Default definition of NLOHMANN_JSON_NAMESPACE_END:

    }  // namespace json_abi_v3_11_2\n}  // namespace nlohmann\n

When these macros are not defined, the library will define them to their default definitions.

"},{"location":"api/macros/nlohmann_json_namespace_begin/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE_BEGIN/NLOHMANN_JSON_NAMESPACE_END from the How do I convert third-party types? page.

#include <iostream>\n#include <optional>\n#include <nlohmann/json.hpp>\n\n// partial specialization (see https://json.nlohmann.me/features/arbitrary_types/)\nNLOHMANN_JSON_NAMESPACE_BEGIN\ntemplate <typename T>\nstruct adl_serializer<std::optional<T>>\n{\n    static void to_json(json& j, const std::optional<T>& opt)\n    {\n        if (opt == std::nullopt)\n        {\n            j = nullptr;\n        }\n        else\n        {\n            j = *opt;\n        }\n    }\n};\nNLOHMANN_JSON_NAMESPACE_END\n\nint main()\n{\n    std::optional<int> o1 = 1;\n    std::optional<int> o2 = std::nullopt;\n\n    NLOHMANN_JSON_NAMESPACE::json j;\n    j.push_back(o1);\n    j.push_back(o2);\n    std::cout << j << std::endl;\n}\n

Output:

[1,null]\n
"},{"location":"api/macros/nlohmann_json_namespace_begin/#see-also","title":"See also","text":"
  • nlohmann Namespace
  • NLOHMANN_JSON_NAMESPACE
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION
"},{"location":"api/macros/nlohmann_json_namespace_begin/#version-history","title":"Version history","text":"
  • Added in version 3.11.0. Changed inline namespace name in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_namespace_no_version/","title":"NLOHMANN_JSON_NAMESPACE_NO_VERSION","text":"
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION /* value */\n

If defined to 1, the version component is omitted from the inline namespace. See nlohmann Namespace for details.

"},{"location":"api/macros/nlohmann_json_namespace_no_version/#default-definition","title":"Default definition","text":"

The default value is 0.

#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/nlohmann_json_namespace_no_version/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE_NO_VERSION to disable the version component of the inline namespace.

#include <iostream>\n\n#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 1\n#include <nlohmann/json.hpp>\n\n// macro needed to output the NLOHMANN_JSON_NAMESPACE as string literal\n#define Q(x) #x\n#define QUOTE(x) Q(x)\n\nint main()\n{\n    std::cout << QUOTE(NLOHMANN_JSON_NAMESPACE) << std::endl;\n}\n

Output:

nlohmann::json_abi\n
"},{"location":"api/macros/nlohmann_json_namespace_no_version/#see-also","title":"See also","text":"
  • nlohmann Namespace
  • NLOHMANN_JSON_NAMESPACE
  • NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END
"},{"location":"api/macros/nlohmann_json_namespace_no_version/#version-history","title":"Version history","text":"
  • Added in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_serialize_enum/","title":"NLOHMANN_JSON_SERIALIZE_ENUM","text":"
#define NLOHMANN_JSON_SERIALIZE_ENUM(type, conversion...)\n

By default, enum values are serialized to JSON as integers. In some cases this could result in undesired behavior. If an enum is modified or re-ordered after data has been serialized to JSON, the later de-serialized JSON data may be undefined or a different enum value than was originally intended.

The NLOHMANN_JSON_SERIALIZE_ENUM allows to define a user-defined serialization for every enumerator.

"},{"location":"api/macros/nlohmann_json_serialize_enum/#parameters","title":"Parameters","text":"type (in) name of the enum to serialize/deserialize conversion (in) a pair of an enumerator and a JSON serialization; arbitrary pairs can be given as a comma-separated list"},{"location":"api/macros/nlohmann_json_serialize_enum/#default-definition","title":"Default definition","text":"

The macros add two friend functions to the class which take care of the serialization and deserialization:

template<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, const type& e);\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, type& e);\n
"},{"location":"api/macros/nlohmann_json_serialize_enum/#notes","title":"Notes","text":"

Prerequisites

The macro must be used inside the namespace of the enum.

Important notes

  • When using template get<ENUM_TYPE>(), undefined JSON values will default to the first specified conversion. Select this default pair carefully. See example 1 below.
  • If an enum or JSON value is specified in multiple conversions, the first matching conversion from the top of the list will be returned when converting to or from JSON. See example 2 below.
"},{"location":"api/macros/nlohmann_json_serialize_enum/#examples","title":"Examples","text":"Example 1: Basic usage

The example shows how NLOHMANN_JSON_SERIALIZE_ENUM can be used to serialize/deserialize both classical enums and C++11 enum classes:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\nenum TaskState\n{\n    TS_STOPPED,\n    TS_RUNNING,\n    TS_COMPLETED,\n    TS_INVALID = -1\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(TaskState,\n{\n    { TS_INVALID, nullptr },\n    { TS_STOPPED, \"stopped\" },\n    { TS_RUNNING, \"running\" },\n    { TS_COMPLETED, \"completed\" }\n})\n\nenum class Color\n{\n    red, green, blue, unknown\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Color,\n{\n    { Color::unknown, \"unknown\" }, { Color::red, \"red\" },\n    { Color::green, \"green\" }, { Color::blue, \"blue\" }\n})\n} // namespace ns\n\nint main()\n{\n    // serialization\n    json j_stopped = ns::TS_STOPPED;\n    json j_red = ns::Color::red;\n    std::cout << \"ns::TS_STOPPED -> \" << j_stopped\n              << \", ns::Color::red -> \" << j_red << std::endl;\n\n    // deserialization\n    json j_running = \"running\";\n    json j_blue = \"blue\";\n    auto running = j_running.template get<ns::TaskState>();\n    auto blue = j_blue.template get<ns::Color>();\n    std::cout << j_running << \" -> \" << running\n              << \", \" << j_blue << \" -> \" << static_cast<int>(blue) << std::endl;\n\n    // deserializing undefined JSON value to enum\n    // (where the first map entry above is the default)\n    json j_pi = 3.14;\n    auto invalid = j_pi.template get<ns::TaskState>();\n    auto unknown = j_pi.template get<ns::Color>();\n    std::cout << j_pi << \" -> \" << invalid << \", \"\n              << j_pi << \" -> \" << static_cast<int>(unknown) << std::endl;\n}\n

Output:

ns::TS_STOPPED -> \"stopped\", ns::Color::red -> \"red\"\n\"running\" -> 1, \"blue\" -> 2\n3.14 -> -1, 3.14 -> 3\n
Example 2: Multiple conversions for one enumerator

The example shows how to use multiple conversions for a single enumerator. In the example, Color::red will always be serialized to \"red\", because the first occurring conversion. The second conversion, however, offers an alternative deserialization from \"rot\" to Color::red.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\nenum class Color\n{\n    red, green, blue, unknown\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Color,\n{\n    { Color::unknown, \"unknown\" }, { Color::red, \"red\" },\n    { Color::green, \"green\" }, { Color::blue, \"blue\" },\n    { Color::red, \"rot\" } // a second conversion for Color::red\n})\n}\n\nint main()\n{\n    // serialization\n    json j_red = ns::Color::red;\n    std::cout << static_cast<int>(ns::Color::red) << \" -> \" << j_red << std::endl;\n\n    // deserialization\n    json j_rot = \"rot\";\n    auto rot = j_rot.template get<ns::Color>();\n    auto red = j_red.template get<ns::Color>();\n    std::cout << j_rot << \" -> \" << static_cast<int>(rot) << std::endl;\n    std::cout << j_red << \" -> \" << static_cast<int>(red) << std::endl;\n}\n

Output:

0 -> \"red\"\n\"rot\" -> 0\n\"red\" -> 0\n
"},{"location":"api/macros/nlohmann_json_serialize_enum/#see-also","title":"See also","text":"
  • Specializing enum conversion
  • JSON_DISABLE_ENUM_SERIALIZATION
"},{"location":"api/macros/nlohmann_json_serialize_enum/#version-history","title":"Version history","text":"

Added in version 3.4.0.

"},{"location":"api/macros/nlohmann_json_version_major/","title":"NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH","text":"
#define NLOHMANN_JSON_VERSION_MAJOR /* value */\n#define NLOHMANN_JSON_VERSION_MINOR /* value */\n#define NLOHMANN_JSON_VERSION_PATCH /* value */\n

These macros are defined by the library and contain the version numbers according to Semantic Versioning 2.0.0.

"},{"location":"api/macros/nlohmann_json_version_major/#default-definition","title":"Default definition","text":"

The macros are defined according to the current library version.

"},{"location":"api/macros/nlohmann_json_version_major/#examples","title":"Examples","text":"Example

The example below shows how NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH are defined by the library.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << \"JSON for Modern C++ version \"\n              << NLOHMANN_JSON_VERSION_MAJOR << \".\"\n              << NLOHMANN_JSON_VERSION_MINOR << \".\"\n              << NLOHMANN_JSON_VERSION_PATCH << std::endl;\n}\n

Output:

JSON for Modern C++ version 3.11.2\n
"},{"location":"api/macros/nlohmann_json_version_major/#see-also","title":"See also","text":"
  • meta - returns version information on the library
  • JSON_SKIP_LIBRARY_VERSION_CHECK - skip library version check
"},{"location":"api/macros/nlohmann_json_version_major/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"features/arbitrary_types/","title":"Arbitrary Type Conversions","text":"

Every type can be serialized in JSON, not just STL containers and scalar types. Usually, you would do something along those lines:

namespace ns {\n    // a simple struct to model a person\n    struct person {\n        std::string name;\n        std::string address;\n        int age;\n    };\n} // namespace ns\n\nns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n// convert to JSON: copy each value into the JSON object\njson j;\nj[\"name\"] = p.name;\nj[\"address\"] = p.address;\nj[\"age\"] = p.age;\n\n// ...\n\n// convert from JSON: copy each value from the JSON object\nns::person p {\n    j[\"name\"].template get<std::string>(),\n    j[\"address\"].template get<std::string>(),\n    j[\"age\"].template get<int>()\n};\n

It works, but that's quite a lot of boilerplate... Fortunately, there's a better way:

// create a person\nns::person p {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n// conversion: person -> json\njson j = p;\n\nstd::cout << j << std::endl;\n// {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n\n// conversion: json -> person\nauto p2 = j.template get<ns::person>();\n\n// that's it\nassert(p == p2);\n
"},{"location":"features/arbitrary_types/#basic-usage","title":"Basic usage","text":"

To make this work with one of your types, you only need to provide two functions:

using json = nlohmann::json;\n\nnamespace ns {\n    void to_json(json& j, const person& p) {\n        j = json{ {\"name\", p.name}, {\"address\", p.address}, {\"age\", p.age} };\n    }\n\n    void from_json(const json& j, person& p) {\n        j.at(\"name\").get_to(p.name);\n        j.at(\"address\").get_to(p.address);\n        j.at(\"age\").get_to(p.age);\n    }\n} // namespace ns\n

That's all! When calling the json constructor with your type, your custom to_json method will be automatically called. Likewise, when calling template get<your_type>() or get_to(your_type&), the from_json method will be called.

Some important things:

  • Those methods MUST be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace ns, where person is defined).
  • Those methods MUST be available (e.g., proper headers must be included) everywhere you use these conversions. Look at issue 1108 for errors that may occur otherwise.
  • When using template get<your_type>(), your_type MUST be DefaultConstructible. (There is a way to bypass this requirement described later.)
  • In function from_json, use function at() to access the object values rather than operator[]. In case a key does not exist, at throws an exception that you can handle, whereas operator[] exhibits undefined behavior.
  • You do not need to add serializers or deserializers for STL types like std::vector: the library already implements these.
"},{"location":"features/arbitrary_types/#simplify-your-life-with-macros","title":"Simplify your life with macros","text":"

If you just want to serialize/deserialize some structs, the to_json/from_json functions can be a lot of boilerplate.

There are four macros to make your life easier as long as you (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object:

  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(name, member1, member2, ...) is to be defined inside the namespace of the class/struct to create code for. It will throw an exception in from_json() due to a missing value in the JSON object.
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(name, member1, member2, ...) is to be defined inside the namespace of the class/struct to create code for. It will not throw an exception in from_json() due to a missing value in the JSON object, but fills in values from object which is default-constructed by the type.
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE(name, member1, member2, ...) is to be defined inside the class/struct to create code for. This macro can also access private members. It will throw an exception in from_json() due to a missing value in the JSON object.
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(name, member1, member2, ...) is to be defined inside the class/struct to create code for. This macro can also access private members. It will not throw an exception in from_json() due to a missing value in the JSON object, but fills in values from object which is default-constructed by the type.

In all macros, the first parameter is the name of the class/struct, and all remaining parameters name the members. You can read more docs about them starting from here.

Implementation limits

  • The current macro implementations are limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
Example

The to_json/from_json functions for the person struct above can be created with:

namespace ns {\n    NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(person, name, address, age)\n}\n

Here is an example with private members, where NLOHMANN_DEFINE_TYPE_INTRUSIVE is needed:

namespace ns {\n    class address {\n      private:\n        std::string street;\n        int housenumber;\n        int postcode;\n\n      public:\n        NLOHMANN_DEFINE_TYPE_INTRUSIVE(address, street, housenumber, postcode)\n    };\n}\n
"},{"location":"features/arbitrary_types/#how-do-i-convert-third-party-types","title":"How do I convert third-party types?","text":"

This requires a bit more advanced technique. But first, let's see how this conversion mechanism works:

The library uses JSON Serializers to convert types to json. The default serializer for nlohmann::json is nlohmann::adl_serializer (ADL means Argument-Dependent Lookup).

It is implemented like this (simplified):

template <typename T>\nstruct adl_serializer {\n    static void to_json(json& j, const T& value) {\n        // calls the \"to_json\" method in T's namespace\n    }\n\n    static void from_json(const json& j, T& value) {\n        // same thing, but with the \"from_json\" method\n    }\n};\n

This serializer works fine when you have control over the type's namespace. However, what about boost::optional or std::filesystem::path (C++17)? Hijacking the boost namespace is pretty bad, and it's illegal to add something other than template specializations to std...

To solve this, you need to add a specialization of adl_serializer to the nlohmann namespace, here's an example:

// partial specialization (full specialization works too)\nNLOHMANN_JSON_NAMESPACE_BEGIN\ntemplate <typename T>\nstruct adl_serializer<boost::optional<T>> {\n    static void to_json(json& j, const boost::optional<T>& opt) {\n        if (opt == boost::none) {\n            j = nullptr;\n        } else {\n            j = *opt; // this will call adl_serializer<T>::to_json which will\n                      // find the free function to_json in T's namespace!\n        }\n    }\n\n    static void from_json(const json& j, boost::optional<T>& opt) {\n        if (j.is_null()) {\n            opt = boost::none;\n        } else {\n            opt = j.template get<T>(); // same as above, but with\n                              // adl_serializer<T>::from_json\n        }\n    }\n};\nNLOHMANN_JSON_NAMESPACE_END\n

ABI compatibility

Use NLOHMANN_JSON_NAMESPACE_BEGIN and NLOHMANN_JSON_NAMESPACE_END instead of namespace nlohmann { } in code which may be linked with different versions of this library.

"},{"location":"features/arbitrary_types/#how-can-i-use-get-for-non-default-constructiblenon-copyable-types","title":"How can I use get() for non-default constructible/non-copyable types?","text":"

There is a way, if your type is MoveConstructible. You will need to specialize the adl_serializer as well, but with a special from_json overload:

struct move_only_type {\n    move_only_type() = delete;\n    move_only_type(int ii): i(ii) {}\n    move_only_type(const move_only_type&) = delete;\n    move_only_type(move_only_type&&) = default;\n\n    int i;\n};\n\nnamespace nlohmann {\n    template <>\n    struct adl_serializer<move_only_type> {\n        // note: the return type is no longer 'void', and the method only takes\n        // one argument\n        static move_only_type from_json(const json& j) {\n            return {j.template get<int>()};\n        }\n\n        // Here's the catch! You must provide a to_json method! Otherwise, you\n        // will not be able to convert move_only_type to json, since you fully\n        // specialized adl_serializer on that type\n        static void to_json(json& j, move_only_type t) {\n            j = t.i;\n        }\n    };\n}\n
"},{"location":"features/arbitrary_types/#can-i-write-my-own-serializer-advanced-use","title":"Can I write my own serializer? (Advanced use)","text":"

Yes. You might want to take a look at unit-udt.cpp in the test suite, to see a few examples.

If you write your own serializer, you'll need to do a few things:

  • use a different basic_json alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer)
  • use your basic_json alias (or a template parameter) in all your to_json/from_json methods
  • use nlohmann::to_json and nlohmann::from_json when you need ADL

Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL.

// You should use void as a second template argument\n// if you don't need compile-time checks on T\ntemplate<typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type>\nstruct less_than_32_serializer {\n    template <typename BasicJsonType>\n    static void to_json(BasicJsonType& j, T value) {\n        // we want to use ADL, and call the correct to_json overload\n        using nlohmann::to_json; // this method is called by adl_serializer,\n                                 // this is where the magic happens\n        to_json(j, value);\n    }\n\n    template <typename BasicJsonType>\n    static void from_json(const BasicJsonType& j, T& value) {\n        // same thing here\n        using nlohmann::from_json;\n        from_json(j, value);\n    }\n};\n

Be very careful when reimplementing your serializer, you can stack overflow if you don't pay attention:

template <typename T, void>\nstruct bad_serializer\n{\n    template <typename BasicJsonType>\n    static void to_json(BasicJsonType& j, const T& value) {\n      // this calls BasicJsonType::json_serializer<T>::to_json(j, value);\n      // if BasicJsonType::json_serializer == bad_serializer ... oops!\n      j = value;\n    }\n\n    template <typename BasicJsonType>\n    static void to_json(const BasicJsonType& j, T& value) {\n      // this calls BasicJsonType::json_serializer<T>::from_json(j, value);\n      // if BasicJsonType::json_serializer == bad_serializer ... oops!\n      value = j.template template get<T>(); // oops!\n    }\n};\n
"},{"location":"features/assertions/","title":"Runtime Assertions","text":"

The code contains numerous debug assertions to ensure class invariants are valid or to detect undefined behavior. Whereas the former class invariants are nothing to be concerned of, the latter checks for undefined behavior are to detect bugs in client code.

"},{"location":"features/assertions/#switch-off-runtime-assertions","title":"Switch off runtime assertions","text":"

Runtime assertions can be switched off by defining the preprocessor macro NDEBUG (see the documentation of assert) which is the default for release builds.

"},{"location":"features/assertions/#change-assertion-behavior","title":"Change assertion behavior","text":"

The behavior of runtime assertions can be changes by defining macro JSON_ASSERT(x) before including the json.hpp header.

"},{"location":"features/assertions/#function-with-runtime-assertions","title":"Function with runtime assertions","text":""},{"location":"features/assertions/#unchecked-object-access-to-a-const-value","title":"Unchecked object access to a const value","text":"

Function operator[] implements unchecked access for objects. Whereas a missing key is added in case of non-const objects, accessing a const object with a missing key is undefined behavior (think of a dereferenced null pointer) and yields a runtime assertion.

If you are not sure whether an element in an object exists, use checked access with the at function or call the contains function before.

See also the documentation on element access.

Example 1: Missing object key

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

Assertion failed: (m_value.object->find(key) != m_value.object->end()), function operator[], file json.hpp, line 2144.\n
"},{"location":"features/assertions/#constructing-from-an-uninitialized-iterator-range","title":"Constructing from an uninitialized iterator range","text":"

Constructing a JSON value from an iterator range (see constructor) with an uninitialized iterator is undefined behavior and yields a runtime assertion.

Example 2: Uninitialized iterator range

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json::iterator it1, it2;\n    json j(it1, it2);\n}\n

Output:

Assertion failed: (m_object != nullptr), function operator++, file iter_impl.hpp, line 368.\n
"},{"location":"features/assertions/#operations-on-uninitialized-iterators","title":"Operations on uninitialized iterators","text":"

Any operation on uninitialized iterators (i.e., iterators that are not associated with any JSON value) is undefined behavior and yields a runtime assertion.

Example 3: Uninitialized iterator

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n  json::iterator it;\n  ++it;\n}\n

Output:

Assertion failed: (m_object != nullptr), function operator++, file iter_impl.hpp, line 368.\n
"},{"location":"features/assertions/#reading-from-a-null-file-pointer","title":"Reading from a null FILE pointer","text":"

Reading from a null FILE pointer is undefined behavior and yields a runtime assertion. This can happen when calling std::fopen on a nonexistent file.

Example 4: Uninitialized iterator

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n  std::FILE* f = std::fopen(\"nonexistent_file.json\", \"r\");\n  json j = json::parse(f);\n}\n

Output:

Assertion failed: (m_file != nullptr), function file_input_adapter, file input_adapters.hpp, line 55.\n
"},{"location":"features/binary_values/","title":"Binary Values","text":"

The library implements several binary formats that encode JSON in an efficient way. Most of these formats support binary values; that is, values that have semantics define outside the library and only define a sequence of bytes to be stored.

JSON itself does not have a binary value. As such, binary values are an extension that this library implements to store values received by a binary format. Binary values are never created by the JSON parser, and are only part of a serialized JSON text if they have been created manually or via a binary format.

"},{"location":"features/binary_values/#api-for-binary-values","title":"API for binary values","text":"

By default, binary values are stored as std::vector<std::uint8_t>. This type can be changed by providing a template parameter to the basic_json type. To store binary subtypes, the storage type is extended and exposed as json::binary_t:

auto binary = json::binary_t({0xCA, 0xFE, 0xBA, 0xBE});\nauto binary_with_subtype = json::binary_t({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n

There are several convenience functions to check and set the subtype:

binary.has_subtype();                   // returns false\nbinary_with_subtype.has_subtype();      // returns true\n\nbinary_with_subtype.clear_subtype();\nbinary_with_subtype.has_subtype();      // returns true\n\nbinary_with_subtype.set_subtype(42);\nbinary.set_subtype(23);\n\nbinary.subtype();                       // returns 23\n

As json::binary_t is subclassing std::vector<std::uint8_t>, all member functions are available:

binary.size();  // returns 4\nbinary[1];      // returns 0xFE\n

JSON values can be constructed from json::binary_t:

json j = binary;\n

Binary values are primitive values just like numbers or strings:

j.is_binary();    // returns true\nj.is_primitive(); // returns true\n

Given a binary JSON value, the binary_t can be accessed by reference as via get_binary():

j.get_binary().has_subtype();  // returns true\nj.get_binary().size();         // returns 4\n

For convenience, binary JSON values can be constructed via json::binary:

auto j2 = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 23);\nauto j3 = json::binary({0xCA, 0xFE, 0xBA, 0xBE});\n\nj2 == j;                        // returns true\nj3.get_binary().has_subtype();  // returns false\nj3.get_binary().subtype();      // returns std::uint64_t(-1) as j3 has no subtype\n
"},{"location":"features/binary_values/#serialization","title":"Serialization","text":"

Binary values are serialized differently according to the formats.

"},{"location":"features/binary_values/#json","title":"JSON","text":"

JSON does not have a binary type, and this library does not introduce a new type as this would break conformance. Instead, binary values are serialized as an object with two keys: bytes holds an array of integers, and subtype is an integer or null.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// serialize to standard output\nstd::cout << j.dump(2) << std::endl;\n

Output:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n

No roundtrip for binary values

The JSON parser will not parse the objects generated by binary values back to binary values. This is by design to remain standards compliant. Serializing binary values to JSON is only implemented for debugging purposes.

"},{"location":"features/binary_values/#bjdata","title":"BJData","text":"

BJData neither supports binary values nor subtypes, and proposes to serialize binary values as array of uint8 values. This translation is implemented by the library.

Example

Code:

// create a binary value of subtype 42 (will be ignored in BJData)\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to BJData\nauto v = json::to_bjdata(j);      \n

v is a std::vector<std::uint8t> with the following 20 elements:

0x7B                                             // '{'\n    0x69 0x06                                    // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79                // \"binary\"\n    0x5B                                         // '['\n        0x55 0xCA 0x55 0xFE 0x55 0xBA 0x55 0xBE  // content (each byte prefixed with 'U')\n    0x5D                                         // ']'\n0x7D                                             // '}'\n

The following code uses the type and size optimization for UBJSON:

// convert to UBJSON using the size and type optimization\nauto v = json::to_bjdata(j, true, true);\n

The resulting vector has 22 elements; the optimization is not effective for examples with few values:

0x7B                                // '{'\n    0x23 0x69 0x01                  // '#' 'i' type of the array elements: unsigned integers\n    0x69 0x06                       // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79   // \"binary\"\n    0x5B                            // '[' array\n        0x24 0x55                   // '$' 'U' type of the array elements: unsigned integers\n        0x23 0x69 0x04              // '#' i 4 number of array elements\n        0xCA 0xFE 0xBA 0xBE         // content\n

Note that subtype (42) is not serialized and that UBJSON has no binary type, and deserializing v would yield the following value:

{\n  \"binary\": [202, 254, 186, 190]\n}\n
"},{"location":"features/binary_values/#bson","title":"BSON","text":"

BSON supports binary values and subtypes. If a subtype is given, it is used and added as unsigned 8-bit integer. If no subtype is given, the generic binary subtype 0x00 is used.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to BSON\nauto v = json::to_bson(j);      \n

v is a std::vector<std::uint8t> with the following 22 elements:

0x16 0x00 0x00 0x00                         // number of bytes in the document\n    0x05                                    // binary value\n        0x62 0x69 0x6E 0x61 0x72 0x79 0x00  // key \"binary\" + null byte\n        0x04 0x00 0x00 0x00                 // number of bytes\n        0x2a                                // subtype\n        0xCA 0xFE 0xBA 0xBE                 // content\n0x00                                        // end of the document\n

Note that the serialization preserves the subtype, and deserializing v would yield the following value:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n
"},{"location":"features/binary_values/#cbor","title":"CBOR","text":"

CBOR supports binary values, but no subtypes. Subtypes will be serialized as tags. Any binary value will be serialized as byte strings. The library will choose the smallest representation using the length of the byte array.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to CBOR\nauto v = json::to_cbor(j);      \n

v is a std::vector<std::uint8t> with the following 15 elements:

0xA1                                   // map(1)\n    0x66                               // text(6)\n        0x62 0x69 0x6E 0x61 0x72 0x79  // \"binary\"\n    0xD8 0x2A                          // tag(42)\n    0x44                               // bytes(4)\n        0xCA 0xFE 0xBA 0xBE            // content\n

Note that the subtype is serialized as tag. However, parsing tagged values yield a parse error unless json::cbor_tag_handler_t::ignore or json::cbor_tag_handler_t::store is passed to json::from_cbor.

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": null\n  }\n}\n
"},{"location":"features/binary_values/#messagepack","title":"MessagePack","text":"

MessagePack supports binary values and subtypes. If a subtype is given, the ext family is used. The library will choose the smallest representation among fixext1, fixext2, fixext4, fixext8, ext8, ext16, and ext32. The subtype is then added as signed 8-bit integer.

If no subtype is given, the bin family (bin8, bin16, bin32) is used.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to MessagePack\nauto v = json::to_msgpack(j);      \n

v is a std::vector<std::uint8t> with the following 14 elements:

0x81                                   // fixmap1\n    0xA6                               // fixstr6\n        0x62 0x69 0x6E 0x61 0x72 0x79  // \"binary\"\n    0xD6                               // fixext4\n        0x2A                           // subtype\n        0xCA 0xFE 0xBA 0xBE            // content\n

Note that the serialization preserves the subtype, and deserializing v would yield the following value:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n
"},{"location":"features/binary_values/#ubjson","title":"UBJSON","text":"

UBJSON neither supports binary values nor subtypes, and proposes to serialize binary values as array of uint8 values. This translation is implemented by the library.

Example

Code:

// create a binary value of subtype 42 (will be ignored in UBJSON)\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to UBJSON\nauto v = json::to_ubjson(j);      \n

v is a std::vector<std::uint8t> with the following 20 elements:

0x7B                                             // '{'\n    0x69 0x06                                    // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79                // \"binary\"\n    0x5B                                         // '['\n        0x55 0xCA 0x55 0xFE 0x55 0xBA 0x55 0xBE  // content (each byte prefixed with 'U')\n    0x5D                                         // ']'\n0x7D                                             // '}'\n

The following code uses the type and size optimization for UBJSON:

// convert to UBJSON using the size and type optimization\nauto v = json::to_ubjson(j, true, true);\n

The resulting vector has 23 elements; the optimization is not effective for examples with few values:

0x7B                                // '{'\n    0x24                            // '$' type of the object elements\n    0x5B                            // '[' array\n    0x23 0x69 0x01                  // '#' i 1 number of object elements\n    0x69 0x06                       // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79   // \"binary\"\n        0x24 0x55                   // '$' 'U' type of the array elements: unsigned integers\n        0x23 0x69 0x04              // '#' i 4 number of array elements\n        0xCA 0xFE 0xBA 0xBE         // content\n

Note that subtype (42) is not serialized and that UBJSON has no binary type, and deserializing v would yield the following value:

{\n  \"binary\": [202, 254, 186, 190]\n}\n
"},{"location":"features/comments/","title":"Comments","text":"

This library does not support comments by default. It does so for three reasons:

  1. Comments are not part of the JSON specification. You may argue that // or /* */ are allowed in JavaScript, but JSON is not JavaScript.
  2. This was not an oversight: Douglas Crockford wrote on this in May 2012:

    I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability.  I know that the lack of comments makes some people sad, but it shouldn't.\n\nSuppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.\n
  3. It is dangerous for interoperability if some libraries would add comment support while others don't. Please check The Harmful Consequences of the Robustness Principle on this.

However, you can pass set parameter ignore_comments to true in the parse function to ignore // or /* */ comments. Comments will then be treated as whitespace.

Example

Consider the following JSON with comments.

{\n    // update in 2006: removed Pluto\n    \"planets\": [\"Mercury\", \"Venus\", \"Earth\", \"Mars\",\n                \"Jupiter\", \"Uranus\", \"Neptune\" /*, \"Pluto\" */]\n}\n

When calling parse without additional argument, a parse error exception is thrown. If ignore_comments is set to true, the comments are ignored during parsing:

#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::string s = R\"(\n    {\n        // update in 2006: removed Pluto\n        \"planets\": [\"Mercury\", \"Venus\", \"Earth\", \"Mars\",\n                    \"Jupiter\", \"Uranus\", \"Neptune\" /*, \"Pluto\" */]\n    }\n    )\";\n\n    try\n    {\n        json j = json::parse(s);\n    }\n    catch (json::exception &e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    json j = json::parse(s,\n                         /* callback */ nullptr,\n                         /* allow exceptions */ true,\n                         /* ignore_comments */ true);\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

[json.exception.parse_error.101] parse error at line 3, column 9:\nsyntax error while parsing object key - invalid literal;\nlast read: '<U+000A>    {<U+000A>        /'; expected string literal\n
{\n  \"planets\": [\n    \"Mercury\",\n    \"Venus\",\n    \"Earth\",\n    \"Mars\",\n    \"Jupiter\",\n    \"Uranus\",\n    \"Neptune\"\n  ]\n}\n
"},{"location":"features/enum_conversion/","title":"Specializing enum conversion","text":"

By default, enum values are serialized to JSON as integers. In some cases this could result in undesired behavior. If an enum is modified or re-ordered after data has been serialized to JSON, the later de-serialized JSON data may be undefined or a different enum value than was originally intended.

It is possible to more precisely specify how a given enum is mapped to and from JSON as shown below:

// example enum type declaration\nenum TaskState {\n    TS_STOPPED,\n    TS_RUNNING,\n    TS_COMPLETED,\n    TS_INVALID=-1,\n};\n\n// map TaskState values to JSON as strings\nNLOHMANN_JSON_SERIALIZE_ENUM( TaskState, {\n    {TS_INVALID, nullptr},\n    {TS_STOPPED, \"stopped\"},\n    {TS_RUNNING, \"running\"},\n    {TS_COMPLETED, \"completed\"},\n})\n

The NLOHMANN_JSON_SERIALIZE_ENUM() macro declares a set of to_json() / from_json() functions for type TaskState while avoiding repetition and boilerplate serialization code.

"},{"location":"features/enum_conversion/#usage","title":"Usage","text":"
// enum to JSON as string\njson j = TS_STOPPED;\nassert(j == \"stopped\");\n\n// json string to enum\njson j3 = \"running\";\nassert(j3.template get<TaskState>() == TS_RUNNING);\n\n// undefined json value to enum (where the first map entry above is the default)\njson jPi = 3.14;\nassert(jPi.template get<TaskState>() == TS_INVALID );\n
"},{"location":"features/enum_conversion/#notes","title":"Notes","text":"

Just as in Arbitrary Type Conversions above,

  • NLOHMANN_JSON_SERIALIZE_ENUM() MUST be declared in your enum type's namespace (which can be the global namespace), or the library will not be able to locate it, and it will default to integer serialization.
  • It MUST be available (e.g., proper headers must be included) everywhere you use the conversions.

Other Important points:

  • When using template get<ENUM_TYPE>(), undefined JSON values will default to the first pair specified in your map. Select this default pair carefully.
  • If an enum or JSON value is specified more than once in your map, the first matching occurrence from the top of the map will be returned when converting to or from JSON.
  • To disable the default serialization of enumerators as integers and force a compiler error instead, see JSON_DISABLE_ENUM_SERIALIZATION.
"},{"location":"features/iterators/","title":"Iterators","text":""},{"location":"features/iterators/#overview","title":"Overview","text":"

A basic_json value is a container and allows access via iterators. Depending on the value type, basic_json stores zero or more values.

As for other containers, begin() returns an iterator to the first value and end() returns an iterator to the value following the last value. The latter iterator is a placeholder and cannot be dereferenced. In case of null values, empty arrays, or empty objects, begin() will return end().

"},{"location":"features/iterators/#iteration-order-for-objects","title":"Iteration order for objects","text":"

When iterating over objects, values are ordered with respect to the object_comparator_t type which defaults to std::less. See the types documentation for more information.

Example
// create JSON object {\"one\": 1, \"two\": 2, \"three\": 3}\njson j;\nj[\"one\"] = 1;\nj[\"two\"] = 2;\nj[\"three\"] = 3;\n\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

1\n3\n2\n

The reason for the order is the lexicographic ordering of the object keys \"one\", \"three\", \"two\".

"},{"location":"features/iterators/#access-object-key-during-iteration","title":"Access object key during iteration","text":"

The JSON iterators have two member functions, key() and value() to access the object key and stored value, respectively. When calling key() on a non-object iterator, an invalid_iterator.207 exception is thrown.

Example
// create JSON object {\"one\": 1, \"two\": 2, \"three\": 3}\njson j;\nj[\"one\"] = 1;\nj[\"two\"] = 2;\nj[\"three\"] = 3;\n\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << it.key() << \" : \" << it.value() << std::endl;\n}\n

Output:

one : 1\nthree : 3\ntwo : 2\n
"},{"location":"features/iterators/#range-based-for-loops","title":"Range-based for loops","text":"

C++11 allows using range-based for loops to iterate over a container.

for (auto it : j_object)\n{\n    // \"it\" is of type json::reference and has no key() member\n    std::cout << \"value: \" << it << '\\n';\n}\n

For this reason, the items() function allows accessing iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.

for (auto& el : j_object.items())\n{\n    std::cout << \"key: \" << el.key() << \", value:\" << el.value() << '\\n';\n}\n

The items() function also allows using structured bindings (C++17):

for (auto& [key, val] : j_object.items())\n{\n    std::cout << \"key: \" << key << \", value:\" << val << '\\n';\n}\n

Note

When iterating over an array, key() will return the index of the element as string. For primitive types (e.g., numbers), key() returns an empty string.

Warning

Using items() on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.

"},{"location":"features/iterators/#reverse-iteration-order","title":"Reverse iteration order","text":"

rbegin() and rend() return iterators in the reverse sequence.

Example
json j = {1, 2, 3, 4};\n\nfor (auto it = j.rbegin(); it != j.rend(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

4\n3\n2\n1\n
"},{"location":"features/iterators/#iterating-strings-and-binary-values","title":"Iterating strings and binary values","text":"

Note that \"value\" means a JSON value in this setting, not values stored in the underlying containers. That is, *begin() returns the complete string or binary array and is also safe the underlying string or binary array is empty.

Example
json j = \"Hello, world\";\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

\"Hello, world\"\n
"},{"location":"features/iterators/#iterator-invalidation","title":"Iterator invalidation","text":"Operations invalidated iterators clear all"},{"location":"features/json_patch/","title":"JSON Patch and Diff","text":""},{"location":"features/json_patch/#patches","title":"Patches","text":"

JSON Patch (RFC 6902) defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With the patch function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.

Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // apply the patch\n    json patched_doc = doc.patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << doc << \"\\n\\n\"\n              << std::setw(4) << patched_doc << std::endl;\n}\n

Output:

{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"features/json_patch/#diff","title":"Diff","text":"

The library can also calculate a JSON patch (i.e., a diff) given two JSON values.

Invariant

For two JSON values source and target, the following code yields always true:

source.patch(diff(source, target)) == target;\n
Example

The following code shows how a JSON patch is created as a diff for two JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the source document\n    json source = R\"(\n        {\n            \"baz\": \"qux\",\n            \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the target document\n    json target = R\"(\n        {\n            \"baz\": \"boo\",\n            \"hello\": [\n                \"world\"\n            ]\n        }\n    )\"_json;\n\n    // create the patch\n    json patch = json::diff(source, target);\n\n    // roundtrip\n    json patched_source = source.patch(patch);\n\n    // output patch and roundtrip result\n    std::cout << std::setw(4) << patch << \"\\n\\n\"\n              << std::setw(4) << patched_source << std::endl;\n}\n

Output:

[\n    {\n        \"op\": \"replace\",\n        \"path\": \"/baz\",\n        \"value\": \"boo\"\n    },\n    {\n        \"op\": \"remove\",\n        \"path\": \"/foo\"\n    },\n    {\n        \"op\": \"add\",\n        \"path\": \"/hello\",\n        \"value\": [\n            \"world\"\n        ]\n    }\n]\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"features/json_pointer/","title":"JSON Pointer","text":""},{"location":"features/json_pointer/#introduction","title":"Introduction","text":"

The library supports JSON Pointer (RFC 6901) as alternative means to address structured values. A JSON Pointer is a string that identifies a specific value within a JSON document.

Consider the following JSON document

{\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n}\n

Then every value inside the JSON document can be identified as follows:

JSON Pointer JSON value `` {\"array\":[\"A\",\"B\",\"C\"],\"nested\":{\"one\":1,\"two\":2,\"three\":[true,false]}} /array [\"A\",\"B\",\"C\"] /array/0 A /array/1 B /array/2 C /nested {\"one\":1,\"two\":2,\"three\":[true,false]} /nested/one 1 /nested/two 2 /nested/three [true,false] /nested/three/0 true /nested/three/1 false

Note / does not identify the root (i.e., the whole document), but an object entry with empty key \"\". See RFC 6901 for more information.

"},{"location":"features/json_pointer/#json-pointer-creation","title":"JSON Pointer creation","text":"

JSON Pointers can be created from a string:

json::json_pointer p = \"/nested/one\";\n

Furthermore, a user-defined string literal can be used to achieve the same result:

auto p = \"/nested/one\"_json_pointer;\n

The escaping rules of RFC 6901 are implemented. See the constructor documentation for more information.

"},{"location":"features/json_pointer/#value-access","title":"Value access","text":"

JSON Pointers can be used in the at, operator[], and value functions just like object keys or array indices.

// the JSON value from above\nauto j = json::parse(R\"({\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n})\");\n\n// access values\nauto val = j[\"/\"_json_pointer];                             // {\"array\":[\"A\",\"B\",\"C\"],...}\nauto val1 = j[\"/nested/one\"_json_pointer];                  // 1\nauto val2 = j.at[json::json_pointer(\"/nested/three/1\")];    // false\nauto val3 = j.value[json::json_pointer(\"/nested/four\", 0)]; // 0\n
"},{"location":"features/json_pointer/#flatten-unflatten","title":"Flatten / unflatten","text":"

The library implements a function flatten to convert any JSON document into a JSON object where each key is a JSON Pointer and each value is a primitive JSON value (i.e., a string, boolean, number, or null).

// the JSON value from above\nauto j = json::parse(R\"({\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n})\");\n\n// create flattened value\nauto j_flat = j.flatten();\n

The resulting value j_flat is:

{\n  \"/array/0\": \"A\",\n  \"/array/1\": \"B\",\n  \"/array/2\": \"C\",\n  \"/nested/one\": 1,\n  \"/nested/two\": 2,\n  \"/nested/three/0\": true,\n  \"/nested/three/1\": false\n}\n

The reverse function, unflatten recreates the original value.

auto j_original = j_flat.unflatten();\n
"},{"location":"features/json_pointer/#see-also","title":"See also","text":"
  • Class json_pointer
  • Function flatten
  • Function unflatten
  • JSON Patch
"},{"location":"features/macros/","title":"Supported Macros","text":"

Some aspects of the library can be configured by defining preprocessor macros before including the json.hpp header. See also the API documentation for macros for examples and more information.

"},{"location":"features/macros/#json_assertx","title":"JSON_ASSERT(x)","text":"

This macro controls which code is executed for runtime assertions of the library.

See full documentation of JSON_ASSERT(x).

"},{"location":"features/macros/#json_catch_userexception","title":"JSON_CATCH_USER(exception)","text":"

This macro overrides catch calls inside the library.

See full documentation of JSON_CATCH_USER(exception).

"},{"location":"features/macros/#json_diagnostics","title":"JSON_DIAGNOSTICS","text":"

This macro enables extended diagnostics for exception messages. Possible values are 1 to enable or 0 to disable (default).

When enabled, exception messages contain a JSON Pointer to the JSON value that triggered the exception, see Extended diagnostic messages for an example. Note that enabling this macro increases the size of every JSON value by one pointer and adds some runtime overhead.

The diagnostics messages can also be controlled with the CMake option JSON_Diagnostics (OFF by default) which sets JSON_DIAGNOSTICS accordingly.

See full documentation of JSON_DIAGNOSTICS.

"},{"location":"features/macros/#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20","title":"JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20","text":"

The library targets C++11, but also supports some features introduced in later C++ versions (e.g., std::string_view support for C++17). For these new features, the library implements some preprocessor checks to determine the C++ standard. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly.

See full documentation of JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, and JSON_HAS_CPP_20.

"},{"location":"features/macros/#json_has_filesystem-json_has_experimental_filesystem","title":"JSON_HAS_FILESYSTEM, JSON_HAS_EXPERIMENTAL_FILESYSTEM","text":"

When compiling with C++17, the library provides conversions from and to std::filesystem::path. As compiler support for filesystem is limited, the library tries to detect whether <filesystem>/std::filesystem (JSON_HAS_FILESYSTEM) or <experimental/filesystem>/std::experimental::filesystem (JSON_HAS_EXPERIMENTAL_FILESYSTEM) should be used. To override the built-in check, define JSON_HAS_FILESYSTEM or JSON_HAS_EXPERIMENTAL_FILESYSTEM to 1.

See full documentation of JSON_HAS_FILESYSTEM and JSON_HAS_EXPERIMENTAL_FILESYSTEM.

"},{"location":"features/macros/#json_noexception","title":"JSON_NOEXCEPTION","text":"

Exceptions can be switched off by defining the symbol JSON_NOEXCEPTION.

See full documentation of JSON_NOEXCEPTION.

"},{"location":"features/macros/#json_disable_enum_serialization","title":"JSON_DISABLE_ENUM_SERIALIZATION","text":"

When defined, default parse and serialize functions for enums are excluded and have to be provided by the user, for example, using NLOHMANN_JSON_SERIALIZE_ENUM.

See full documentation of JSON_DISABLE_ENUM_SERIALIZATION.

"},{"location":"features/macros/#json_no_io","title":"JSON_NO_IO","text":"

When defined, headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream> are not included and parse functions relying on these headers are excluded. This is relevant for environment where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)).

See full documentation of JSON_NO_IO.

"},{"location":"features/macros/#json_skip_library_version_check","title":"JSON_SKIP_LIBRARY_VERSION_CHECK","text":"

When defined, the library will not create a compiler warning when a different version of the library was already included.

See full documentation of JSON_SKIP_LIBRARY_VERSION_CHECK.

"},{"location":"features/macros/#json_skip_unsupported_compiler_check","title":"JSON_SKIP_UNSUPPORTED_COMPILER_CHECK","text":"

When defined, the library will not create a compile error when a known unsupported compiler is detected. This allows to use the library with compilers that do not fully support C++11 and may only work if unsupported features are not used.

See full documentation of JSON_SKIP_UNSUPPORTED_COMPILER_CHECK.

"},{"location":"features/macros/#json_throw_userexception","title":"JSON_THROW_USER(exception)","text":"

This macro overrides throw calls inside the library. The argument is the exception to be thrown.

See full documentation of JSON_THROW_USER(exception).

"},{"location":"features/macros/#json_try_user","title":"JSON_TRY_USER","text":"

This macro overrides try calls inside the library.

See full documentation of JSON_TRY_USER.

"},{"location":"features/macros/#json_use_implicit_conversions","title":"JSON_USE_IMPLICIT_CONVERSIONS","text":"

When defined to 0, implicit conversions are switched off. By default, implicit conversions are switched on.

See full documentation of JSON_USE_IMPLICIT_CONVERSIONS.

"},{"location":"features/macros/#nlohmann_define_type_intrusivetype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)","text":"

This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.

The macro is to be defined inside the class/struct to create code for. Unlike NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, it can access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE.

"},{"location":"features/macros/#nlohmann_define_type_intrusive_with_defaulttype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_INTRUSIVE. It will not throw an exception in from_json() due to a missing value in the JSON object, but can throw due to a mismatched type. The from_json() function default constructs an object and uses its values as the defaults when calling the value function.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT.

"},{"location":"features/macros/#nlohmann_define_type_intrusive_only_serializetype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_INTRUSIVE except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusivetype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)","text":"

This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.

The macro is to be defined inside the namespace of the class/struct to create code for. Private members cannot be accessed. Use NLOHMANN_DEFINE_TYPE_INTRUSIVE in these scenarios. The first parameter is the name of the class/struct, and all remaining parameters name the members.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusive_with_defaulttype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE. It will not throw an exception in from_json() due to a missing value in the JSON object, but can throw due to a mismatched type. The from_json() function default constructs an object and uses its values as the defaults when calling the value function.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusive_only_serializetype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE.

"},{"location":"features/macros/#nlohmann_json_serialize_enumtype","title":"NLOHMANN_JSON_SERIALIZE_ENUM(type, ...)","text":"

This macro simplifies the serialization/deserialization of enum types. See Specializing enum conversion for more information.

See full documentation of NLOHMANN_JSON_SERIALIZE_ENUM.

"},{"location":"features/macros/#nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch","title":"NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH","text":"

These macros are defined by the library and contain the version numbers according to Semantic Versioning 2.0.0.

See full documentation of NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH.

"},{"location":"features/merge_patch/","title":"JSON Merge Patch","text":"

The library supports JSON Merge Patch (RFC 7386) as a patch format. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content. This function applies a merge patch to the current JSON value.

Instead of using JSON Pointer to specify values to be manipulated, it describes the changes using a syntax that closely mimics the document being modified.

Example

The following code shows how a JSON Merge Patch is applied to a JSON document.

#include <iostream>\n#include <nlohmann/json.hpp>\n#include <iomanip> // for std::setw\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json document = R\"({\n                \"title\": \"Goodbye!\",\n                \"author\": {\n                    \"givenName\": \"John\",\n                    \"familyName\": \"Doe\"\n                },\n                \"tags\": [\n                    \"example\",\n                    \"sample\"\n                ],\n                \"content\": \"This will be unchanged\"\n            })\"_json;\n\n    // the patch\n    json patch = R\"({\n                \"title\": \"Hello!\",\n                \"phoneNumber\": \"+01-123-456-7890\",\n                \"author\": {\n                    \"familyName\": null\n                },\n                \"tags\": [\n                    \"example\"\n                ]\n            })\"_json;\n\n    // apply the patch\n    document.merge_patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << document << std::endl;\n}\n

Output:

{\n    \"author\": {\n        \"givenName\": \"John\"\n    },\n    \"content\": \"This will be unchanged\",\n    \"phoneNumber\": \"+01-123-456-7890\",\n    \"tags\": [\n        \"example\"\n    ],\n    \"title\": \"Hello!\"\n}\n
"},{"location":"features/namespace/","title":"nlohmann Namespace","text":"

The 3.11.0 release introduced an inline namespace to allow different parts of a codebase to safely use different versions of the JSON library as long as they never exchange instances of library types.

"},{"location":"features/namespace/#structure","title":"Structure","text":"

The complete default namespace name is derived as follows:

  • The root namespace is always nlohmann.
  • The inline namespace starts with json_abi and is followed by serveral optional ABI tags according to the value of these ABI-affecting macros, in order:
    • JSON_DIAGNOSTICS defined non-zero appends _diag.
    • JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON defined non-zero appends _ldvcmp.
  • The inline namespace ends with the suffix _v followed by the 3 components of the version number separated by underscores. To omit the version component, see Disabling the version component below.

For example, the namespace name for version 3.11.2 with JSON_DIAGNOSTICS defined to 1 is:

nlohmann::json_abi_diag_v3_11_2\n
"},{"location":"features/namespace/#purpose","title":"Purpose","text":"

Several incompatibilities have been observed. Amongst the most common ones is linking code compiled with different definitions of JSON_DIAGNOSTICS. This is illustrated in the diagram below.

In releases prior to 3.11.0, mixing any version of the JSON library with different JSON_DIAGNOSTICS settings would result in a crashing application. If some_library never passes instances of JSON library types to the application, this scenario became safe in version 3.11.0 and above due to the inline namespace yielding distinct symbol names.

"},{"location":"features/namespace/#limitations","title":"Limitations","text":"

Neither the compiler nor the linker will issue as much as a warning when translation units \u2013 intended to be linked together and that include different versions and/or configurations of the JSON library \u2013 exchange and use library types.

There is an exception when forward declarations are used (i.e., when including json_fwd.hpp) in which case the linker may complain about undefined references.

"},{"location":"features/namespace/#disabling-the-version-component","title":"Disabling the version component","text":"

Different versions are not necessarily ABI-incompatible, but the project does not actively track changes in the ABI and recommends that all parts of a codebase exchanging library types be built with the same version. Users can, at their own risk, disable the version component of the linline namespace, allowing different versions \u2013 but not configurations \u2013 to be used in cases where the linker would otherwise output undefined reference errors.

To do so, define NLOHMANN_JSON_NAMESPACE_NO_VERSION to 1.

This applies to version 3.11.2 and above only, versions 3.11.0 and 3.11.1 can apply the technique described in the next section to emulate the effect of the NLOHMANN_JSON_NAMESPACE_NO_VERSION macro.

Use at your own risk

Disabling the namespace version component and mixing ABI-incompatible versions will result in crashes or incorrect behavior. You have been warned!

"},{"location":"features/namespace/#disabling-the-inline-namespace-completely","title":"Disabling the inline namespace completely","text":"

When interoperability with code using a pre-3.11.0 version of the library is required, users can, at their own risk restore the old namespace layout by redefining NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END as follows:

#define NLOHMANN_JSON_NAMESPACE_BEGIN  namespace nlohmann {\n#define NLOHMANN_JSON_NAMESPACE_END    }\n

Use at your own risk

Overriding the namespace and mixing ABI-incompatible versions will result in crashes or incorrect behavior. You have been warned!

"},{"location":"features/namespace/#version-history","title":"Version history","text":"
  • Introduced inline namespace (json_v3_11_0[_abi-tag]*) in version 3.11.0.
  • Changed structure of inline namespace in version 3.11.2.
"},{"location":"features/object_order/","title":"Object Order","text":"

The JSON standard defines objects as \"an unordered collection of zero or more name/value pairs\". As such, an implementation does not need to preserve any specific order of object keys.

"},{"location":"features/object_order/#default-behavior-sort-keys","title":"Default behavior: sort keys","text":"

The default type nlohmann::json uses a std::map to store JSON objects, and thus stores object keys sorted alphabetically.

Example
#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"three\": 3,\n  \"two\": 2\n}\n
"},{"location":"features/object_order/#alternative-behavior-preserve-insertion-order","title":"Alternative behavior: preserve insertion order","text":"

If you do want to preserve the insertion order, you can try the type nlohmann::ordered_json.

Example
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing ordered_json = nlohmann::ordered_json;\n\nint main()\n{\n    ordered_json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n

Alternatively, you can use a more sophisticated ordered map like tsl::ordered_map (integration) or nlohmann::fifo_map (integration).

"},{"location":"features/object_order/#notes-on-parsing","title":"Notes on parsing","text":"

Note that you also need to call the right parse function when reading from a file. Assume file input.json contains the JSON object above:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n

Right way

The following code correctly calls the parse function from nlohmann::ordered_json:

std::ifstream i(\"input.json\");\nauto j = nlohmann::ordered_json::parse(i);\nstd::cout << j.dump(2) << std::endl;\n

The output will be:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n
Wrong way

The following code incorrectly calls the parse function from nlohmann::json which does not preserve the insertion order, but sorts object keys. Assigning the result to nlohmann::ordered_json compiles, but does not restore the order from the input file.

std::ifstream i(\"input.json\");\nnlohmann::ordered_json j = nlohmann::json::parse(i);\nstd::cout << j.dump(2) << std::endl;\n

The output will be:

{\n  \"one\": 1,\n  \"three\": 3\n  \"two\": 2,\n}\n
"},{"location":"features/binary_formats/","title":"Binary Formats","text":"

Though JSON is a ubiquitous data format, it is not a very compact format suitable for data exchange, for instance over a network. Hence, the library supports

  • BJData (Binary JData),
  • BSON (Binary JSON),
  • CBOR (Concise Binary Object Representation),
  • MessagePack, and
  • UBJSON (Universal Binary JSON)

to efficiently encode JSON values to byte vectors and to decode such vectors.

"},{"location":"features/binary_formats/#comparison","title":"Comparison","text":""},{"location":"features/binary_formats/#completeness","title":"Completeness","text":"Format Serialization Deserialization BJData complete complete BSON incomplete: top-level value must be an object incomplete, but all JSON types are supported CBOR complete incomplete, but all JSON types are supported MessagePack complete complete UBJSON complete complete"},{"location":"features/binary_formats/#binary-values","title":"Binary values","text":"Format Binary values Binary subtypes BJData not supported not supported BSON supported supported CBOR supported supported MessagePack supported supported UBJSON not supported not supported

See binary values for more information.

"},{"location":"features/binary_formats/#sizes","title":"Sizes","text":"Format canada.json twitter.json citm_catalog.json jeopardy.json BJData 53.2 % 91.1 % 78.1 % 96.6 % BJData (size) 58.6 % 92.1 % 86.7 % 97.4 % BJData (size+tyoe) 58.6 % 92.1 % 86.5 % 97.4 % BSON 85.8 % 95.2 % 95.8 % 106.7 % CBOR 50.5 % 86.3 % 68.4 % 88.0 % MessagePack 50.5 % 86.0 % 68.5 % 87.9 % UBJSON 53.2 % 91.3 % 78.2 % 96.6 % UBJSON (size) 58.6 % 92.3 % 86.8 % 97.4 % UBJSON (size+type) 55.9 % 92.3 % 85.0 % 95.0 %

Sizes compared to minified JSON value.

"},{"location":"features/binary_formats/bjdata/","title":"BJData","text":"

The BJData format was derived from and improved upon Universal Binary JSON(UBJSON) specification (Draft 12). Specifically, it introduces an optimized array container for efficient storage of N-dimensional packed arrays (ND-arrays); it also adds 4 new type markers - [u] - uint16, [m] - uint32, [M] - uint64 and [h] - float16 - to unambiguously map common binary numeric types; furthermore, it uses little-endian (LE) to store all numerics instead of big-endian (BE) as in UBJSON to avoid unnecessary conversions on commonly available platforms.

Compared to other binary JSON-like formats such as MessagePack and CBOR, both BJData and UBJSON demonstrate a rare combination of being both binary and quasi-human-readable. This is because all semantic elements in BJData and UBJSON, including the data-type markers and name/string types are directly human-readable. Data stored in the BJData/UBJSON format are not only compact in size, fast to read/write, but also can be directly searched or read using simple processing.

References

  • BJData Specification
"},{"location":"features/binary_formats/bjdata/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to BJData types according to the BJData specification:

JSON value type value/range BJData type marker null null null Z boolean true true T boolean false false F number_integer -9223372036854775808..-2147483649 int64 L number_integer -2147483648..-32769 int32 l number_integer -32768..-129 int16 I number_integer -128..127 int8 i number_integer 128..255 uint8 U number_integer 256..32767 int16 I number_integer 32768..65535 uint16 u number_integer 65536..2147483647 int32 l number_integer 2147483648..4294967295 uint32 m number_integer 4294967296..9223372036854775807 int64 L number_integer 9223372036854775808..18446744073709551615 uint64 M number_unsigned 0..127 int8 i number_unsigned 128..255 uint8 U number_unsigned 256..32767 int16 I number_unsigned 32768..65535 uint16 u number_unsigned 65536..2147483647 int32 l number_unsigned 2147483648..4294967295 uint32 m number_unsigned 4294967296..9223372036854775807 int64 L number_unsigned 9223372036854775808..18446744073709551615 uint64 M number_float any value float64 D string with shortest length indicator string S array see notes on optimized format/ND-array array [ object see notes on optimized format map {

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a BJData value.

Any BJData output created by to_bjdata can be successfully parsed by from_bjdata.

Size constraints

The following values can not be converted to a BJData value:

  • strings with more than 18446744073709551615 bytes, i.e., 2^{64}-1 bytes (theoretical)

Unused BJData markers

The following markers are not used in the conversion:

  • Z: no-op values are not created.
  • C: single-byte strings are serialized with S markers.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.

Endianness

A breaking difference between BJData and UBJSON is the endianness of numerical values. In BJData, all numerical data types (integers UiuImlML and floating-point values hdD) are stored in the little-endian (LE) byte order as opposed to big-endian as used by UBJSON. Adopting LE to store numeric records avoids unnecessary byte swapping on most modern computers where LE is used as the default byte order.

Optimized formats

Optimized formats for containers are supported via two parameters of to_bjdata:

  • Parameter use_size adds size information to the beginning of a container and removes the closing marker.
  • Parameter use_type further checks whether all elements of a container have the same type and adds the type marker to the beginning of the container. The use_type parameter must only be used together with use_size = true.

Note that use_size = true alone may result in larger representations - the benefit of this parameter is that the receiving side is immediately informed of the number of elements in the container.

ND-array optimized format

BJData extends UBJSON's optimized array size marker to support ND-arrays of uniform numerical data types (referred to as packed arrays). For example, the 2-D uint8 integer array [[1,2],[3,4],[5,6]], stored as nested optimized array in UBJSON [ [$U#i2 1 2 [$U#i2 3 4 [$U#i2 5 6 ], can be further compressed in BJData to [$U#[$i#i2 2 3 1 2 3 4 5 6 or [$U#[i2 i3] 1 2 3 4 5 6.

To maintain type and size information, ND-arrays are converted to JSON objects following the annotated array format (defined in the JData specification (Draft 3)), when parsed using from_bjdata. For example, the above 2-D uint8 array can be parsed and accessed as

{\n    \"_ArrayType_\": \"uint8\",\n    \"_ArraySize_\": [2,3],\n    \"_ArrayData_\": [1,2,3,4,5,6]\n}\n

Likewise, when a JSON object in the above form is serialzed using to_bjdata, it is automatically converted into a compact BJData ND-array. The only exception is, that when the 1-dimensional vector stored in \"_ArraySize_\" contains a single integer or two integers with one being 1, a regular 1-D optimized array is generated.

The current version of this library does not yet support automatic detection of and conversion from a nested JSON array input to a BJData ND-array.

Restrictions in optimized data types for arrays and objects

Due to diminished space saving, hampered readability, and increased security risks, in BJData, the allowed data types following the $ marker in an optimized array and object container are restricted to non-zero-fixed-length data types. Therefore, the valid optimized type markers can only be one of UiuImlMLhdDC. This also means other variable ([{SH) or zero-length types (TFN) can not be used in an optimized array or object in BJData.

Binary values

If the JSON data contains the binary type, the value stored is a list of integers, as suggested by the BJData documentation. In particular, this means that the serialization and the deserialization of JSON containing binary values into BJData and back will result in a different JSON object.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print BJData's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to BJData\n    std::vector<std::uint8_t> v = json::to_bjdata(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to BJData using default representation\n    std::vector<std::uint8_t> v_array = json::to_bjdata(array);\n    // serialize it to BJData using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_bjdata(array, true);\n    // serialize it to BJData using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_bjdata(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"features/binary_formats/bjdata/#deserialization","title":"Deserialization","text":"

The library maps BJData types to JSON value types as follows:

BJData type JSON value type marker no-op no value, next value is read N null null Z false false F true true T float16 number_float h float32 number_float d float64 number_float D uint8 number_unsigned U int8 number_integer i uint16 number_unsigned u int16 number_integer I uint32 number_unsigned m int32 number_integer l uint64 number_unsigned M int64 number_integer L string string S char string C array array (optimized values are supported) [ ND-array object (in JData annotated array format) [$.#[. object object (optimized values are supported) {

Complete mapping

The mapping is complete in the sense that any BJData value can be converted to a JSON value.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with BJData\n    json j = json::from_bjdata(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/bson/","title":"BSON","text":"

BSON, short for Binary JSON, is a binary-encoded serialization of JSON-like documents. Like JSON, BSON supports the embedding of documents and arrays within other documents and arrays. BSON also contains extensions that allow representation of data types that are not part of the JSON spec. For example, BSON has a Date type and a BinData type.

References

  • BSON Website - the main source on BSON
  • BSON Specification - the specification
"},{"location":"features/binary_formats/bson/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to BSON types:

JSON value type value/range BSON type marker null null null 0x0A boolean true, false boolean 0x08 number_integer -9223372036854775808..-2147483649 int64 0x12 number_integer -2147483648..2147483647 int32 0x10 number_integer 2147483648..9223372036854775807 int64 0x12 number_unsigned 0..2147483647 int32 0x10 number_unsigned 2147483648..9223372036854775807 int64 0x12 number_unsigned 9223372036854775808..18446744073709551615 -- -- number_float any value double 0x01 string any value string 0x02 array any value document 0x04 object any value document 0x03 binary any value binary 0x05

Incomplete mapping

The mapping is incomplete, since only JSON-objects (and things contained therein) can be serialized to BSON. Also, integers larger than 9223372036854775807 cannot be serialized to BSON, and the keys may not contain U+0000, since they are serialized a zero-terminated c-strings.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to BSON\n    std::vector<std::uint8_t> v = json::to_bson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x1b 0x00 0x00 0x00 0x08 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0x00 0x01 0x10 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 0x00 0x00 0x00 0x00 0x00 \n
"},{"location":"features/binary_formats/bson/#deserialization","title":"Deserialization","text":"

The library maps BSON record types to JSON value types as follows:

BSON type BSON marker byte JSON value type double 0x01 number_float string 0x02 string document 0x03 object array 0x04 array binary 0x05 binary undefined 0x06 unsupported ObjectId 0x07 unsupported boolean 0x08 boolean UTC Date-Time 0x09 unsupported null 0x0A null Regular Expr. 0x0B unsupported DB Pointer 0x0C unsupported JavaScript Code 0x0D unsupported Symbol 0x0E unsupported JavaScript Code 0x0F unsupported int32 0x10 number_integer Timestamp 0x11 unsupported 128-bit decimal float 0x13 unsupported Max Key 0x7F unsupported Min Key 0xFF unsupported

Incomplete mapping

The mapping is incomplete. The unsupported mappings are indicated in the table above.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x1b, 0x00, 0x00, 0x00, 0x08, 0x63, 0x6f, 0x6d,\n                                   0x70, 0x61, 0x63, 0x74, 0x00, 0x01, 0x10, 0x73,\n                                   0x63, 0x68, 0x65, 0x6d, 0x61, 0x00, 0x00, 0x00,\n                                   0x00, 0x00, 0x00\n                                  };\n\n    // deserialize it with BSON\n    json j = json::from_bson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/cbor/","title":"CBOR","text":"

The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.

References

  • CBOR Website - the main source on CBOR
  • CBOR Playground - an interactive webpage to translate between JSON and CBOR
  • RFC 7049 - the CBOR specification
"},{"location":"features/binary_formats/cbor/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to CBOR types according to the CBOR specification (RFC 7049):

JSON value type value/range CBOR type first byte null null Null 0xF6 boolean true True 0xF5 boolean false False 0xF4 number_integer -9223372036854775808..-2147483649 Negative integer (8 bytes follow) 0x3B number_integer -2147483648..-32769 Negative integer (4 bytes follow) 0x3A number_integer -32768..-129 Negative integer (2 bytes follow) 0x39 number_integer -128..-25 Negative integer (1 byte follow) 0x38 number_integer -24..-1 Negative integer 0x20..0x37 number_integer 0..23 Integer 0x00..0x17 number_integer 24..255 Unsigned integer (1 byte follow) 0x18 number_integer 256..65535 Unsigned integer (2 bytes follow) 0x19 number_integer 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A number_integer 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B number_unsigned 0..23 Integer 0x00..0x17 number_unsigned 24..255 Unsigned integer (1 byte follow) 0x18 number_unsigned 256..65535 Unsigned integer (2 bytes follow) 0x19 number_unsigned 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A number_unsigned 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B number_float any value representable by a float Single-Precision Float 0xFA number_float any value NOT representable by a float Double-Precision Float 0xFB string length: 0..23 UTF-8 string 0x60..0x77 string length: 23..255 UTF-8 string (1 byte follow) 0x78 string length: 256..65535 UTF-8 string (2 bytes follow) 0x79 string length: 65536..4294967295 UTF-8 string (4 bytes follow) 0x7A string length: 4294967296..18446744073709551615 UTF-8 string (8 bytes follow) 0x7B array size: 0..23 array 0x80..0x97 array size: 23..255 array (1 byte follow) 0x98 array size: 256..65535 array (2 bytes follow) 0x99 array size: 65536..4294967295 array (4 bytes follow) 0x9A array size: 4294967296..18446744073709551615 array (8 bytes follow) 0x9B object size: 0..23 map 0xA0..0xB7 object size: 23..255 map (1 byte follow) 0xB8 object size: 256..65535 map (2 bytes follow) 0xB9 object size: 65536..4294967295 map (4 bytes follow) 0xBA object size: 4294967296..18446744073709551615 map (8 bytes follow) 0xBB binary size: 0..23 byte string 0x40..0x57 binary size: 23..255 byte string (1 byte follow) 0x58 binary size: 256..65535 byte string (2 bytes follow) 0x59 binary size: 65536..4294967295 byte string (4 bytes follow) 0x5A binary size: 4294967296..18446744073709551615 byte string (8 bytes follow) 0x5B

Binary values with subtype are mapped to tagged values (0xD8..0xDB) depending on the subtype, followed by a byte string, see \"binary\" cells in the table above.

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a CBOR value.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the normal JSON serialization which serializes NaN or Infinity to null.

Unused CBOR types

The following CBOR types are not used in the conversion:

  • UTF-8 strings terminated by \"break\" (0x7F)
  • arrays terminated by \"break\" (0x9F)
  • maps terminated by \"break\" (0xBF)
  • byte strings terminated by \"break\" (0x5F)
  • date/time (0xC0..0xC1)
  • bignum (0xC2..0xC3)
  • decimal fraction (0xC4)
  • bigfloat (0xC5)
  • expected conversions (0xD5..0xD7)
  • simple values (0xE0..0xF3, 0xF8)
  • undefined (0xF7)
  • half-precision floats (0xF9)
  • break (0xFF)

Tagged items

Binary subtypes will be serialized as tagged items. See binary values for an example.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to CBOR\n    std::vector<std::uint8_t> v = json::to_cbor(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0xa2 0x67 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xf5 0x66 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"features/binary_formats/cbor/#deserialization","title":"Deserialization","text":"

The library maps CBOR types to JSON value types as follows:

CBOR type JSON value type first byte Integer number_unsigned 0x00..0x17 Unsigned integer number_unsigned 0x18 Unsigned integer number_unsigned 0x19 Unsigned integer number_unsigned 0x1A Unsigned integer number_unsigned 0x1B Negative integer number_integer 0x20..0x37 Negative integer number_integer 0x38 Negative integer number_integer 0x39 Negative integer number_integer 0x3A Negative integer number_integer 0x3B Byte string binary 0x40..0x57 Byte string binary 0x58 Byte string binary 0x59 Byte string binary 0x5A Byte string binary 0x5B UTF-8 string string 0x60..0x77 UTF-8 string string 0x78 UTF-8 string string 0x79 UTF-8 string string 0x7A UTF-8 string string 0x7B UTF-8 string string 0x7F array array 0x80..0x97 array array 0x98 array array 0x99 array array 0x9A array array 0x9B array array 0x9F map object 0xA0..0xB7 map object 0xB8 map object 0xB9 map object 0xBA map object 0xBB map object 0xBF False false 0xF4 True true 0xF5 Null null 0xF6 Half-Precision Float number_float 0xF9 Single-Precision Float number_float 0xFA Double-Precision Float number_float 0xFB

Incomplete mapping

The mapping is incomplete in the sense that not all CBOR types can be converted to a JSON value. The following CBOR types are not supported and will yield parse errors:

  • date/time (0xC0..0xC1)
  • bignum (0xC2..0xC3)
  • decimal fraction (0xC4)
  • bigfloat (0xC5)
  • expected conversions (0xD5..0xD7)
  • simple values (0xE0..0xF3, 0xF8)
  • undefined (0xF7)

Object keys

CBOR allows map keys of any type, whereas JSON only allows strings as keys in object values. Therefore, CBOR maps with keys other than UTF-8 strings are rejected.

Tagged items

Tagged items will throw a parse error by default. They can be ignored by passing cbor_tag_handler_t::ignore to function from_cbor. They can be stored by passing cbor_tag_handler_t::store to function from_cbor.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0xa2, 0x67, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xf5, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with CBOR\n    json j = json::from_cbor(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/messagepack/","title":"MessagePack","text":"

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.

References

  • MessagePack website
  • MessagePack specification
"},{"location":"features/binary_formats/messagepack/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to MessagePack types according to the MessagePack specification:

JSON value type value/range MessagePack type first byte null null nil 0xC0 boolean true true 0xC3 boolean false false 0xC2 number_integer -9223372036854775808..-2147483649 int64 0xD3 number_integer -2147483648..-32769 int32 0xD2 number_integer -32768..-129 int16 0xD1 number_integer -128..-33 int8 0xD0 number_integer -32..-1 negative fixint 0xE0..0xFF number_integer 0..127 positive fixint 0x00..0x7F number_integer 128..255 uint 8 0xCC number_integer 256..65535 uint 16 0xCD number_integer 65536..4294967295 uint 32 0xCE number_integer 4294967296..18446744073709551615 uint 64 0xCF number_unsigned 0..127 positive fixint 0x00..0x7F number_unsigned 128..255 uint 8 0xCC number_unsigned 256..65535 uint 16 0xCD number_unsigned 65536..4294967295 uint 32 0xCE number_unsigned 4294967296..18446744073709551615 uint 64 0xCF number_float any value representable by a float float 32 0xCA number_float any value NOT representable by a float float 64 0xCB string length: 0..31 fixstr 0xA0..0xBF string length: 32..255 str 8 0xD9 string length: 256..65535 str 16 0xDA string length: 65536..4294967295 str 32 0xDB array size: 0..15 fixarray 0x90..0x9F array size: 16..65535 array 16 0xDC array size: 65536..4294967295 array 32 0xDD object size: 0..15 fix map 0x80..0x8F object size: 16..65535 map 16 0xDE object size: 65536..4294967295 map 32 0xDF binary size: 0..255 bin 8 0xC4 binary size: 256..65535 bin 16 0xC5 binary size: 65536..4294967295 bin 32 0xC6

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a MessagePack value.

Any MessagePack output created by to_msgpack can be successfully parsed by from_msgpack.

Size constraints

The following values can not be converted to a MessagePack value:

  • strings with more than 4294967295 bytes
  • byte strings with more than 4294967295 bytes
  • arrays with more than 4294967295 elements
  • objects with more than 4294967295 elements

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly in contrast to the dump function which serializes NaN or Infinity to null.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to MessagePack\n    std::vector<std::uint8_t> v = json::to_msgpack(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x82 0xa7 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xc3 0xa6 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"features/binary_formats/messagepack/#deserialization","title":"Deserialization","text":"

The library maps MessagePack types to JSON value types as follows:

MessagePack type JSON value type first byte positive fixint number_unsigned 0x00..0x7F fixmap object 0x80..0x8F fixarray array 0x90..0x9F fixstr string 0xA0..0xBF nil null 0xC0 false false 0xC2 true true 0xC3 float 32 number_float 0xCA float 64 number_float 0xCB uint 8 number_unsigned 0xCC uint 16 number_unsigned 0xCD uint 32 number_unsigned 0xCE uint 64 number_unsigned 0xCF int 8 number_integer 0xD0 int 16 number_integer 0xD1 int 32 number_integer 0xD2 int 64 number_integer 0xD3 str 8 string 0xD9 str 16 string 0xDA str 32 string 0xDB array 16 array 0xDC array 32 array 0xDD map 16 object 0xDE map 32 object 0xDF bin 8 binary 0xC4 bin 16 binary 0xC5 bin 32 binary 0xC6 ext 8 binary 0xC7 ext 16 binary 0xC8 ext 32 binary 0xC9 fixext 1 binary 0xD4 fixext 2 binary 0xD5 fixext 4 binary 0xD6 fixext 8 binary 0xD7 fixext 16 binary 0xD8 negative fixint number_integer 0xE0-0xFF

Info

Any MessagePack output created by to_msgpack can be successfully parsed by from_msgpack.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x82, 0xa7, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xc3, 0xa6, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with MessagePack\n    json j = json::from_msgpack(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/ubjson/","title":"UBJSON","text":"

Universal Binary JSON (UBJSON) is a binary form directly imitating JSON, but requiring fewer bytes of data. It aims to achieve the generality of JSON, combined with being much easier to process than JSON.

References

  • UBJSON Website
"},{"location":"features/binary_formats/ubjson/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to UBJSON types according to the UBJSON specification:

JSON value type value/range UBJSON type marker null null null Z boolean true true T boolean false false F number_integer -9223372036854775808..-2147483649 int64 L number_integer -2147483648..-32769 int32 l number_integer -32768..-129 int16 I number_integer -128..127 int8 i number_integer 128..255 uint8 U number_integer 256..32767 int16 I number_integer 32768..2147483647 int32 l number_integer 2147483648..9223372036854775807 int64 L number_unsigned 0..127 int8 i number_unsigned 128..255 uint8 U number_unsigned 256..32767 int16 I number_unsigned 32768..2147483647 int32 l number_unsigned 2147483648..9223372036854775807 int64 L number_unsigned 2147483649..18446744073709551615 high-precision H number_float any value float64 D string with shortest length indicator string S array see notes on optimized format array [ object see notes on optimized format map {

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a UBJSON value.

Any UBJSON output created by to_ubjson can be successfully parsed by from_ubjson.

Size constraints

The following values can not be converted to a UBJSON value:

  • strings with more than 9223372036854775807 bytes (theoretical)

Unused UBJSON markers

The following markers are not used in the conversion:

  • Z: no-op values are not created.
  • C: single-byte strings are serialized with S markers.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.

Optimized formats

The optimized formats for containers are supported: Parameter use_size adds size information to the beginning of a container and removes the closing marker. Parameter use_type further checks whether all elements of a container have the same type and adds the type marker to the beginning of the container. The use_type parameter must only be used together with use_size = true.

Note that use_size = true alone may result in larger representations - the benefit of this parameter is that the receiving side is immediately informed on the number of elements of the container.

Binary values

If the JSON data contains the binary type, the value stored is a list of integers, as suggested by the UBJSON documentation. In particular, this means that serialization and the deserialization of a JSON containing binary values into UBJSON and back will result in a different JSON object.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print UBJSON's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to UBJSON\n    std::vector<std::uint8_t> v = json::to_ubjson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to UBJSON using default representation\n    std::vector<std::uint8_t> v_array = json::to_ubjson(array);\n    // serialize it to UBJSON using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_ubjson(array, true);\n    // serialize it to UBJSON using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_ubjson(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"features/binary_formats/ubjson/#deserialization","title":"Deserialization","text":"

The library maps UBJSON types to JSON value types as follows:

UBJSON type JSON value type marker no-op no value, next value is read N null null Z false false F true true T float32 number_float d float64 number_float D uint8 number_unsigned U int8 number_integer i int16 number_integer I int32 number_integer l int64 number_integer L string string S char string C array array (optimized values are supported) [ object object (optimized values are supported) {

Complete mapping

The mapping is complete in the sense that any UBJSON value can be converted to a JSON value.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with UBJSON\n    json j = json::from_ubjson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/element_access/","title":"Element Access","text":"

There are many ways elements in a JSON value can be accessed:

  • unchecked access via operator[]
  • checked access via at
  • access with default value via value
  • iterators
  • JSON pointers
"},{"location":"features/element_access/checked_access/","title":"Checked access: at","text":""},{"location":"features/element_access/checked_access/#overview","title":"Overview","text":"

The at member function performs checked access; that is, it returns a reference to the desired value if it exists and throws a basic_json::out_of_range exception otherwise.

Read access

Consider the following JSON value:

{\n    \"name\": \"Mary Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"name\": \"Mary Smith\", \"age\": 42, \"hobbies\": [\"hiking\", \"reading\"]} j.at(\"name\") \"Mary Smith\" j.at(\"age\") 42 j.at(\"hobbies\") [\"hiking\", \"reading\"] j.at(\"hobbies\").at(0) \"hiking\" j.at(\"hobbies\").at(1) \"reading\"

The return value is a reference, so it can be modified by the original value.

Write access
j.at(\"name\") = \"John Smith\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

When accessing an invalid index (i.e., an index greater than or equal to the array size) or the passed object key is non-existing, an exception is thrown.

Accessing via invalid index or missing key
j.at(\"hobbies\").at(3) = \"cooking\";\n

This code produces the following exception:

[json.exception.out_of_range.401] array index 3 is out of range\n

When you extended diagnostic messages are enabled by defining JSON_DIAGNOSTICS, the exception further gives information where the key or index is missing or out of range.

[json.exception.out_of_range.401] (/hobbies) array index 3 is out of range\n
"},{"location":"features/element_access/checked_access/#notes","title":"Notes","text":"

Exceptions

  • at can only be used with objects (with a string argument) or with arrays (with a numeric argument). For other types, a basic_json::type_error is thrown.
  • basic_json::out_of_range exception exceptions are thrown if the provided key is not found in an object or the provided index is invalid.
"},{"location":"features/element_access/checked_access/#summary","title":"Summary","text":"scenario non-const value const value access to existing object key reference to existing value is returned const reference to existing value is returned access to valid array index reference to existing value is returned const reference to existing value is returned access to non-existing object key basic_json::out_of_range exception is thrown basic_json::out_of_range exception is thrown access to invalid array index basic_json::out_of_range exception is thrown basic_json::out_of_range exception is thrown"},{"location":"features/element_access/default_value/","title":"Access with default value: value","text":""},{"location":"features/element_access/default_value/#overview","title":"Overview","text":"

In many situations such as configuration files, missing values are not exceptional, but may be treated as if a default value was present.

Example

Consider the following JSON value:

{\n    \"logOutput\": \"result.log\",\n    \"append\": true\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"logOutput\": \"result.log\", \"append\": true} j.value(\"logOutput\", \"logfile.log\") \"result.log\" j.value(\"append\", true) true j.value(\"append\", false) true j.value(\"logLevel\", \"verbose\") \"verbose\""},{"location":"features/element_access/default_value/#note","title":"Note","text":"

Exceptions

  • value can only be used with objects. For other types, a basic_json::type_error is thrown.
"},{"location":"features/element_access/unchecked_access/","title":"Unchecked access: operator[]","text":""},{"location":"features/element_access/unchecked_access/#overview","title":"Overview","text":"

Elements in a JSON object and a JSON array can be accessed via operator[] similar to a std::map and a std::vector, respectively.

Read access

Consider the following JSON value:

{\n    \"name\": \"Mary Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"name\": \"Mary Smith\", \"age\": 42, \"hobbies\": [\"hiking\", \"reading\"]} j[\"name\"] \"Mary Smith\" j[\"age\"] 42 j[\"hobbies\"] [\"hiking\", \"reading\"] j[\"hobbies\"][0] \"hiking\" j[\"hobbies\"][1] \"reading\"

The return value is a reference, so it can modify the original value. In case the passed object key is non-existing, a null value is inserted which can be immediately be overwritten.

Write access
j[\"name\"] = \"John Smith\";\nj[\"maidenName\"] = \"Jones\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"maidenName\": \"Jones\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

When accessing an invalid index (i.e., an index greater than or equal to the array size), the JSON array is resized such that the passed index is the new maximal index. Intermediate values are filled with null.

Filling up arrays with null values
j[\"hobbies\"][0] = \"running\";\nj[\"hobbies\"][3] = \"cooking\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"maidenName\": \"Jones\",\n    \"age\": 42,\n    \"hobbies\": [\"running\", \"reading\", null, \"cooking\"]\n}\n
"},{"location":"features/element_access/unchecked_access/#notes","title":"Notes","text":"

Design rationale

The library behaves differently to std::vector and std::map:

  • std::vector::operator[] never inserts a new element.
  • std::map::operator[] is not available for const values.

The type json wraps all JSON value types. It would be impossible to remove operator[] for const objects. At the same time, inserting elements for non-const objects is really convenient as it avoids awkward insert calls. To this end, we decided to have an inserting non-const behavior for both arrays and objects.

Info

The access is unchecked. In case the passed object key does not exist or the passed array index is invalid, no exception is thrown.

Danger

  • It is undefined behavior to access a const object with a non-existing key.
  • It is undefined behavior to access a const array with an invalid index.
  • In debug mode, an assertion will fire in both cases. You can disable assertions by defining the preprocessor symbol NDEBUG or redefine the macro JSON_ASSERT(x). See the documentation on runtime assertions for more information.

Exceptions

operator[] can only be used with objects (with a string argument) or with arrays (with a numeric argument). For other types, a basic_json::type_error is thrown.

"},{"location":"features/element_access/unchecked_access/#summary","title":"Summary","text":"scenario non-const value const value access to existing object key reference to existing value is returned const reference to existing value is returned access to valid array index reference to existing value is returned const reference to existing value is returned access to non-existing object key reference to newly inserted null value is returned undefined behavior; runtime assertion in debug mode access to invalid array index reference to newly inserted null value is returned; any index between previous maximal index and passed index are filled with null undefined behavior; runtime assertion in debug mode"},{"location":"features/parsing/","title":"Parsing","text":"

Note

This page is under construction.

"},{"location":"features/parsing/#input","title":"Input","text":""},{"location":"features/parsing/#sax-vs-dom-parsing","title":"SAX vs. DOM parsing","text":""},{"location":"features/parsing/#exceptions","title":"Exceptions","text":"

See parsing and exceptions.

"},{"location":"features/parsing/json_lines/","title":"JSON Lines","text":"

The JSON Lines format is a text format of newline-delimited JSON. In particular:

  1. The input must be UTF-8 encoded.
  2. Every line must be a valid JSON value.
  3. The line separator must be \\n. As \\r is silently ignored, \\r\\n is also supported.
  4. The final character may be \\n, but is not required to be one.

JSON Text example

{\"name\": \"Gilbert\", \"wins\": [[\"straight\", \"7\u2663\"], [\"one pair\", \"10\u2665\"]]}\n{\"name\": \"Alexa\", \"wins\": [[\"two pair\", \"4\u2660\"], [\"two pair\", \"9\u2660\"]]}\n{\"name\": \"May\", \"wins\": []}\n{\"name\": \"Deloise\", \"wins\": [[\"three of a kind\", \"5\u2663\"]]}\n

JSON Lines input with more than one value is treated as invalid JSON by the parse or accept functions. To process it line by line, functions like std::getline can be used:

Example: Parse JSON Text input line by line

The example below demonstrates how JSON Lines can be processed.

#include <sstream>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // JSON Lines (see https://jsonlines.org)\n    std::stringstream input;\n    input << R\"({\"name\": \"Gilbert\", \"wins\": [[\"straight\", \"7\u2663\"], [\"one pair\", \"10\u2665\"]]}\n{\"name\": \"Alexa\", \"wins\": [[\"two pair\", \"4\u2660\"], [\"two pair\", \"9\u2660\"]]}\n{\"name\": \"May\", \"wins\": []}\n{\"name\": \"Deloise\", \"wins\": [[\"three of a kind\", \"5\u2663\"]]}\n)\";\n\n    std::string line;\n    while (std::getline(input, line))\n    {\n        std::cout << json::parse(line) << std::endl;\n    }\n}\n

Output:

{\"name\":\"Gilbert\",\"wins\":[[\"straight\",\"7\u2663\"],[\"one pair\",\"10\u2665\"]]}\n{\"name\":\"Alexa\",\"wins\":[[\"two pair\",\"4\u2660\"],[\"two pair\",\"9\u2660\"]]}\n{\"name\":\"May\",\"wins\":[]}\n{\"name\":\"Deloise\",\"wins\":[[\"three of a kind\",\"5\u2663\"]]}\n

Note

Using operator>> like

json j;\nwhile (input >> j)\n{\n    std::cout << j << std::endl;\n}\n

with a JSON Lines input does not work, because the parser will try to parse one value after the last one.

"},{"location":"features/parsing/parse_exceptions/","title":"Parsing and Exceptions","text":"

When the input is not valid JSON, an exception of type parse_error is thrown. This exception contains the position in the input where the error occurred, together with a diagnostic message and the last read input token. The exceptions page contains a list of examples for parse error exceptions. In case you process untrusted input, always enclose your code with a try/catch block, like

json j;\ntry\n{\n    j = json::parse(my_input);\n}\ncatch (json::parse_error& ex)\n{\n    std::cerr << \"parse error at byte \" << ex.byte << std::endl;\n}\n

In case exceptions are undesired or not supported by the environment, there are different ways to proceed:

"},{"location":"features/parsing/parse_exceptions/#switch-off-exceptions","title":"Switch off exceptions","text":"

The parse() function accepts a bool parameter allow_exceptions which controls whether an exception is thrown when a parse error occurs (true, default) or whether a discarded value should be returned (false).

json j = json::parse(my_input, nullptr, false);\nif (j.is_discarded())\n{\n    std::cerr << \"parse error\" << std::endl;\n}\n

Note there is no diagnostic information available in this scenario.

"},{"location":"features/parsing/parse_exceptions/#use-accept-function","title":"Use accept() function","text":"

Alternatively, function accept() can be used which does not return a json value, but a bool indicating whether the input is valid JSON.

if (!json::accept(my_input))\n{\n    std::cerr << \"parse error\" << std::endl;\n}\n

Again, there is no diagnostic information available.

"},{"location":"features/parsing/parse_exceptions/#user-defined-sax-interface","title":"User-defined SAX interface","text":"

Finally, you can implement the SAX interface and decide what should happen in case of a parse error.

This function has the following interface:

bool parse_error(std::size_t position,\n                 const std::string& last_token,\n                 const json::exception& ex);\n

The return value indicates whether the parsing should continue, so the function should usually return false.

Example
#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nclass sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json>\n{\n  public:\n    sax_no_exception(json& j)\n      : nlohmann::detail::json_sax_dom_parser<json>(j, false)\n    {}\n\n    bool parse_error(std::size_t position,\n                     const std::string& last_token,\n                     const json::exception& ex)\n    {\n        std::cerr << \"parse error at input byte \" << position << \"\\n\"\n                  << ex.what() << \"\\n\"\n                  << \"last read: \\\"\" << last_token << \"\\\"\"\n                  << std::endl;\n        return false;\n    }\n};\n\nint main()\n{\n    std::string myinput = \"[1,2,3,]\";\n\n    json result;\n    sax_no_exception sax(result);\n\n    bool parse_result = json::sax_parse(myinput, &sax);\n    if (!parse_result)\n    {\n        std::cerr << \"parsing unsuccessful!\" << std::endl;\n    }\n\n    std::cout << \"parsed value: \" << result << std::endl;\n}\n

Output:

parse error at input byte 8\n[json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nlast read: \"3,]\"\nparsing unsuccessful!\nparsed value: [1,2,3]\n
"},{"location":"features/parsing/parser_callbacks/","title":"Parser Callbacks","text":""},{"location":"features/parsing/parser_callbacks/#overview","title":"Overview","text":"

With a parser callback function, the result of parsing a JSON text can be influenced. When passed to parse, it is called on certain events (passed as parse_event_t via parameter event) with a set recursion depth depth and context JSON value parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.

The type of the callback function is:

template<typename BasicJsonType>\nusing parser_callback_t =\n    std::function<bool(int depth, parse_event_t event, BasicJsonType& parsed)>;\n
"},{"location":"features/parsing/parser_callbacks/#callback-event-types","title":"Callback event types","text":"

We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters depth, event, and parsed.

parameter event description parameter depth parameter parsed parse_event_t::object_start the parser read { and started to process a JSON object depth of the parent of the JSON object a JSON value with type discarded parse_event_t::key the parser read a key of a value in an object depth of the currently parsed JSON object a JSON string containing the key parse_event_t::object_end the parser read } and finished processing a JSON object depth of the parent of the JSON object the parsed JSON object parse_event_t::array_start the parser read [ and started to process a JSON array depth of the parent of the JSON array a JSON value with type discarded parse_event_t::array_end the parser read ] and finished processing a JSON array depth of the parent of the JSON array the parsed JSON array parse_event_t::value the parser finished reading a JSON value depth of the value the parsed JSON value Example

When parsing the following JSON text,

{\n    \"name\": \"Berlin\",\n    \"location\": [\n        52.519444,\n        13.406667\n    ]\n}\n

these calls are made to the callback function:

event depth parsed object_start 0 discarded key 1 \"name\" value 1 \"Berlin\" key 1 \"location\" array_start 1 discarded value 2 52.519444 value 2 13.406667 array_end 1 [52.519444,13.406667] object_end 0 {\"location\":[52.519444,13.406667],\"name\":\"Berlin\"}"},{"location":"features/parsing/parser_callbacks/#return-value","title":"Return value","text":"

Discarding a value (i.e., returning false) has different effects depending on the context in which the function was called:

  • Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.
  • In case a value outside a structured type is skipped, it is replaced with null. This case happens if the top-level element is skipped.
Example

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
"},{"location":"features/parsing/sax_interface/","title":"SAX Interface","text":"

The library uses a SAX-like interface with the following functions:

// called when null is parsed\nbool null();\n\n// called when a boolean is parsed; value is passed\nbool boolean(bool val);\n\n// called when a signed or unsigned integer number is parsed; value is passed\nbool number_integer(number_integer_t val);\nbool number_unsigned(number_unsigned_t val);\n\n// called when a floating-point number is parsed; value and original string is passed\nbool number_float(number_float_t val, const string_t& s);\n\n// called when a string is parsed; value is passed and can be safely moved away\nbool string(string_t& val);\n// called when a binary value is parsed; value is passed and can be safely moved away\nbool binary(binary& val);\n\n// called when an object or array begins or ends, resp. The number of elements is passed (or -1 if not known)\nbool start_object(std::size_t elements);\nbool end_object();\nbool start_array(std::size_t elements);\nbool end_array();\n// called when an object key is parsed; value is passed and can be safely moved away\nbool key(string_t& val);\n\n// called when a parse error occurs; byte position, the last token, and an exception is passed\nbool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex);\n

The return value of each function determines whether parsing should proceed.

To implement your own SAX handler, proceed as follows:

  1. Implement the SAX interface in a class. You can use class nlohmann::json_sax<json> as base class, but you can also use any class where the functions described above are implemented and public.
  2. Create an object of your SAX interface class, e.g. my_sax.
  3. Call bool json::sax_parse(input, &my_sax); where the first parameter can be any input like a string or an input stream and the second parameter is a pointer to your SAX interface.

Note the sax_parse function only returns a bool indicating the result of the last executed SAX event. It does not return json value - it is up to you to decide what to do with the SAX events. Furthermore, no exceptions are thrown in case of a parse error - it is up to you what to do with the exception object passed to your parse_error implementation. Internally, the SAX interface is used for the DOM parser (class json_sax_dom_parser) as well as the acceptor (json_sax_acceptor), see file json_sax.hpp.

"},{"location":"features/parsing/sax_interface/#see-also","title":"See also","text":"
  • json_sax - documentation of the SAX interface
  • sax_parse - SAX parser
"},{"location":"features/types/","title":"Types","text":"

This page gives an overview how JSON values are stored and how this can be configured.

"},{"location":"features/types/#overview","title":"Overview","text":"

By default, JSON values are stored as follows:

JSON type C++ type object std::map<std::string, basic_json> array std::vector<basic_json> null std::nullptr_t string std::string boolean bool number std::int64_t, std::uint64_t, and double

Note there are three different types for numbers - when parsing JSON text, the best fitting type is chosen.

"},{"location":"features/types/#storage","title":"Storage","text":""},{"location":"features/types/#template-arguments","title":"Template arguments","text":"

The data types to store a JSON value are derived from the template arguments passed to class basic_json:

template<\n    template<typename U, typename V, typename... Args> class ObjectType = std::map,\n    template<typename U, typename... Args> class ArrayType = std::vector,\n    class StringType = std::string,\n    class BooleanType = bool,\n    class NumberIntegerType = std::int64_t,\n    class NumberUnsignedType = std::uint64_t,\n    class NumberFloatType = double,\n    template<typename U> class AllocatorType = std::allocator,\n    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer,\n    class BinaryType = std::vector<std::uint8_t>\n>\nclass basic_json;\n

Type json is an alias for basic_json<> and uses the default types.

From the template arguments, the following types are derived:

using object_comparator_t = std::less<>;\nusing object_t = ObjectType<StringType, basic_json, object_comparator_t,\n                   AllocatorType<std::pair<const StringType, basic_json>>>;\n\nusing array_t = ArrayType<basic_json, AllocatorType<basic_json>>;\n\nusing string_t = StringType;\n\nusing boolean_t = BooleanType;\n\nusing number_integer_t = NumberIntegerType;\nusing number_unsigned_t = NumberUnsignedType;\nusing number_float_t = NumberFloatType;\n\nusing binary_t = nlohmann::byte_container_with_subtype<BinaryType>;\n
"},{"location":"features/types/#objects","title":"Objects","text":"

RFC 8259 describes JSON objects as follows:

An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.

"},{"location":"features/types/#default-type","title":"Default type","text":"

With the default values for ObjectType (std::map), StringType (std::string), and AllocatorType (std::allocator), the default value for object_t is:

std::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n
"},{"location":"features/types/#behavior","title":"Behavior","text":"

The choice of object_t influences the behavior of the JSON class. With the default type, objects have the following behavior:

  • When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.
  • When the names within an object are not unique, it is unspecified which one of the values for a given key will be chosen. For instance, {\"key\": 2, \"key\": 1} could be equal to either {\"key\": 1} or {\"key\": 2}.
  • Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see dump) in this order. For instance, both {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be stored and serialized as {\"a\": 2, \"b\": 1}.
  • When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be treated as equal.
"},{"location":"features/types/#key-order","title":"Key order","text":"

The order name/value pairs are added to the object is not preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as std::map with std::less is used by default. Please note this behavior conforms to RFC 8259, because any order implements the specified \"unordered\" nature of JSON objects.

"},{"location":"features/types/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the object's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON object.

"},{"location":"features/types/#storage_1","title":"Storage","text":"

Objects are stored as pointers in a basic_json type. That is, for any access to object values, a pointer of type object_t* must be dereferenced.

"},{"location":"features/types/#arrays","title":"Arrays","text":"

RFC 8259 describes JSON arrays as follows:

An array is an ordered sequence of zero or more values.

"},{"location":"features/types/#default-type_1","title":"Default type","text":"

With the default values for ArrayType (std::vector) and AllocatorType (std::allocator), the default value for array_t is:

std::vector<\n  basic_json, // value_type\n  std::allocator<basic_json> // allocator_type\n>\n
"},{"location":"features/types/#limits_1","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON array.

"},{"location":"features/types/#storage_2","title":"Storage","text":"

Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of type array_t* must be dereferenced.

"},{"location":"features/types/#strings","title":"Strings","text":"

RFC 8259 describes JSON strings as follows:

A string is a sequence of zero or more Unicode characters.

Unicode values are split by the JSON class into byte-sized characters during deserialization.

"},{"location":"features/types/#default-type_2","title":"Default type","text":"

With the default values for StringType (std::string), the default value for string_t is std::string.

"},{"location":"features/types/#encoding","title":"Encoding","text":"

Strings are stored in UTF-8 encoding. Therefore, functions like std::string::size() or std::string::length() return the number of bytes in the string rather than the number of characters or glyphs.

"},{"location":"features/types/#string-comparison","title":"String comparison","text":"

RFC 8259 states:

Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that \"a\\\\b\" and \"a\\u005Cb\" are not equal.

This implementation is interoperable as it does compare strings code unit by code unit.

"},{"location":"features/types/#storage_3","title":"Storage","text":"

String values are stored as pointers in a basic_json type. That is, for any access to string values, a pointer of type string_t* must be dereferenced.

"},{"location":"features/types/#booleans","title":"Booleans","text":"

RFC 8259 implicitly describes a boolean as a type which differentiates the two literals true and false.

"},{"location":"features/types/#default-type_3","title":"Default type","text":"

With the default values for BooleanType (bool), the default value for boolean_t is bool.

"},{"location":"features/types/#storage_4","title":"Storage","text":"

Boolean values are stored directly inside a basic_json type.

"},{"location":"features/types/#numbers","title":"Numbers","text":"

See the number handling article for a detailed discussion on how numbers are handled by this library.

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t, and number_float_t are used.

"},{"location":"features/types/#default-types","title":"Default types","text":"

With the default values for NumberIntegerType (std::int64_t), the default value for number_integer_t is std::int64_t. With the default values for NumberUnsignedType (std::uint64_t), the default value for number_unsigned_t is std::uint64_t. With the default values for NumberFloatType (double), the default value for number_float_t is double.

"},{"location":"features/types/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"features/types/#limits_2","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 9223372036854775807 (INT64_MAX) and the minimal integer number that can be stored is -9223372036854775808 (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_unsigned_t or number_float_t.

When the default type is used, the maximal unsigned integer number that can be stored is 18446744073709551615 (UINT64_MAX) and the minimal integer number that can be stored is 0. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_integer_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.

RFC 8259 states:

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision.

This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than -1.79769313486232e+308 and values greater than 1.79769313486232e+308 will be stored as NaN internally and be serialized to null.

"},{"location":"features/types/#storage_5","title":"Storage","text":"

Integer number values, unsigned integer number values, and floating-point number values are stored directly inside a basic_json type.

"},{"location":"features/types/number_handling/","title":"Number Handling","text":"

This document describes how the library is handling numbers.

"},{"location":"features/types/number_handling/#background","title":"Background","text":"

This section briefly summarizes how the JSON specification describes how numbers should be handled.

"},{"location":"features/types/number_handling/#json-number-syntax","title":"JSON number syntax","text":"

JSON defines the syntax of numbers as follows:

RFC 8259, Section 6

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed.

A fraction part is a decimal point followed by one or more digits.

An exponent part begins with the letter E in uppercase or lowercase, which may be followed by a plus or minus sign. The E and optional sign are followed by one or more digits.

The following railroad diagram from json.org visualizes the number syntax:

"},{"location":"features/types/number_handling/#number-interoperability","title":"Number interoperability","text":"

On number interoperability, the following remarks are made:

RFC 8259, Section 6

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754 binary64 (double precision) numbers [IEEE754] is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision. A JSON number such as 1E400 or 3.141592653589793238462643383279 may indicate potential interoperability problems, since it suggests that the software that created it expects receiving software to have greater capabilities for numeric magnitude and precision than is widely available.

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

"},{"location":"features/types/number_handling/#library-implementation","title":"Library implementation","text":"

This section describes how the above number specification is implemented by this library.

"},{"location":"features/types/number_handling/#number-storage","title":"Number storage","text":"

In the default json type, numbers are stored as std::uint64_t, std::int64_t, and double, respectively. Thereby, std::uint64_t and std::int64_t are used only if they can store the number without loss of precision. If this is impossible (e.g., if the number is too large), the number is stored as double.

Notes

  • Numbers with a decimal digit or scientific notation are always stored as double.
  • The number types can be changed, see Template number types.
  • As of version 3.9.1, the conversion is realized by std::strtoull, std::strtoll, and std::strtod, respectively.

Examples

  • Integer -12345678912345789123456789 is smaller than INT64_MIN and will be stored as floating-point number -1.2345678912345788e+25.
  • Integer 1E3 will be stored as floating-point number 1000.0.
"},{"location":"features/types/number_handling/#number-limits","title":"Number limits","text":"
  • Any 64-bit signed or unsigned integer can be stored without loss of precision.
  • Numbers exceeding the limits of double (i.e., numbers that after conversion via std::strtod are not satisfying std::isfinite such as 1E400) will throw exception json.exception.out_of_range.406 during parsing.
  • Floating-point numbers are rounded to the next number representable as double. For instance 3.141592653589793238462643383279 is stored as 0x400921fb54442d18. This is the same behavior as the code double x = 3.141592653589793238462643383279;.

Interoperability

  • The library interoperable with respect to the specification, because its supported range [-2^{63}, 2^{64}-1] is larger than the described range [-2^{53}+1, 2^{53}-1].
  • All integers outside the range [-2^{63}, 2^{64}-1], as well as floating-point numbers are stored as double. This also concurs with the specification above.
"},{"location":"features/types/number_handling/#zeros","title":"Zeros","text":"

The JSON number grammar allows for different ways to express zero, and this library will store zeros differently:

Literal Stored value and type Serialization 0 std::uint64_t(0) 0 -0 std::int64_t(0) 0 0.0 double(0.0) 0.0 -0.0 double(-0.0) -0.0 0E0 double(0.0) 0.0 -0E0 double(-0.0) -0.0

That is, -0 is stored as a signed integer, but the serialization does not reproduce the -.

"},{"location":"features/types/number_handling/#number-serialization","title":"Number serialization","text":"
  • Integer numbers are serialized as is; that is, no scientific notation is used.
  • Floating-point numbers are serialized as specified by the %g printf modifier with std::numeric_limits<double>::max_digits10 significant digits. The rationale is to use the shortest representation while still allow round-tripping.

Notes regarding precision of floating-point numbers

As described above, floating-point numbers are rounded to the nearest double and serialized with the shortest representation to allow round-tripping. This can yield confusing examples:

  • The serialization can have fewer decimal places than the input: 2555.5599999999999 will be serialized as 2555.56. The reverse can also be true.
  • The serialization can be in scientific notation even if the input is not: 0.0000972439793401814 will be serialized as 9.72439793401814e-05. The reverse can also be true: 12345E-5 will be serialized as 0.12345.
  • Conversions from float to double can also introduce rounding errors:
    float f = 0.3;\njson j = f;\nstd::cout << j << '\\n';\n
    yields 0.30000001192092896.

All examples here can be reproduced by passing the original double value to

std::printf(\"%.*g\\n\", std::numeric_limits<double>::max_digits10, double_value);\n
"},{"location":"features/types/number_handling/#nan-handling","title":"NaN handling","text":"

NaN (not-a-number) cannot be expressed with the number syntax described above and are in fact explicitly excluded:

RFC 8259, Section 6

Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

That is, there is no way to parse a NaN value. However, NaN values can be stored in a JSON value by assignment.

This library serializes NaN values as null. This corresponds to the behavior of JavaScript's JSON.stringify function.

Example

The following example shows how a NaN value is stored in a json value.

int main()\n{\n    double val = std::numeric_limits<double>::quiet_NaN();\n    std::cout << \"val=\" << val << std::endl;\n    json j = val;\n    std::cout << \"j=\" << j.dump() << std::endl;\n    val = j;\n    std::cout << \"val=\" << val << std::endl;\n}\n

output:

val=nan\nj=null\nval=nan\n
"},{"location":"features/types/number_handling/#number-comparison","title":"Number comparison","text":"

Floating-point inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default.

Alternative comparison functions

To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance

template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>\ninline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept\n{\n    return std::abs(a - b) <= epsilon;\n}\n
Or you can self-define an operator equal function like this:

bool my_equal(const_reference lhs, const_reference rhs)\n{\n    const auto lhs_type lhs.type();\n    const auto rhs_type rhs.type();\n    if (lhs_type == rhs_type)\n    {\n        switch(lhs_type)\n        {\n            // self_defined case\n            case value_t::number_float:\n                return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();\n\n            // other cases remain the same with the original\n            ...\n        }\n    }\n    ...\n}\n

(see #703 for more information.)

Note

NaN values never compare equal to themselves or to other NaN values. See #514.

"},{"location":"features/types/number_handling/#number-conversion","title":"Number conversion","text":"

Just like the C++ language itself, the get family of functions allows conversions between unsigned and signed integers, and between integers and floating-point values to integers. This behavior may be surprising.

Unconditional number conversions

double d = 42.3;                                   // non-integer double value 42.3\njson jd = d;                                       // stores double value 42.3\nstd::int64_t i = jd.template get<std::int64_t>();  // now i==42; no warning or error is produced\n

Note the last line with throw a json.exception.type_error.302 exception if jd is not a numerical type, for instance a string.

The rationale is twofold:

  1. JSON does not define a number type or precision (see above).
  2. C++ also allows to silently convert between number types.

Conditional number conversion

The code above can be solved by explicitly checking the nature of the value with members such as is_number_integer() or is_number_unsigned():

// check if jd is really integer-valued\nif (jd.is_number_integer())\n{\n    // if so, do the conversion and use i\n    std::int64_t i = jd.template get<std::int64_t>();\n    // ...\n}\nelse\n{\n    // otherwise, take appropriate action\n    // ...\n}\n

Note this approach also has the advantage that it can react on non-numerical JSON value types such as strings.

(Example taken from #777.)

"},{"location":"features/types/number_handling/#determine-number-types","title":"Determine number types","text":"

As the example in Number conversion shows, there are different functions to determine the type of the stored number:

  • is_number() returns true for any number type
  • is_number_integer() returns true for signed and unsigned integers
  • is_number_unsigned() returns true for unsigned integers only
  • is_number_float() returns true for floating-point numbers
  • type_name() returns \"number\" for any number type
  • type() returns a different enumerator of value_t for all number types
function unsigned integer signed integer floating-point string is_number() true true true false is_number_integer() true true false false is_number_unsigned() true false false false is_number_float() false false true false type_name() \"number\" \"number\" \"number\" \"string\" type() number_unsigned number_integer number_float string"},{"location":"features/types/number_handling/#template-number-types","title":"Template number types","text":"

The number types can be changed with template parameters.

position number type default type possible values 5 signed integers std::int64_t std::int32_t, std::int16_t, etc. 6 unsigned integers std::uint64_t std::uint32_t, std::uint16_t, etc. 7 floating-point double float, long double

Constraints on number types

  • The type for signed integers must be convertible from long long. The type for floating-point numbers is used in case of overflow.
  • The type for unsigned integers must be convertible from unsigned long long. The type for floating-point numbers is used in case of overflow.
  • The types for signed and unsigned integers must be distinct, see #2573.
  • Only double, float, and long double are supported for floating-point numbers.

Example

A basic_json type that uses long double as floating-point type.

using json_ld = nlohmann::basic_json<std::map, std::vector, std::string, bool,\n                                     std::int64_t, std::uint64_t, long double>;\n

Note values should then be parsed with json_ld::parse rather than json::parse as the latter would parse floating-point values to double before then converting them to long double.

"},{"location":"home/code_of_conduct/","title":"Contributor Covenant Code of Conduct","text":""},{"location":"home/code_of_conduct/#our-pledge","title":"Our Pledge","text":"

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

"},{"location":"home/code_of_conduct/#our-standards","title":"Our Standards","text":"

Examples of behavior that contributes to creating a positive environment include:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

  • The use of sexualized language or imagery and unwelcome sexual attention or advances
  • Trolling, insulting/derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others' private information, such as a physical or electronic address, without explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting
"},{"location":"home/code_of_conduct/#our-responsibilities","title":"Our Responsibilities","text":"

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

"},{"location":"home/code_of_conduct/#scope","title":"Scope","text":"

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

"},{"location":"home/code_of_conduct/#enforcement","title":"Enforcement","text":"

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mail@nlohmann.me. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

"},{"location":"home/code_of_conduct/#attribution","title":"Attribution","text":"

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4

"},{"location":"home/design_goals/","title":"Design goals","text":"

There are myriads of JSON libraries out there, and each may even have its reason to exist. Our class had these design goals:

  • Intuitive syntax. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the examples below, and you'll know what I mean.

  • Trivial integration. Our whole code consists of a single header file json.hpp. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings.

  • Serious testing. Our class is heavily unit-tested and covers 100% of the code, including all exceptional behavior. Furthermore, we checked with Valgrind and the Clang Sanitizers that there are no memory leaks. Google OSS-Fuzz additionally runs fuzz tests against all parsers 24/7, effectively executing billions of tests so far. To maintain high quality, the project is following the Core Infrastructure Initiative (CII) best practices.

Other aspects were not so important to us:

  • Memory efficiency. Each JSON object has an overhead of one pointer (the maximal size of a union) and one enumeration element (1 byte). The default generalization uses the following C++ data types: std::string for strings, int64_t, uint64_t or double for numbers, std::map for objects, std::vector for arrays, and bool for Booleans. However, you can template the generalized class basic_json to your needs.

  • Speed. There are certainly faster JSON libraries out there. However, if your goal is to speed up your development by adding JSON support with a single header, then this library is the way to go. If you know how to use a std::vector or std::map, you are already set.

See the contribution guidelines for more information.

"},{"location":"home/exceptions/","title":"Exceptions","text":""},{"location":"home/exceptions/#overview","title":"Overview","text":""},{"location":"home/exceptions/#base-type","title":"Base type","text":"

All exceptions inherit from class json::exception (which in turn inherits from std::exception). It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as \"wildcard\" to catch exceptions.

"},{"location":"home/exceptions/#switch-off-exceptions","title":"Switch off exceptions","text":"

Exceptions are used widely within the library. They can, however, be switched off with either using the compiler flag -fno-exceptions or by defining the symbol JSON_NOEXCEPTION. In this case, exceptions are replaced by abort() calls. You can further control this behavior by defining JSON_THROW_USER (overriding throw), JSON_TRY_USER (overriding try), and JSON_CATCH_USER (overriding catch).

Note that JSON_THROW_USER should leave the current scope (e.g., by throwing or aborting), as continuing after it may yield undefined behavior.

Example

The code below switches off exceptions and creates a log entry with a detailed error message in case of errors.

#include <iostream>\n\n#define JSON_TRY_USER if(true)\n#define JSON_CATCH_USER(exception) if(false)\n#define JSON_THROW_USER(exception)                           \\\n    {std::clog << \"Error in \" << __FILE__ << \":\" << __LINE__ \\\n               << \" (function \" << __FUNCTION__ << \") - \"    \\\n               << (exception).what() << std::endl;           \\\n     std::abort();}\n\n#include <nlohmann/json.hpp>\n

Note the explanatory what() string of exceptions is not available for MSVC if exceptions are disabled, see #2824.

See documentation of JSON_TRY_USER, JSON_CATCH_USER and JSON_THROW_USER for more information.

"},{"location":"home/exceptions/#extended-diagnostic-messages","title":"Extended diagnostic messages","text":"

Exceptions in the library are thrown in the local context of the JSON value they are detected. This makes detailed diagnostics messages, and hence debugging, difficult.

Example
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] type must be number, but is string\n

This exception can be hard to debug if storing the value \"12\" and accessing it is further apart.

To create better diagnostics messages, each JSON value needs a pointer to its parent value such that a global context (i.e., a path from the root value to the value that lead to the exception) can be created. That global context is provided as JSON Pointer.

As this global context comes at the price of storing one additional pointer per JSON value and runtime overhead to maintain the parent relation, extended diagnostics are disabled by default. They can, however, be enabled by defining the preprocessor symbol JSON_DIAGNOSTICS to 1 before including json.hpp.

Example
#include <iostream>\n\n# define JSON_DIAGNOSTICS 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] (/address/housenumber) type must be number, but is string\n

Now the exception message contains a JSON Pointer /address/housenumber that indicates which value has the wrong type.

See documentation of JSON_DIAGNOSTICS for more information.

"},{"location":"home/exceptions/#parse-errors","title":"Parse errors","text":"

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.

Exceptions have ids 1xx.

Byte index

Member byte holds the byte index of the last read character in the input file.

For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).

Example

The following code shows how a parse_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // parsing input with a syntax error\n        json::parse(\"[1,2,3,]\");\n    }\n    catch (const json::parse_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << '\\n'\n                  << \"byte position of error: \" << e.byte << std::endl;\n    }\n}\n

Output:

message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nexception id: 101\nbyte position of error: 8\n
"},{"location":"home/exceptions/#jsonexceptionparse_error101","title":"json.exception.parse_error.101","text":"

This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.

Example message

Input ended prematurely:

[json.exception.parse_error.101] parse error at 2: unexpected end of input; expected string literal\n

No input:

[json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON\n

Control character was not escaped:

[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\\\; last read: '\"<U+0009>'\"\n

String was not closed:

[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: missing closing quote; last read: '\"'\n

Invalid number format:

[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E'\n

\\u was not be followed by four hex digits:

[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u01\"'\n

Invalid UTF-8 surrogate pair:

[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF; last read: '\"\\uD7FF\\uDC00'\"\n

Invalid UTF-8 byte:

[json.exception.parse_error.101] parse error at line 3, column 24: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"vous \\352t'\n

Tip

  • Make sure the input is correctly read. Try to write the input to standard output to check if, for instance, the input file was successfully opened.
  • Paste the input to a JSON validator like http://jsonlint.com or a tool like jq.
"},{"location":"home/exceptions/#jsonexceptionparse_error102","title":"json.exception.parse_error.102","text":"

JSON uses the \\uxxxx format to describe Unicode characters. Code points above 0xFFFF are split into two \\uxxxx entries (\"surrogate pairs\"). This error indicates that the surrogate pair is incomplete or contains an invalid code point.

Example message

parse error at 14: missing or wrong low surrogate\n

Note

This exception is not used any more. Instead json.exception.parse_error.101 with a more detailed description is used.

"},{"location":"home/exceptions/#jsonexceptionparse_error103","title":"json.exception.parse_error.103","text":"

Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.

Example message

parse error: code points above 0x10FFFF are invalid\n

Note

This exception is not used any more. Instead json.exception.parse_error.101 with a more detailed description is used.

"},{"location":"home/exceptions/#jsonexceptionparse_error104","title":"json.exception.parse_error.104","text":"

RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.

Example message

[json.exception.parse_error.104] parse error: JSON patch must be an array of objects\n
"},{"location":"home/exceptions/#jsonexceptionparse_error105","title":"json.exception.parse_error.105","text":"

An operation of a JSON Patch document must contain exactly one \"op\" member, whose value indicates the operation to perform. Its value must be one of \"add\", \"remove\", \"replace\", \"move\", \"copy\", or \"test\"; other values are errors.

Example message

[json.exception.parse_error.105] parse error: operation 'add' must have member 'value'\n
[json.exception.parse_error.105] parse error: operation 'copy' must have string member 'from'\n
[json.exception.parse_error.105] parse error: operation value 'foo' is invalid\n

"},{"location":"home/exceptions/#jsonexceptionparse_error106","title":"json.exception.parse_error.106","text":"

An array index in a JSON Pointer (RFC 6901) may be 0 or any number without a leading 0.

Example message

[json.exception.parse_error.106] parse error: array index '01' must not begin with '0'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error107","title":"json.exception.parse_error.107","text":"

A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a / character.

Example message

[json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error108","title":"json.exception.parse_error.108","text":"

In a JSON Pointer, only ~0 and ~1 are valid escape sequences.

Example message

[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error109","title":"json.exception.parse_error.109","text":"

A JSON Pointer array index must be a number.

Example messages

[json.exception.parse_error.109] parse error: array index 'one' is not a number\n
[json.exception.parse_error.109] parse error: array index '+1' is not a number\n

"},{"location":"home/exceptions/#jsonexceptionparse_error110","title":"json.exception.parse_error.110","text":"

When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.

Example message

[json.exception.parse_error.110] parse error at byte 5: syntax error while parsing CBOR string: unexpected end of input\n
[json.exception.parse_error.110] parse error at byte 2: syntax error while parsing UBJSON value: expected end of input; last byte: 0x5A\n

"},{"location":"home/exceptions/#jsonexceptionparse_error112","title":"json.exception.parse_error.112","text":"

An unexpected byte was read in a binary format or length information is invalid (BSON).

Example messages

[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing CBOR value: invalid byte: 0x1C\n
[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing MessagePack value: invalid byte: 0xC1\n
[json.exception.parse_error.112] parse error at byte 4: syntax error while parsing BJData size: expected '#' after type information; last byte: 0x02\n
[json.exception.parse_error.112] parse error at byte 4: syntax error while parsing UBJSON size: expected '#' after type information; last byte: 0x02\n
[json.exception.parse_error.112] parse error at byte 10: syntax error while parsing BSON string: string length must be at least 1, is -2147483648\n
[json.exception.parse_error.112] parse error at byte 15: syntax error while parsing BSON binary: byte array length cannot be negative, is -1\n

"},{"location":"home/exceptions/#jsonexceptionparse_error113","title":"json.exception.parse_error.113","text":"

While parsing a map key, a value that is not a string has been read.

Example messages

[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing CBOR string: expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0xFF\n
[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing MessagePack string: expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0xFF\n
[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing UBJSON char: byte after 'C' must be in range 0x00..0x7F; last byte: 0x82\n

"},{"location":"home/exceptions/#jsonexceptionparse_error114","title":"json.exception.parse_error.114","text":"

The parsing of the corresponding BSON record type is not implemented (yet).

Example message

[json.exception.parse_error.114] parse error at byte 5: Unsupported BSON record type 0xFF\n
"},{"location":"home/exceptions/#jsonexceptionparse_error115","title":"json.exception.parse_error.115","text":"

A UBJSON high-precision number could not be parsed.

Example message

[json.exception.parse_error.115] parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A\n
"},{"location":"home/exceptions/#iterator-errors","title":"Iterator errors","text":"

This exception is thrown if iterators passed to a library function do not match the expected semantics.

Exceptions have ids 2xx.

Example

The following code shows how an invalid_iterator exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling iterator::key() on non-object iterator\n        json j = \"string\";\n        json::iterator it = j.begin();\n        auto k = it.key();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.invalid_iterator.207] cannot use key() for non-object iterators\nexception id: 207\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator201","title":"json.exception.invalid_iterator.201","text":"

The iterators passed to constructor basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.

Example message

[json.exception.invalid_iterator.201] iterators are not compatible\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator202","title":"json.exception.invalid_iterator.202","text":"

In the erase or insert function, the passed iterator pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion.

Example messages

[json.exception.invalid_iterator.202] iterator does not fit current value\n
[json.exception.invalid_iterator.202] iterators first and last must point to objects\n

"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator203","title":"json.exception.invalid_iterator.203","text":"

Either iterator passed to function erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from.

Example message

[json.exception.invalid_iterator.203] iterators do not fit current value\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator204","title":"json.exception.invalid_iterator.204","text":"

When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (begin(), end()), because this is the only way the single stored value is expressed. All other ranges are invalid.

Example message

[json.exception.invalid_iterator.204] iterators out of range\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator205","title":"json.exception.invalid_iterator.205","text":"

When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the begin() iterator, because it is the only way to address the stored value. All other iterators are invalid.

Example message

[json.exception.invalid_iterator.205] iterator out of range\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator206","title":"json.exception.invalid_iterator.206","text":"

The iterators passed to constructor basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range.

Example message

[json.exception.invalid_iterator.206] cannot construct with iterators from null\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator207","title":"json.exception.invalid_iterator.207","text":"

The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key.

Example message

[json.exception.invalid_iterator.207] cannot use key() for non-object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator208","title":"json.exception.invalid_iterator.208","text":"

The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.208] cannot use operator[] for object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator209","title":"json.exception.invalid_iterator.209","text":"

The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.209] cannot use offsets with object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator210","title":"json.exception.invalid_iterator.210","text":"

The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.

Example message

[json.exception.invalid_iterator.210] iterators do not fit\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator211","title":"json.exception.invalid_iterator.211","text":"

The iterator range passed to the insert function must not be a subrange of the container to insert to.

Example message

[json.exception.invalid_iterator.211] passed iterators may not belong to container\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator212","title":"json.exception.invalid_iterator.212","text":"

When two iterators are compared, they must belong to the same container.

Example message

[json.exception.invalid_iterator.212] cannot compare iterators of different containers\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator213","title":"json.exception.invalid_iterator.213","text":"

The order of object iterators cannot be compared, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.213] cannot compare order of object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator214","title":"json.exception.invalid_iterator.214","text":"

Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to begin().

Example message

[json.exception.invalid_iterator.214] cannot get value\n
"},{"location":"home/exceptions/#type-errors","title":"Type errors","text":"

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

Exceptions have ids 3xx.

Example

The following code shows how a type_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling push_back() on a string value\n        json j = \"string\";\n        j.push_back(\"another string\");\n    }\n    catch (const json::type_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.type_error.308] cannot use push_back() with string\nexception id: 308\n
"},{"location":"home/exceptions/#jsonexceptiontype_error301","title":"json.exception.type_error.301","text":"

To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead.

Example message

[json.exception.type_error.301] cannot create object from initializer list\n
"},{"location":"home/exceptions/#jsonexceptiontype_error302","title":"json.exception.type_error.302","text":"

During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types.

Example messages

[json.exception.type_error.302] type must be object, but is null\n
[json.exception.type_error.302] type must be string, but is object\n

"},{"location":"home/exceptions/#jsonexceptiontype_error303","title":"json.exception.type_error.303","text":"

To retrieve a reference to a value stored in a basic_json object with get_ref, the type of the reference must match the value type. For instance, for a JSON array, the ReferenceType must be array_t &.

Example messages

[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is object\n
[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number\"\n

"},{"location":"home/exceptions/#jsonexceptiontype_error304","title":"json.exception.type_error.304","text":"

The at() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.304] cannot use at() with string\n
[json.exception.type_error.304] cannot use at() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error305","title":"json.exception.type_error.305","text":"

The operator[] member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.305] cannot use operator[] with a string argument with array\n
[json.exception.type_error.305] cannot use operator[] with a numeric argument with object\n

"},{"location":"home/exceptions/#jsonexceptiontype_error306","title":"json.exception.type_error.306","text":"

The value() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.306] cannot use value() with number\n
"},{"location":"home/exceptions/#jsonexceptiontype_error307","title":"json.exception.type_error.307","text":"

The erase() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.307] cannot use erase() with string\n
"},{"location":"home/exceptions/#jsonexceptiontype_error308","title":"json.exception.type_error.308","text":"

The push_back() and operator+= member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.308] cannot use push_back() with string\n
"},{"location":"home/exceptions/#jsonexceptiontype_error309","title":"json.exception.type_error.309","text":"

The insert() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.309] cannot use insert() with array\n
[json.exception.type_error.309] cannot use insert() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error310","title":"json.exception.type_error.310","text":"

The swap() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.310] cannot use swap() with number\n
"},{"location":"home/exceptions/#jsonexceptiontype_error311","title":"json.exception.type_error.311","text":"

The emplace() and emplace_back() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.311] cannot use emplace() with number\n
[json.exception.type_error.311] cannot use emplace_back() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error312","title":"json.exception.type_error.312","text":"

The update() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.312] cannot use update() with array\n
"},{"location":"home/exceptions/#jsonexceptiontype_error313","title":"json.exception.type_error.313","text":"

The unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well-defined.

Example message

[json.exception.type_error.313] invalid value to unflatten\n
"},{"location":"home/exceptions/#jsonexceptiontype_error314","title":"json.exception.type_error.314","text":"

The unflatten function only works for an object whose keys are JSON Pointers.

Example message

Calling unflatten() on an array [1,2,3]:

[json.exception.type_error.314] only objects can be unflattened\n
"},{"location":"home/exceptions/#jsonexceptiontype_error315","title":"json.exception.type_error.315","text":"

The unflatten() function only works for an object whose keys are JSON Pointers and whose values are primitive.

Example message

Calling unflatten() on an object {\"/1\", [1,2,3]}:

[json.exception.type_error.315] values in object must be primitive\n
"},{"location":"home/exceptions/#jsonexceptiontype_error316","title":"json.exception.type_error.316","text":"

The dump() function only works with UTF-8 encoded strings; that is, if you assign a std::string to a JSON value, make sure it is UTF-8 encoded.

Example message

Calling dump() on a JSON value containing an ISO 8859-1 encoded string:

[json.exception.type_error.316] invalid UTF-8 byte at index 15: 0x6F\n

Tip

  • Store the source file with UTF-8 encoding.
  • Pass an error handler as last parameter to the dump() function to avoid this exception:
    • json::error_handler_t::replace will replace invalid bytes sequences with U+FFFD
    • json::error_handler_t::ignore will silently ignore invalid byte sequences
"},{"location":"home/exceptions/#jsonexceptiontype_error317","title":"json.exception.type_error.317","text":"

The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw true or null JSON object cannot be serialized to BSON)

Example messages

Serializing null to BSON:

[json.exception.type_error.317] to serialize to BSON, top-level type must be object, but is null\n
Serializing [1,2,3] to BSON:
[json.exception.type_error.317] to serialize to BSON, top-level type must be object, but is array\n

Tip

Encapsulate the JSON value in an object. That is, instead of serializing true, serialize {\"value\": true}

"},{"location":"home/exceptions/#out-of-range","title":"Out of range","text":"

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

Exceptions have ids 4xx.

Example

The following code shows how an out_of_range exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for an invalid index\n        json j = {1, 2, 3, 4};\n        j.at(4) = 10;\n    }\n    catch (const json::out_of_range& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.401] array index 4 is out of range\nexception id: 401\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range401","title":"json.exception.out_of_range.401","text":"

The provided array index i is larger than size-1.

Example message

array index 3 is out of range\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range402","title":"json.exception.out_of_range.402","text":"

The special array index - in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it.

Example message

array index '-' (3) is out of range\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range403","title":"json.exception.out_of_range.403","text":"

The provided key was not found in the JSON object.

Example message

key 'foo' not found\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range404","title":"json.exception.out_of_range.404","text":"

A reference token in a JSON Pointer could not be resolved.

Example message

unresolved reference token 'foo'\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range405","title":"json.exception.out_of_range.405","text":"

The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.

Example message

JSON pointer has no parent\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range406","title":"json.exception.out_of_range.406","text":"

A parsed number could not be stored as without changing it to NaN or INF.

Example message

number overflow parsing '10E1000'\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range407","title":"json.exception.out_of_range.407","text":"

UBJSON and BSON only support integer numbers up to 9223372036854775807.

Example message

number overflow serializing '9223372036854775808'\n

Note

Since version 3.9.0, integer numbers beyond int64 are serialized as high-precision UBJSON numbers, and this exception does not further occur.

"},{"location":"home/exceptions/#jsonexceptionout_of_range408","title":"json.exception.out_of_range.408","text":"

The size (following #) of an UBJSON array or object exceeds the maximal capacity.

Example message

excessive array size: 8658170730974374167\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range409","title":"json.exception.out_of_range.409","text":"

Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string.

Example message

BSON key cannot contain code point U+0000 (at byte 2)\n
"},{"location":"home/exceptions/#further-exceptions","title":"Further exceptions","text":"

This exception is thrown in case of errors that cannot be classified with the other exception types.

Exceptions have ids 5xx.

Example

The following code shows how an other_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    try\n    {\n        // executing a failing JSON Patch operation\n        json value = R\"({\n            \"best_biscuit\": {\n                \"name\": \"Oreo\"\n            }\n        })\"_json;\n        json patch = R\"([{\n            \"op\": \"test\",\n            \"path\": \"/best_biscuit/name\",\n            \"value\": \"Choco Leibniz\"\n        }])\"_json;\n        value.patch(patch);\n    }\n    catch (const json::other_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/best_biscuit/name\",\"value\":\"Choco Leibniz\"}\nexception id: 501\n
"},{"location":"home/exceptions/#jsonexceptionother_error501","title":"json.exception.other_error.501","text":"

A JSON Patch operation 'test' failed. The unsuccessful operation is also printed.

Example message

Executing {\"op\":\"test\", \"path\":\"/baz\", \"value\":\"bar\"} on {\"baz\": \"qux\"}:

[json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/baz\",\"value\":\"bar\"}\n
"},{"location":"home/faq/","title":"Frequently Asked Questions (FAQ)","text":""},{"location":"home/faq/#known-bugs","title":"Known bugs","text":""},{"location":"home/faq/#brace-initialization-yields-arrays","title":"Brace initialization yields arrays","text":"

Question

Why does

json j{true};\n

and

json j(true);\n

yield different results ([true] vs. true)?

This is a known issue, and -- even worse -- the behavior differs between GCC and Clang. The \"culprit\" for this is the library's constructor overloads for initializer lists to allow syntax like

json array = {1, 2, 3, 4};\n

for arrays and

json object = {{\"one\", 1}, {\"two\", 2}}; \n

for objects.

Tip

To avoid any confusion and ensure portable code, do not use brace initialization with the types basic_json, json, or ordered_json unless you want to create an object or array as shown in the examples above.

"},{"location":"home/faq/#limitations","title":"Limitations","text":""},{"location":"home/faq/#relaxed-parsing","title":"Relaxed parsing","text":"

Question

Can you add an option to ignore trailing commas?

This library does not support any feature which would jeopardize interoperability.

"},{"location":"home/faq/#parse-errors-reading-non-ascii-characters","title":"Parse errors reading non-ASCII characters","text":"

Questions

  • Why is the parser complaining about a Chinese character?
  • Does the library support Unicode?
  • I get an exception [json.exception.parse_error.101] parse error at line 1, column 53: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"Test\u00e9$')\"

The library supports Unicode input as follows:

  • Only UTF-8 encoded input is supported which is the default encoding for JSON according to RFC 8259.
  • std::u16string and std::u32string can be parsed, assuming UTF-16 and UTF-32 encoding, respectively. These encodings are not supported when reading from files or other input containers.
  • Other encodings such as Latin-1 or ISO 8859-1 are not supported and will yield parse or serialization errors.
  • Unicode noncharacters will not be replaced by the library.
  • Invalid surrogates (e.g., incomplete pairs such as \\uDEAD) will yield parse errors.
  • The strings stored in the library are UTF-8 encoded. When using the default string type (std::string), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs.
  • When you store strings with different encodings in the library, calling dump() may throw an exception unless json::error_handler_t::replace or json::error_handler_t::ignore are used as error handlers.

In most cases, the parser is right to complain, because the input is not UTF-8 encoded. This is especially true for Microsoft Windows where Latin-1 or ISO 8859-1 is often the standard encoding.

"},{"location":"home/faq/#wide-string-handling","title":"Wide string handling","text":"

Question

Why are wide strings (e.g., std::wstring) dumped as arrays of numbers?

As described above, the library assumes UTF-8 as encoding. To store a wide string, you need to change the encoding.

Example

#include <codecvt> // codecvt_utf8\n#include <locale>  // wstring_convert\n\n// encoding function\nstd::string to_utf8(std::wstring& wide_string)\n{\n    static std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;\n    return utf8_conv.to_bytes(wide_string);\n}\n\njson j;\nstd::wstring ws = L\"\u8ecaB1234 \u3053\u3093\u306b\u3061\u306f\";\n\nj[\"original\"] = ws;\nj[\"encoded\"] = to_utf8(ws);\n\nstd::cout << j << std::endl;\n

The result is:

{\n  \"encoded\": \"\u8ecaB1234 \u3053\u3093\u306b\u3061\u306f\",\n  \"original\": [36554, 66, 49, 50, 51, 52, 32, 12371, 12435, 12395, 12385, 12399]\n}\n
"},{"location":"home/faq/#exceptions","title":"Exceptions","text":""},{"location":"home/faq/#parsing-without-exceptions","title":"Parsing without exceptions","text":"

Question

Is it possible to indicate a parse error without throwing an exception?

Yes, see Parsing and exceptions.

"},{"location":"home/faq/#key-name-in-exceptions","title":"Key name in exceptions","text":"

Question

Can I get the key of the object item that caused an exception?

Yes, you can. Please define the symbol JSON_DIAGNOSTICS to get extended diagnostics messages.

"},{"location":"home/faq/#serialization-issues","title":"Serialization issues","text":""},{"location":"home/faq/#number-precision","title":"Number precision","text":"

Question

  • It seems that precision is lost when serializing a double.
  • Can I change the precision for floating-point serialization?

The library uses std::numeric_limits<number_float_t>::digits10 (15 for IEEE doubles) digits for serialization. This value is sufficient to guarantee roundtripping. If one uses more than this number of digits of precision, then string -> value -> string is not guaranteed to round-trip.

cppreference.com

The value of std::numeric_limits<T>::digits10 is the number of base-10 digits that can be represented by the type T without change, that is, any number with this many significant decimal digits can be converted to a value of type T and back to decimal form, without change due to rounding or overflow.

Tip

The website https://float.exposed gives a good insight into the internal storage of floating-point numbers.

See this section on the library's number handling for more information.

"},{"location":"home/faq/#compilation-issues","title":"Compilation issues","text":""},{"location":"home/faq/#android-sdk","title":"Android SDK","text":"

Question

Why does the code not compile with Android SDK?

Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your Application.mk. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default.

APP_STL := c++_shared\nNDK_TOOLCHAIN_VERSION := clang3.6\nAPP_CPPFLAGS += -frtti -fexceptions\n

The code compiles successfully with Android NDK, Revision 9 - 11 (and possibly later) and CrystaX's Android NDK version 10.

"},{"location":"home/faq/#missing-stl-function","title":"Missing STL function","text":"

Questions

  • Why do I get a compilation error 'to_string' is not a member of 'std' (or similarly, for strtod or strtof)?
  • Why does the code not compile with MinGW or Android SDK?

This is not an issue with the code, but rather with the compiler itself. On Android, see above to build with a newer environment. For MinGW, please refer to this site and this discussion for information on how to fix this bug. For Android NDK using APP_STL := gnustl_static, please refer to this discussion.

"},{"location":"home/license/","title":"License","text":"

The class is licensed under the MIT License:

Copyright \u00a9 2013-2022 Niels Lohmann

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the MIT License (see above). Copyright \u00a9 2008-2009 Bj\u00f6rn Hoehrmann bjoern@hoehrmann.de

The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the MIT License (see above). Copyright \u00a9 2009 Florian Loitsch

The class contains a copy of Hedley from Evan Nemerson which is licensed as CC0-1.0.

"},{"location":"home/releases/","title":"Releases","text":""},{"location":"home/releases/#v373","title":"v3.7.3","text":"

Files

  • include.zip (274 KB)
  • include.zip.asc (1 KB)
  • json.hpp (791 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-17 SHA-256: 3b5d2b8f8282b80557091514d8ab97e27f9574336c804ee666fda673a9b59926 (json.hpp), 87b5884741427220d3a33df1363ae0e8b898099fbc59f1c451113f6732891014 (include.zip)

"},{"location":"home/releases/#summary","title":"Summary","text":"

This release fixes a bug introduced in release 3.7.2 which could yield quadratic complexity in destructor calls. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes","title":"Bug Fixes","text":"
  • Removed reserve() calls from the destructor which could lead to quadratic complexity. #1837 #1838
"},{"location":"home/releases/#deprecated-functions","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v372","title":"v3.7.2","text":"

Files

  • include.zip (274 KB)
  • include.zip.asc (1 KB)
  • json.hpp (791 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-10 SHA-256: 0a65fcbbe1b334d3f45c9498e5ee28c3f3b2428aea98557da4a3ff12f0f14ad6 (json.hpp), 67f69c9a93b7fa0612dc1b6273119d2c560317333581845f358aaa68bff8f087 (include.zip)

"},{"location":"home/releases/#summary_1","title":"Summary","text":"

Project bad_json_parsers tested how JSON parser libraries react on deeply nested inputs. It turns out that this library segfaulted at a certain nesting depth. This bug was fixed with this release. Now the parsing is only bounded by the available memory. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_1","title":"Bug Fixes","text":"
  • Fixed a bug that lead to stack overflow for deeply nested JSON values (objects, array) by changing the implementation of the destructor from a recursive to an iterative approach. #832, #1419, #1835
"},{"location":"home/releases/#further-changes","title":"Further Changes","text":"
  • Added WhiteStone Bolt. #1830
"},{"location":"home/releases/#deprecated-functions_1","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v371","title":"v3.7.1","text":"

Files

  • include.zip (273 KB)
  • include.zip.asc (1 KB)
  • json.hpp (789 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-06 SHA-256: b5ba7228f3c22a882d379e93d08eab4349458ee16fbf45291347994eac7dc7ce (json.hpp), 77b9f54b34e7989e6f402afb516f7ff2830df551c3a36973085e2c7a6b1045fe (include.zip)

"},{"location":"home/releases/#summary_2","title":"Summary","text":"

This release fixes several small bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_2","title":"Bug Fixes","text":"
  • Fixed a segmentation fault when serializing std::int64_t minimum value. #1708 #1722
  • Fixed the contains() function for JSON Pointers. #1727 #1741
  • Fixed too lax SFINAE guard for conversion from std::pair and std::tuple to json. #1805 #1806 #1825 #1826
  • Fixed some regressions detected by UBSAN. Updated CI to use Clang-Tidy 7.1.0. #1716 #1728
  • Fixed integer truncation in iteration_proxy. #1797
  • Updated Hedley to v11 to fix a E2512 error in MSVC. #1799
  • Fixed a compile error in enum deserialization of non non-default-constructible types. #1647 #1821
  • Fixed the conversion from json to std::valarray.
"},{"location":"home/releases/#improvements","title":"Improvements","text":"
  • The items() function can now be used with a custom string type. #1765
  • Made json_pointer::back const. #1764 #1769
  • Meson is part of the release archive. #1672 #1694
  • Improved documentation on the Meson and Spack package manager. #1694 #1720
"},{"location":"home/releases/#further-changes_1","title":"Further Changes","text":"
  • Added GitHub Workflow with ubuntu-latest/GCC 7.4.0 as CI step.
  • Added GCC 9 to Travis CI to compile with C++20 support. #1724
  • Added MSVC 2019 to the AppVeyor CI. #1780
  • Added badge to fuzzing status.
  • Fixed some cppcheck warnings. #1760
  • Fixed several typos in the documentation. #1720 #1767 #1803
  • Added documentation on the JSON_THROW_USER, JSON_TRY_USER, and JSON_CATCH_USER macros to control user-defined exception handling.
  • Used GitHub's CODEOWNERS and SECURITY feature.
  • Removed GLOB from CMake files. #1779
  • Updated to Doctest 2.3.5.
"},{"location":"home/releases/#deprecated-functions_2","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v370","title":"v3.7.0","text":"

Files

  • include.zip (143 KB)
  • include.zip.asc (1 KB)
  • json.hpp (782 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-07-28 SHA-256: a503214947952b69f0062f572cb74c17582a495767446347ce2e452963fc2ca4 (json.hpp), 541c34438fd54182e9cdc68dd20c898d766713ad6d901fb2c6e28ff1f1e7c10d (include.zip)

"},{"location":"home/releases/#summary_3","title":"Summary","text":"

This release introduces a few convenience functions and performs a lot of house keeping (bug fixes and small improvements). All changes are backward-compatible.

"},{"location":"home/releases/#new-features","title":"New Features","text":"
  • Add overload of the contains function to check if a JSON pointer is valid without throwing exceptions, just like its counterpart for object keys. #1600
  • Add a function to_string to allow for generic conversion to strings. #916 #1585
  • Add return value for the emplace_back function, returning a reference to the added element just like C++17 is introducing this for std::vector. #1609
  • Add info how to use the library with the pacman package manager on MSYS2. #1670
"},{"location":"home/releases/#bug-fixes_3","title":"Bug Fixes","text":"
  • Fix an issue where typedefs with certain names yielded a compilation error. #1642 #1643
  • Fix a conversion to std::string_view in the unit tests. #1634 #1639
  • Fix MSVC Debug build. #1536 #1570 #1608
  • Fix get_to method to clear existing content before writing. #1511 #1555
  • Fix a -Wc++17-extensions warning. nodiscard attributes are now only used with Clang when -std=c++17 is used. #1535 #1551
"},{"location":"home/releases/#improvements_1","title":"Improvements","text":"
  • Switch from Catch to doctest for the unit tests which speeds up compilation and runtime of the 112,112,308 tests.
  • Add an explicit section to the README about the frequently addressed topics character encoding, comments in JSON, and the order of object keys.
"},{"location":"home/releases/#further-changes_2","title":"Further Changes","text":"
  • Use GNUInstallDirs to set library install directories. #1673
  • Fix links in the README. #1620 #1621 #1622 #1623 #1625
  • Mention json type on the documentation start page. #1616
  • Complete documentation of value() function with respect to type_error.302 exception. #1601
  • Fix links in the documentation. #1598
  • Add regression tests for MSVC. #1543 #1570
  • Use CircleCI for continuous integration.
  • Use Doozer for continuous integration on Linux (CentOS, Raspbian, Fedora)
  • Add tests to check each CMake flag (JSON_BuildTests, JSON_Install, JSON_MultipleHeaders, JSON_Sanitizer, JSON_Valgrind, JSON_NoExceptions, JSON_Coverage).
  • Use Hedley to avoid re-inventing several compiler-agnostic feature macros like JSON_DEPRECATED, JSON_NODISCARD, JSON_LIKELY, JSON_UNLIKELY, JSON_HAS_CPP_14, or JSON_HAS_CPP_17. Functions taking or returning pointers are annotated accordingly when a pointer will not be null.
  • Build and run tests on AppVeyor in DEBUG and RELEASE mode.
"},{"location":"home/releases/#deprecated-functions_3","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v361","title":"v3.6.1","text":"

Files

  • include.zip (136 KB)
  • include.zip.asc (1 KB)
  • json.hpp (711 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-03-20 SHA-256: d2eeb25d2e95bffeb08ebb7704cdffd2e8fca7113eba9a0b38d60a5c391ea09a (json.hpp), 69cc88207ce91347ea530b227ff0776db82dcb8de6704e1a3d74f4841bc651cf (include.zip)

"},{"location":"home/releases/#summary_4","title":"Summary","text":"

This release fixes a regression and a bug introduced by the earlier 3.6.0 release. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_4","title":"Bug Fixes","text":"
  • Fixed regression of #590 which could lead to compilation errors with GCC 7 and GCC 8. #1530
  • Fixed a compilation error when <Windows.h> was included. #1531
"},{"location":"home/releases/#further-changes_3","title":"Further Changes","text":"
  • Fixed a warning for missing field initializers. #1527
"},{"location":"home/releases/#deprecated-functions_4","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v360","title":"v3.6.0","text":"

Files

  • include.zip (136 KB)
  • include.zip.asc (1 KB)
  • json.hpp (711 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-03-20 SHA-256: ce9839370f28094c71107c405affb3b08c4a098154988014cbb0800b1c44a831 (json.hpp), 237c5e66e7f8186a02804ce9dbd5f69ce89fe7424ef84adf6142e973bd9532f4 (include.zip)

\u2139\ufe0f This release introduced a regression. Please update to version 3.6.1!

"},{"location":"home/releases/#summary_5","title":"Summary","text":"

This release adds some convenience functions for JSON Pointers, introduces a contains function to check if a key is present in an object, and improves the performance of integer serialization. Furthermore, a lot of small bug fixes and improvements have been made. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_1","title":"New Features","text":"
  • Overworked the public interface for JSON Pointers. The creation of JSON Pointers is simplified with operator/ and operator/=. JSON Pointers can be inspected with empty, back, and parent_pointer, and manipulated with push_back and pop_back. #1434
  • Added a boolean method contains to check whether an element exists in a JSON object with a given key. Returns false when called on non-object types. #1471 #1474
"},{"location":"home/releases/#bug-fixes_5","title":"Bug Fixes","text":"
  • Fixed a compilation issues with libc 2.12. #1483 #1514
  • Fixed endian conversion on PPC64. #1489
  • Fixed library to compile with GCC 9. #1472 #1492
  • Fixed a compilation issue with GCC 7 on CentOS. #1496
  • Fixed an integer overflow. #1447
  • Fixed buffer flushing in serializer. #1445 #1446
"},{"location":"home/releases/#improvements_2","title":"Improvements","text":"
  • The performance of dumping integers has been greatly improved. #1411
  • Added CMake parameter JSON_Install to control whether the library should be installed (default: on). #1330
  • Fixed a lot of compiler and linter warnings. #1400 #1435 #1502
  • Reduced required CMake version from 3.8 to 3.1. #1409 #1428 #1441 #1498
  • Added nodiscard attribute to meta(), array(), object(), from_cbor, from_msgpack, from_ubjson, from_bson, and parse. #1433
"},{"location":"home/releases/#further-changes_4","title":"Further Changes","text":"
  • Added missing headers. #1500
  • Fixed typos and broken links in README. #1417 #1423 #1425 #1451 #1455 #1491
  • Fixed documentation of parse function. #1473
  • Suppressed warning that cannot be fixed inside the library. #1401 #1468
  • Imroved package manager suppert:
    • Updated Buckaroo instructions. #1495
    • Improved Meson support. #1463
    • Added Conda package manager documentation. #1430
    • Added NuGet package manager documentation. #1132
  • Continuous Integration
    • Removed unstable or deprecated Travis builders (Xcode 6.4 - 8.2) and added Xcode 10.1 builder.
    • Added Clang 7 to Travis CI.
    • Fixed AppVeyor x64 builds. #1374 #1414
  • Updated thirdparty libraries:
    • Catch 1.12.0 -> 1.12.2
    • Google Benchmark 1.3.0 -> 1.4.1
    • Doxygen 1.8.15 -> 1.8.16
"},{"location":"home/releases/#deprecated-functions_5","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v350","title":"v3.5.0","text":"

Files

  • include.zip (133 KB)
  • include.zip.asc (1 KB)
  • json.hpp (693 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-12-22 SHA-256: 8a6dbf3bf01156f438d0ca7e78c2971bca50eec4ca6f0cf59adf3464c43bb9d5 (json.hpp), 3564da9c5b0cf2e032f97c69baedf10ddbc98030c337d0327a215ea72259ea21 (include.zip)

"},{"location":"home/releases/#summary_6","title":"Summary","text":"

This release introduces the support for structured bindings and reading from FILE*. Besides, a few bugs have been fixed. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_2","title":"New Features","text":"
  • Structured bindings are now supported for JSON objects and arrays via the items() member function, so finally this code is possible:

    for (auto& [key, val] : j.items()) {\n    std::cout << key << ':' << val << '\\n';\n}\n
    #1388 #1391

  • Added support for reading from FILE* to support situations in which streams are nit available or would require too much RAM. #1370 #1392

"},{"location":"home/releases/#bug-fixes_6","title":"Bug Fixes","text":"
  • The eofbit was not set for input streams when the end of a stream was reached while parsing. #1340 #1343
  • Fixed a bug in the SAX parser for BSON arrays.
"},{"location":"home/releases/#improvements_3","title":"Improvements","text":"
  • Added support for Clang 5.0.1 (PS4 version). #1341 #1342
"},{"location":"home/releases/#further-changes_5","title":"Further Changes","text":"
  • Added a warning for implicit conversions to the documentation: It is not recommended to use implicit conversions when reading from a JSON value. Details about this recommendation can be found here. #1363
  • Fixed typos in the documentation. #1329 #1380 #1382
  • Fixed a C4800 warning. #1364
  • Fixed a -Wshadow warning #1346
  • Wrapped std::snprintf calls to avoid error in MSVC. #1337
  • Added code to allow installation via Meson. #1345
"},{"location":"home/releases/#deprecated-functions_6","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v340","title":"v3.4.0","text":"

Files

  • include.zip (132 KB)
  • include.zip.asc (1 KB)
  • json.hpp (689 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-10-30 SHA-256: 63da6d1f22b2a7bb9e4ff7d6b255cf691a161ff49532dcc45d398a53e295835f (json.hpp), bfec46fc0cee01c509cf064d2254517e7fa80d1e7647fea37cf81d97c5682bdc (include.zip)

"},{"location":"home/releases/#summary_7","title":"Summary","text":"

This release introduces three new features:

  • BSON (Binary JSON) is next to CBOR, MessagePack, and UBJSON the fourth binary (de)serialization format supported by the library.
  • Adjustable error handlers for invalid Unicode allows to specify the behavior when invalid byte sequences are serialized.
  • Simplified enum/JSON mapping with a macro in case the default mapping to integers is not desired.

Furthermore, some effort has been invested in improving the parse error messages. Besides, a few bugs have been fixed. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_3","title":"New Features","text":"
  • The library can read and write a subset of BSON (Binary JSON). All data types known from JSON are supported, whereas other types more tied to MongoDB such as timestamps, object ids, or binary data are currently not implemented. See the README for examples. #1244 #1320
  • The behavior when the library encounters an invalid Unicode sequence during serialization can now be controlled by defining one of three Unicode error handlers: (1) throw an exception (default behavior), (2) replace invalid sequences by the Unicode replacement character (U+FFFD), or (3) ignore/filter invalid sequences. See the documentation of the dump function for examples. #1198 #1314
  • To easily specify a user-defined enum/JSON mapping, a macro NLOHMANN_JSON_SERIALIZE_ENUM has been introduced. See the README section for more information. #1208 #1323
"},{"location":"home/releases/#bug-fixes_7","title":"Bug Fixes","text":"
  • fixed truncation #1286 #1315
  • fixed an issue with std::pair #1299 #1301
  • fixed an issue with std::variant #1292 #1294
  • fixed a bug in the JSON Pointer parser
"},{"location":"home/releases/#improvements_4","title":"Improvements","text":"
  • The diagnosis messages for parse errors have been improved: error messages now indicated line/column positions where possible (in addition to a byte count) and also the context in which the error occurred (e.g., \"while parsing a JSON string\"). Example: error parse error at 2: syntax error - invalid string: control character must be escaped; last read: '<U+0009>' is now reported as parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t; last read: '<U+0009>'. #1280 #1288 #1303
"},{"location":"home/releases/#further-changes_6","title":"Further Changes","text":"
  • improved Meson documentation #1305
  • fixed some more linter warnings #1280
  • fixed Clang detection for third-party Google Benchmark library #1277
"},{"location":"home/releases/#deprecated-functions_7","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v330","title":"v3.3.0","text":"

Files

  • include.zip (123 KB)
  • include.zip.asc (1 KB)
  • json.hpp (635 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-10-05 SHA-256: f1327bb60c58757a3dd2b0c9c45d49503d571337681d950ec621f8374bcc14d4 (json.hpp), 9588d63557333aaa485e92221ec38014a85a6134e7486fe3441e0541a5a89576 (include.zip)

"},{"location":"home/releases/#summary_8","title":"Summary","text":"

This release adds support for GCC 4.8. Furthermore, it adds a function get_to to write a JSON value to a passed reference. Another topic of this release was the CMake support which has been overworked and documented.

Besides, a lot of bugs have been fixed and slight improvements have been made. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_4","title":"New Features","text":"
  • The library can now also built with GCC 4.8. Though this compiler does not fully support C++11, it can successfully compile and run the test suite. Note that bug 57824 in GCC 4.8 still forbids to use multiline raw strings in arguments to macros. #1257
  • Added new function get_to to write a JSON value to a passed reference. The destination type is automatically derived which allows more succinct code compared to the get function. #1227 #1231
"},{"location":"home/releases/#bug-fixes_8","title":"Bug Fixes","text":"
  • Fixed a bug in the CMake file that made target_link_libraries to not properly include nlohmann_json. #1243 #1245 #1260
  • Fixed a warning in MSVC 2017 complaining about a constexpr if. #1204 #1268 #1272
  • Fixed a bug that prevented compilation with ICPC. #755 #1222
  • Improved the SFINAE correctness to fix a bug in the conversion operator. #1237 #1238
  • Fixed a -Wctor-dtor-privacy warning. #1224
  • Fixed a warning on a lambda in unevaluated context. #1225 #1230
  • Fixed a bug introduced in version 3.2.0 where defining JSON_CATCH_USER led to duplicate macro definition of JSON_INTERNAL_CATCH. #1213 #1214
  • Fixed a bug that prevented compilation with Clang 3.4.2 in RHEL 7. #1179 #1249
"},{"location":"home/releases/#improvements_5","title":"Improvements","text":"
  • Added documentation on CMake integration of the library. #1270
  • Changed the CMake file to use find_package(nlohmann_json) without installing the library. #1202
  • Improved error messages in case operator[] is used with the wrong combination (json.exception.type_error.305) of JSON container type and argument type. Example: \"cannot use operator[] with a string argument\". #1220 #1221
  • Added a license and version information to the Meson build file. #1252
  • Removed static assertions to indicated missing to_json or from_json functions as such assertions do not play well with SFINAE. These assertions also led to problems with GMock. #960 #1212 #1228
  • The test suite now does not wait forever if run in a wrong directory and input files are not found. #1262
  • The test suite does not show deprecation warnings for deprecated functions which frequently led to confusion. #1271
"},{"location":"home/releases/#further-changes_7","title":"Further Changes","text":"
  • GCC 4.8 and Xcode 10 were added to the continuous integration suite at Travis.
  • Added lgtm checks to pull requests.
  • Added tests for CMake integration. #1260
"},{"location":"home/releases/#deprecated-functions_8","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v320","title":"v3.2.0","text":"

Files

  • include.zip (124 KB)
  • include.zip.asc (1 KB)
  • json.hpp (636 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-08-20 SHA-256: ce6b5610a051ec6795fa11c33854abebb086f0fd67c311f5921c3c07f9531b44 (json.hpp), 35ee642558b90e2f9bc758995c4788c4b4d4dec54eef95fb8f38cb4d49c8fc7c (include.zip)

"},{"location":"home/releases/#summary_9","title":"Summary","text":"

This release introduces a SAX interface to the library. While this may be a very special feature used by only few people, it allowed to unify all functions that consumed input and created some kind of JSON value. Internally, now all existing functions like parse, accept, from_cbor, from_msgpack, and from_ubjson use the SAX interface with different event processors. This allowed to separate the input processing from the value generation. Furthermore, throwing an exception in case of a parse error is now optional and up to the event processor. Finally, the JSON parser is now non-recursive (meaning it does not use the call stack, but std::vector<bool> to track the hierarchy of structured values) which allows to process nested input more efficiently.

Furthermore, the library finally is able to parse from wide string types. This is the first step toward opening the library from UTF-8 to UTF-16 and UTF-32.

This release further fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_5","title":"New Features","text":"
  • added a parser with a SAX interface (#971, #1153)
  • support to parse from wide string types std::wstring, std::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)
"},{"location":"home/releases/#bug-fixes_9","title":"Bug Fixes","text":"
  • 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 accidentally skipped unit tests (#1176)
  • fixed MSVC issue with std::swap (#1168)
"},{"location":"home/releases/#improvements_6","title":"Improvements","text":"
  • 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)
"},{"location":"home/releases/#further-changes_8","title":"Further Changes","text":"
  • changed issue templates
  • improved continuous integration: added builders for Xcode 9.3 and 9.4, added builders for GCC 8 and Clang 6, added builder for MinGW, added builders for MSVC targeting x86
  • required CMake version is now at least 3.8 (#1040)
  • overworked CMake file wrt. packaging (#1048)
  • added package managers: Spack (#1041) and CocoaPods (#1148)
  • fixed Meson include directory (#1142)
  • preprocessor macro JSON_SKIP_UNSUPPORTED_COMPILER_CHECK can skip the rejection of unsupported compilers - use at your own risk! (#1128)
  • preprocessor macro JSON_INTERNAL_CATCH/JSON_INTERNAL_CATCH_USER allows to control the behavior of exception handling inside the library (#1187)
  • added note on char to JSON conversion
  • added note how to send security-related issue via encrypted email
  • removed dependency to std::stringstream (#1117)
  • added SPDX-License-Identifier
  • added updated JSON Parsing Test Suite, described in Parsing JSON is a Minefield \ud83d\udca3
  • updated to Catch 1.12.0
"},{"location":"home/releases/#deprecated-functions_9","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v312","title":"v3.1.2","text":"

Files

  • include.zip (115 KB)
  • include.zip.asc (1 KB)
  • json.hpp (582 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-03-14 SHA-256: fbdfec4b4cf63b3b565d09f87e6c3c183bdd45c5be1864d3fcb338f6f02c1733 (json.hpp), 495362ee1b9d03d9526ba9ccf1b4a9c37691abe3a642ddbced13e5778c16660c (include.zip)

"},{"location":"home/releases/#summary_10","title":"Summary","text":"

This release fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_10","title":"Bug Fixes","text":"
  • Fixed a memory leak occurring in the parser callback (#1001).
  • Different specializations of basic_json (e.g., using different template arguments for strings or objects) can now be used in assignments (#972, #977, #986).
  • Fixed a logical error in an iterator range check (#992).
"},{"location":"home/releases/#improvements_7","title":"Improvements","text":"
  • The parser and the serialization now support user-defined string types (#1006, #1009).
"},{"location":"home/releases/#further-changes_9","title":"Further Changes","text":"
  • Clang Analyzer is now used as additional static analyzer; see make clang_analyze.
  • Overworked README by adding links to the documentation (#981).
"},{"location":"home/releases/#deprecated-functions_10","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v311","title":"v3.1.1","text":"

Files

  • include.zip (114 KB)
  • include.zip.asc (1 KB)
  • json.hpp (577 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-02-13 SHA-256: e14ce5e33d6a2daf748026bd4947f3d9686ca4cfd53d10c3da46a0a9aceb7f2e (json.hpp), fde771d4b9e4f222965c00758a2bdd627d04fb7b59e09b7f3d1965abdc848505 (include.zip)

"},{"location":"home/releases/#summary_11","title":"Summary","text":"

This release fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_11","title":"Bug Fixes","text":"
  • Fixed parsing of CBOR strings with indefinite length (#961). Earlier versions of this library misinterpreted the CBOR standard and rejected input with the 0x7F start byte.
  • Fixed user-defined conversion to vector type (#924, #969). A wrong SFINAE check rejected code though a user-defined conversion was provided.
  • Fixed documentation of the parser behavior for objects with duplicate keys (#963). The exact behavior is not specified by RFC 8259 and the library now also provides no guarantee which object key is stored.
  • Added check to detect memory overflow when parsing UBJSON containers (#962). The optimized UBJSON format allowed for specifying an array with billions of null elements with a few bytes and the library did not check whether this size exceeded max_size().
"},{"location":"home/releases/#further-changes_10","title":"Further Changes","text":"
  • Code coverage is now calculated for the individual header files, allowing to find uncovered lines more quickly than by browsing through the single header version (#953, #957).
  • A Makefile target run_benchmarks was added to quickly build and run the benchmark suite.
  • The documentation was harmonized with respect to the header inclusion (#955). Now all examples and the README use #include <nlohmann/json.hpp> to allow for selecting single_include or include or whatever installation folder as include directory.
  • Added note on how to use the library with the cget package manager (#954).
"},{"location":"home/releases/#deprecated-functions_11","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v310","title":"v3.1.0","text":"

Files

  • include.zip (114 KB)
  • include.zip.asc (1 KB)
  • json.hpp (577 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-02-01 SHA-256: d40f614d10a6e4e4e80dca9463da905285f20e93116c36d97d4dc1aa63d10ba4 (json.hpp), 2b7234fca394d1e27b7e017117ed80b7518fafbb4f4c13a7c069624f6f924673 (include.zip)

"},{"location":"home/releases/#summary_12","title":"Summary","text":"

This release adds support for the UBJSON format and JSON Merge Patch. It also contains some minor changes and bug fixes. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_6","title":"New features","text":"
  • The library now supports UBJSON (Universal Binary JSON Specification) as binary format to read and write JSON values space-efficiently. See the documentation overview for a comparison of the different formats CBOR, MessagePack, and UBJSON.
  • JSON Merge Patch (RFC 7386) offers an intuitive means to describe patches between JSON values (#876, #877). See the documentation of merge_patch for more information.
"},{"location":"home/releases/#improvements_8","title":"Improvements","text":"
  • The library now uses the Grisu2 algorithm for printing floating-point numbers (based on the reference implementation by Florian Loitsch) which produces a short representation which is guaranteed to round-trip (#360, #935, #936).
  • The UTF-8 handling was further simplified by using the decoder of Bj\u00f6rn Hoehrmann in more scenarios.
"},{"location":"home/releases/#reorganization","title":"Reorganization","text":"
  • Though the library is released as a single header, its development got more and more complicated. With this release, the header is split into several files and the single-header file json.hpp can be generated from these development sources. In the repository, folder include contains the development sources and single_include contains the single json.hpp header (#700, #906, #907, #910, #911, #915, #920, #924, #925, #928, #944).
  • The split further allowed for a forward declaration header include/nlohmann/json_fwd.hpp to speed up compilation times (#314).
"},{"location":"home/releases/#further-changes_11","title":"Further changes","text":"
  • Google Benchmark is now used for micro benchmarks (see benchmarks folder, #921).
  • The serialization (JSON and binary formats) now properly work with the libraries string template parameter, allowing for optimized string implementations to be used in constraint environments such as embedded software (#941, #950).
  • The exceptional behavior can now be overridden by defining macros JSON_THROW_USER, JSON_TRY_USER, and JSON_CATCH_USER, defining the behavior of throw, try and catch, respectively. This allows to switch off C++'s exception mechanism yet still execute user-defined code in case an error condition occurs (#938).
  • To facilitate the interplay with flex and Bison, the library does not use the variable name yytext any more as it could clash with macro definitions (#933).
  • The library now defines NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH to allow for conditional compilation based on the included library version (#943, #948).
  • A compilation error with ICC has been fixed (#947).
  • Typos and links in the documentation have been fixed (#900, #930).
  • A compiler error related to incomplete types has been fixed (#919).
  • The tests form the UTF-8 decoder stress test have been added to the test suite.
"},{"location":"home/releases/#deprecated-functions_12","title":"Deprecated functions","text":"
  • Function iterator_wrapper has been deprecated (#874). Since its introduction, the name was up for discussion, as it was too technical. We now introduced the member function items() with the same semantics. iterator_wrapper will be removed in the next major version (i.e., 4.0.0).

Furthermore, the following functions are deprecated since version 3.0.0 and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#v301","title":"v3.0.1","text":"

Files

  • json.hpp (502 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-12-29 SHA-256: c9b3591f1bb94e723a0cd7be861733a3a555b234ef132be1e9027a0364118c4c

"},{"location":"home/releases/#summary_13","title":"Summary","text":"

This release fixes small issues in the implementation of JSON Pointer and JSON Patch. All changes are backward-compatible.

"},{"location":"home/releases/#changes","title":"Changes","text":"
  • The \"copy\" operation of JSON Patch (RFC 6902) requests that it is an error if the target path points into a non-existing array or object (see #894 for a detailed description). This release fixes the implementation to detect such invalid target paths and throw an exception.
  • An array index in a JSON Pointer (RFC 6901) must be an integer. This release fixes the implementation to throw an exception in case invalid array indices such as 10e2 are used.
  • Added the JSON Patch tests from Byron Ruth and Mike McCabe.
  • Fixed the documentation of the at(ptr) function with JSON Pointers to list all possible exceptions (see #888).
  • Updated the container overview documentation (see #883).
  • The CMake files now respect the BUILD_TESTING option (see #846, #885)
  • Fixed some compiler warnings (see #858, #882).
"},{"location":"home/releases/#deprecated-functions_13","title":"Deprecated functions","text":"

To unify the interfaces and to improve similarity with the STL, the following functions are deprecated since version 3.0.0 and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#v300","title":"v3.0.0","text":"

Files

  • json.hpp (501 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-12-17 SHA-256: 076d4a0cb890a3c3d389c68421a11c3d77c64bd788e85d50f1b77ed252f2a462

"},{"location":"home/releases/#summary_14","title":"Summary","text":"

After almost a year, here is finally a new release of JSON for Modern C++, and it is a major one! As we adhere to semantic versioning, this means the release includes some breaking changes, so please read the next section carefully before you update. But don't worry, we also added a few new features and put a lot of effort into fixing a lot of bugs and straighten out a few inconsistencies.

"},{"location":"home/releases/#breaking-changes","title":"Breaking changes","text":"

This section describes changes that change the public API of the library and may require changes in code using a previous version of the library. In section \"Moving from 2.x.x to 3.0.0\" at the end of the release notes, we describe in detail how existing code needs to be changed.

  • The library now uses user-defined exceptions instead of re-using those defined in <stdexcept> (#244). This not only allows to add more information to the exceptions (every exception now has an identifier, and parse errors contain the position of the error), but also to easily catch all library exceptions with a single catch(json::exception).
  • When strings with a different encoding as UTF-8 were stored in JSON values, their serialization could not be parsed by the library itself, as only UTF-8 is supported. To enforce this library limitation and improve consistency, non-UTF-8 encoded strings now yield a json::type_error exception during serialization (#838). The check for valid UTF-8 is realized with code from Bj\u00f6rn Hoehrmann.
  • NaN and infinity values can now be stored inside the JSON value without throwing an exception. They are, however, still serialized as null (#388).
  • The library's iterator tag was changed from RandomAccessIterator to BidirectionalIterator (#593). Supporting RandomAccessIterator was incorrect as it assumed an ordering of values in a JSON objects which are unordered by definition.
  • The library does not include the standard headers <iostream>, <ctype>, and <stdexcept> any more. You may need to add these headers to code relying on them.
  • Removed constructor explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) which was deprecated in version 2.0.0 (#480).
"},{"location":"home/releases/#deprecated-functions_14","title":"Deprecated functions","text":"

To unify the interfaces and to improve similarity with the STL, the following functions are now deprecated and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#new-features_7","title":"New features","text":"

With all this breaking and deprecation out of the way, let's talk about features!

  • We improved the diagnostic information for syntax errors (#301). Now, an exception json::parse_error is thrown which contains a detailed message on the error, but also a member byte to indicate the byte offset in the input where the error occurred.
  • We added a non-throwing syntax check (#458): The new accept function returns a Boolean indicating whether the input is proper JSON. We also added a Boolean parameter allow_exceptions to the existing parse functions to return a discarded value in case a syntax error occurs instead of throwing an exception.
  • An update function was added to merge two JSON objects (#428). In case you are wondering: the name was inspired by Python.
  • The insert function now also supports an iterator range to add elements to an object.
  • The binary exchange formats CBOR and MessagePack can now be parsed from input streams and written to output streams (#477).
  • Input streams are now only read until the end of a JSON value instead of the end of the input (#367).
  • The serialization function dump now has two optional parameters ensure_ascii to escape all non-ASCII characters with \\uxxxx and an indent_char parameter to choose whether to indent with spaces or tabs (#654).
  • Added built-in type support for C arrays (#502), std::pair and std::tuple (#563, #614), enum and enum class (#545), std::vector<bool> (#494). Fixed support for std::valarray (#702), std::array (#553), and std::map<std::string, std::string> (#600, #607).
"},{"location":"home/releases/#further-changes_12","title":"Further changes","text":"

Furthermore, there have been a lot of changes under the hood:

  • Replaced the re2c generated scanner by a self-coded version which allows for a better modularization of the parser and better diagnostics. To test the new scanner, we added millions (8,860,608 to be exact) of unit tests to check all valid and invalid byte sequences of the Unicode standard.
  • Google's OSS-Fuzz is still constantly fuzz-testing the library and found several issues that were fixed in this release (#497, #504, #514, #516, #518, #519, #575).
  • We now also ignore UTF-8 byte order marks when parsing from an iterator range (#602).
  • Values can be now moved from initializer lists (#663).
  • Updated to Catch 1.9.7. Unfortunately, Catch2 currently has some performance issues.
  • The non-exceptional paths of the library are now annotated with __builtin_expect to optimize branch prediction as long as no error occurs.
  • MSVC now produces a stack trace in MSVC if a from_json or to_json function was not found for a user-defined type. We also added a debug visualizer nlohmann_json.natvis for better debugging in MSVC (#844).
  • Overworked the documentation and added even more examples.
  • The build workflow now relies on CMake and CTest. Special flags can be chosen with CMake, including coverage (JSON_Coverage), compilation without exceptions (JSON_NoExceptions), LLVM sanitizers (JSON_Sanitizer), or execution with Valgrind (JSON_Valgrind).
  • Added support for package managers Meson (#576), Conan (#566), Hunter (#671, #829), and vcpkg (#753).
  • Added CI builders: Xcode 8.3, 9.0, 9.1, and 9.2; GCC 7.2; Clang 3.8, 3.9, 4.0, and 5.0; Visual Studio 2017. The library is further built with C++17 settings on the latest Clang, GCC, and MSVC version to quickly detect new issues.
"},{"location":"home/releases/#moving-from-2xx-to-300","title":"Moving from 2.x.x to 3.0.0","text":""},{"location":"home/releases/#user-defined-exceptions","title":"User-defined Exceptions","text":"

There are five different exceptions inheriting from json::exception:

  • json::parse_error for syntax errors (including the binary formats),
  • json::invalid_iterator for errors related to iterators,
  • json::type_error for errors where functions were called with the wrong JSON type,
  • json::out_of_range for range errors, and
  • json::other_error for miscellaneous errors.

To support these exception, the try/catch blocks of your code need to be adjusted:

new exception previous exception parse_error.101 invalid_argument parse_error.102 invalid_argument parse_error.103 invalid_argument parse_error.104 invalid_argument parse_error.105 invalid_argument parse_error.106 domain_error parse_error.107 domain_error parse_error.108 domain_error parse_error.109 invalid_argument parse_error.110 out_of_range parse_error.111 invalid_argument parse_error.112 invalid_argument invalid_iterator.201 domain_error invalid_iterator.202 domain_error invalid_iterator.203 domain_error invalid_iterator.204 out_of_range invalid_iterator.205 out_of_range invalid_iterator.206 domain_error invalid_iterator.207 domain_error invalid_iterator.208 domain_error invalid_iterator.209 domain_error invalid_iterator.210 domain_error invalid_iterator.211 domain_error invalid_iterator.212 domain_error invalid_iterator.213 domain_error invalid_iterator.214 out_of_range type_error.301 domain_error type_error.302 domain_error type_error.303 domain_error type_error.304 domain_error type_error.305 domain_error type_error.306 domain_error type_error.307 domain_error type_error.308 domain_error type_error.309 domain_error type_error.310 domain_error type_error.311 domain_error type_error.313 domain_error type_error.314 domain_error type_error.315 domain_error out_of_range.401 out_of_range out_of_range.402 out_of_range out_of_range.403 out_of_range out_of_range.404 out_of_range out_of_range.405 domain_error other_error.501 domain_error"},{"location":"home/releases/#handling-of-nan-and-inf","title":"Handling of NaN and INF","text":"
  • If an overflow occurs during parsing a number from a JSON text, an exception json::out_of_range is thrown so that the overflow is detected early and roundtripping is guaranteed.

  • NaN and INF floating-point values can be stored in a JSON value and are not replaced by null. That is, the basic_json class behaves like double in this regard (no exception occurs). However, NaN and INF are serialized to null.

"},{"location":"home/releases/#removal-of-deprecated-functions","title":"Removal of deprecated functions","text":"

Function explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) should be replaced by the parse function: Let ss be a stream and cb be a parse callback function.

Old code:

json j(ss, cb);\n

New code:

json j = json::parse(ss, cb);\n

If no callback function is used, also the following code works:

json j;\nj << ss;\n

or

json j;\nss >> j;\n
"},{"location":"home/releases/#v211","title":"v2.1.1","text":"

Files

  • json.hpp (437 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-02-25 SHA-256: faa2321beb1aa7416d035e7417fcfa59692ac3d8c202728f9bcc302e2d558f57

"},{"location":"home/releases/#summary_15","title":"Summary","text":"

This release fixes a locale-related bug in the parser. To do so, the whole number handling (lexer, parser, and also the serialization) have been overworked. Furthermore, a lot of small changes added up that were added to this release. All changes are backward-compatible.

"},{"location":"home/releases/#changes_1","title":"Changes","text":"
  • Locales that have a different character than . as decimal separator (e.g., the Norwegian locale nb_NO.UTF-8) led to truncated number parsing or parse errors. The library now has been fixed to work with any locale. Note that . is still the only valid decimal separator for JSON input.
  • Numbers like 1.0 were correctly parsed as floating-point number, but serialized as integer (1). Now, floating-point numbers correctly round trip.
  • Parsing incorrect JSON numbers with leading 0 (0123) could yield a buffer overflow. This is fixed now by detecting such errors directly by the lexer.
  • Constructing a JSON value from a pointer was incorrectly interpreted as a Boolean; such code will now yield a compiler error.
  • Comparing a JSON number with 0 led to a comparison with null. This is fixed now.
  • All throw calls are now wrapped in macros.
  • Starting during the preparation of this release (since 8 February 2017), commits and released files are cryptographically signed with this GPG key. Previous releases have also been signed.
  • The parser for MessagePack and CBOR now supports an optional start index parameter to define a byte offset for the parser.
  • Some more warnings have been fixed. With Clang, the code compiles without warnings with -Weverything (well, it needs -Wno-documentation-unknown-command and -Wno-deprecated-declarations, but you get the point).
  • The code can be compiled easier with many Android NDKs by avoiding macros like UINT8_MAX which previously required defining a preprocessor macro for compilation.
  • The unit tests now compile two times faster.
  • Cotire is used to speed up the build.
  • Fixed a lot of typos in the documentation.
  • Added a section to the README file that lists all used third-party code/tools.
  • Added a note on constructing a string value vs. parsing.
  • The test suite now contains 11202597 unit tests.
  • Improved the Doxygen documentation by shortening the template parameters of class basic_json.
  • Removed Doozer.
  • Added Codacity.
  • Upgraded Catch to version 1.7.2.
"},{"location":"home/releases/#v210","title":"v2.1.0","text":"

Files

  • json.hpp (426 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2017-01-28
  • SHA-256: a571dee92515b685784fd527e38405cf3f5e13e96edbfe3f03d6df2e363a767b
"},{"location":"home/releases/#summary_16","title":"Summary","text":"

This release introduces a means to convert from/to user-defined types. The release is backwards compatible.

"},{"location":"home/releases/#changes_2","title":"Changes","text":"
  • The library now offers an elegant way to convert from and to arbitrary value types. All you need to do is to implement two functions: to_json and from_json. Then, a conversion is as simple as putting a = between variables. See the README for more information and examples.
  • Exceptions can now be switched off. This can be done by defining the preprocessor symbol JSON_NOEXCEPTION or by passing -fno-exceptions to your compiler. In case the code would usually thrown an exception, abort() is now called.
  • Information on the library can be queried with the new (static) function meta() which returns a JSON object with information on the version, compiler, and platform. See the documentation for an example.
  • A bug in the CBOR parser was fixed which led to a buffer overflow.
  • The function type_name() is now public. It allows to query the type of a JSON value as string.
  • Added the Big List of Naughty Strings as test case.
  • Updated to Catch v1.6.0.
  • Some typos in the documentation have been fixed.
"},{"location":"home/releases/#v2010","title":"v2.0.10","text":"

Files

  • json.hpp (409 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2017-01-02
  • SHA-256: ec27d4e74e9ce0f78066389a70724afd07f10761009322dc020656704ad5296d
"},{"location":"home/releases/#summary_17","title":"Summary","text":"

This release fixes several security-relevant bugs in the MessagePack and CBOR parsers. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_3","title":"Changes","text":"
  • Fixed a lot of bugs in the CBOR and MesssagePack parsers. These bugs occurred if invalid input was parsed and then could lead in buffer overflows. These bugs were found with Google's OSS-Fuzz, see #405, #407, #408, #409, #411, and #412 for more information.
  • We now also use the Doozer continuous integration platform.
  • The complete test suite is now also run with Clang's address sanitizer and undefined-behavior sanitizer.
  • Overworked fuzz testing; CBOR and MessagePack implementations are now fuzz-tested. Furthermore, all fuzz tests now include a round trip which ensures created output can again be properly parsed and yields the same JSON value.
  • Clarified documentation of find() function to always return end() when called on non-object value types.
  • Moved thirdparty test code to test/thirdparty directory.
"},{"location":"home/releases/#v209","title":"v2.0.9","text":"

Files

  • json.hpp (406 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-12-16
  • SHA-256: fbf3396f13e187d6c214c297bddc742d918ea9b55e10bfb3d9f458b9bfdc22e5
"},{"location":"home/releases/#summary_18","title":"Summary","text":"

This release implements with CBOR and MessagePack two binary serialization/deserialization formats. It further contains some small fixes and improvements. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_4","title":"Changes","text":"
  • The library can now read and write the binary formats CBOR (Concise Binary Object Representation) and MessagePack. Both formats are aimed to produce a very compact representation of JSON which can be parsed very efficiently. See the README file for more information and examples.
  • simplified the iteration implementation allowing to remove dozens of lines of code
  • fixed an integer overflow error detected by Google's OSS-Fuzz
  • suppressed documentation warnings inside the library to facilitate compilation with -Wdocumentation
  • fixed an overflow detection error in the number parser
  • updated contribution guidelines to a list of frequentely asked features that will most likely be never added to the library
  • added a table of contents to the README file to add some structure
  • mentioned the many examples and the documentation in the README file
  • split unit tests into individual independent binaries to speed up compilation and testing
  • the test suite now contains 11201886 tests
"},{"location":"home/releases/#v208","title":"v2.0.8","text":"

Files

  • json.hpp (360 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-12-02
  • SHA-256: b70db0ad34f8e0e61dc3f0cbab88099336c9674c193d8a3439d93d6aca2d7120
"},{"location":"home/releases/#summary_19","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_5","title":"Changes","text":"
  • fixed a bug that froze the parser if a passed file was not found (now, std::invalid_argument is thrown)
  • fixed a bug that lead to an error of a file at EOF was parsed again (now, std::invalid_argument is thrown)
  • the well known functions emplace and emplace_back have been added to JSON values and work as expected
  • improved the performance of the serialization (dump function)
  • improved the performance of the deserialization (parser)
  • some continuous integration images at Travis were added and retired; see here for the current continuous integration setup
  • the Coverity scan works again
  • the benchmarking code has been improved to produce more stable results
  • the README file has been extended and includes more frequently asked examples
  • the test suite now contains 8905518 tests
  • updated Catch to version 1.5.8
"},{"location":"home/releases/#v207","title":"v2.0.7","text":"

Files

  • json.hpp (355 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-11-02
  • SHA-256: 5545c323670f8165bae90b9dc6078825e86ec310d96cc4e5b47233ea43715bbf
"},{"location":"home/releases/#summary_20","title":"Summary","text":"

This release fixes a few bugs in the JSON parser found in the Parsing JSON is a Minefield \ud83d\udca3 article. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_6","title":"Changes","text":"
  • The article Parsing JSON is a Minefield \ud83d\udca3 discusses a lot of pitfalls of the JSON specification. When investigating the published test cases, a few bugs in the library were found and fixed:
  • Files with less than 5 bytes can now be parsed without error.
  • The library now properly rejects any file encoding other than UTF-8. Furthermore, incorrect surrogate pairs are properly detected and rejected.
  • The library now accepts all but one \"yes\" test (y_string_utf16.json): UTF-16 is not supported.
  • The library rejects all but one \"no\" test (n_number_then_00.json): Null bytes are treated as end of file instead of an error. This allows to parse input from null-terminated strings.
  • The string length passed to a user-defined string literal is now exploited to choose a more efficient constructor.
  • A few grammar mistakes in the README file have been fixed.
"},{"location":"home/releases/#v206","title":"v2.0.6","text":"

Files

  • json.hpp (349 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-10-15
  • SHA256: 459cc93d5e2f503e50c6d5876eb86bfea7daf405f5a567c5a2c9abc2383756ae
"},{"location":"home/releases/#summary_21","title":"Summary","text":"

This release fixes the semantics of operator[] for JSON Pointers (see below). This fix is backwards compatible.

"},{"location":"home/releases/#changes_7","title":"Changes","text":"
  • operator[] for JSON Pointers now behaves like the other versions of operator[] and transforms null values into objects or arrays if required. This allows to created nested structures like j[\"/foo/bar/2\"] = 17 (yielding {\"foo\": \"bar\": [null, null, 17]}) without problems.
  • overworked a helper SFINAE function
  • fixed some documentation issues
  • fixed the CMake files to allow to run the test suite outside the main project directory
  • restored test coverage to 100%.
"},{"location":"home/releases/#v205","title":"v2.0.5","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-09-14
  • SHA-256: 8b7565263a44e2b7d3b89808bc73d2d639037ff0c1f379e3d56dbd77e00b98d9
"},{"location":"home/releases/#summary_22","title":"Summary","text":"

This release fixes a regression bug in the stream parser (function parse() and the <</>> operators). This fix is backwards compatible.

"},{"location":"home/releases/#changes_8","title":"Changes","text":"
  • Bug fix: The end of a file stream was not detected properly which led to parse errors. This bug should have been fixed with 2.0.4, but there was still a flaw in the code.
"},{"location":"home/releases/#v204","title":"v2.0.4","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-09-11
  • SHA-256: 632ceec4c25c4e2153f71470d3a2b992c8355f6d8b4d627d05dd16095cd3aeda
"},{"location":"home/releases/#summary_23","title":"Summary","text":"

This release fixes a bug in the stream parser (function parse() and the <</>> operators). This fix is backwards compatible.

"},{"location":"home/releases/#changes_9","title":"Changes","text":"
  • Bug fix: The end of a file stream was not detected properly which led to parse errors.
  • Fixed a compiler warning about an unused variable.
"},{"location":"home/releases/#v203","title":"v2.0.3","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-08-31
  • SHA-256: 535b73efe5546fde9e763c14aeadfc7b58183c0b3cd43c29741025aba6cf6bd3
"},{"location":"home/releases/#summary_24","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The release is backwards compatible.

"},{"location":"home/releases/#changes_10","title":"Changes","text":"
  • The parser/deserialization functions have been generalized to process any contiguous sequence of 1-byte elements (e.g., char, unsigned char, uint8_t). This includes all kind of string representations (string literals, char arrays, std::string, const char*), contiguous containers (C-style arrays, std::vector, std::array, std::valarray, std::initializer_list). User-defined containers providing random-access iterator access via std::begin and std::end can be used as well. See the documentation (1, 2, 3, 4) for more information. Note that contiguous storage cannot be checked at compile time; if any of the parse functions are called with a noncompliant container, the behavior is undefined and will most likely yield segmentation violation. The preconditions are enforced by an assertion unless the library is compiled with preprocessor symbol NDEBUG.
  • As a general remark on assertions: The library uses assertions to preclude undefined behavior. A prominent example for this is the operator[] for const JSON objects. The behavior of this const version of the operator is undefined if the given key does not exist in the JSON object, because unlike the non-const version, it cannot add a null value at the given key. Assertions can be switched of by defining the preprocessor symbol NDEBUG. See the documentation of assert for more information.
  • In the course of cleaning up the parser/deserialization functions, the constructor basic_json(std::istream&, const parser_callback_t) has been deprecated and will be deleted with the next major release 3.0.0 to unify the interface of the library. Deserialization will be done by stream operators or by calling one of the parse functions. That is, calls like json j(i); for an input stream i need to be replaced by json j = json::parse(i);. Compilers will produce a deprecation warning if client code uses this function.
  • Minor improvements:
  • Improved the performance of the serialization by avoiding the re-creation of a locale object.
  • Fixed two MSVC warnings. Compiling the test suite with /Wall now only warns about non-inlined functions (C4710) and the deprecation of the constructor from input-stream (C4996).
  • Some project internals:
  • The project has qualified for the Core Infrastructure Initiative Best Practices Badge. While most requirements where already satisfied, some led to a more explicit documentation of quality-ensuring procedures. For instance, static analysis is now executed with every commit on the build server. Furthermore, the contribution guidelines document how to communicate security issues privately.
  • The test suite has been overworked and split into several files to allow for faster compilation and analysis. The execute the test suite, simply execute make check.
  • The continuous integration with Travis was extended with Clang versions 3.6.0 to 3.8.1 and now includes 18 different compiler/OS combinations.
  • An 11-day run of American fuzzy lop checked 962 million inputs on the parser and found no issue.
"},{"location":"home/releases/#v202","title":"v2.0.2","text":"

Files

  • json.hpp (338 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-07-31
  • SHA-256: 8e97b7965b4594b00998d6704465412360e1a0ed927badb51ded8b82291a8f3d
"},{"location":"home/releases/#summary_25","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The release is backwards compatible.

"},{"location":"home/releases/#changes_11","title":"Changes","text":"
  • The parser has been overworked, and a lot of small issues have been fixed:
  • Improved parser performance by avoiding recursion and using move semantics for the return value.
  • Unescaped control characters \\x10-\\x1f are not accepted any more.
  • Fixed a bug in the parser when reading from an input stream.
  • Improved test case coverage for UTF-8 parsing: now, all valid Unicode code points are tested both escaped and unescaped.
  • The precision of output streams is now preserved by the parser.
  • Started to check the code correctness by proving termination of important loops. Furthermore, individual assertions have been replaced by a more systematic function which checks the class invariants. Note that assertions should be switched off in production by defining the preprocessor macro NDEBUG, see the documentation of assert.
  • A lot of code cleanup: removed unused headers, fixed some compiler warnings, and fixed a build error for Windows-based Clang builds.
  • Added some compile-time checks:
  • Unsupported compilers are rejected during compilation with an #error command.
  • Static assertion prohibits code with incompatible pointer types used in get_ptr().
  • Improved the documentation, and adjusted the documentation script to choose the correct version of sed.
  • Replaced a lot of \"raw loops\" by STL functions like std::all_of, std::for_each, or std::accumulate. This facilitates reasoning about termination of loops and sometimes allowed to simplify functions to a single return statement.
  • Implemented a value() function for JSON pointers (similar to at function).
  • The Homebrew formula (see Integration) is now tested for all Xcode builds (6.1 - 8.x) with Travis.
  • Avoided output to std::cout in the test cases.
"},{"location":"home/releases/#v201","title":"v2.0.1","text":"

Files

  • json.hpp (321 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-06-28
  • SHA-256: ef550fcd7df572555bf068e9ec4e9d3b9e4cdd441cecb0dcea9ea7fd313f72dd
"},{"location":"home/releases/#summary_26","title":"Summary","text":"

This release fixes a performance regression in the JSON serialization (function dump()). This fix is backwards compatible.

"},{"location":"home/releases/#changes_12","title":"Changes","text":"
  • The locale of the output stream (or the internal string stream if a JSON value is serialized to a string) is now adjusted once for the whole serialization instead of for each floating-point number.
  • The locale of an output stream is now correctly reset to the previous value by the JSON library.
"},{"location":"home/releases/#v200","title":"v2.0.0","text":"

Files

  • json.hpp (321 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-06-24
  • SHA-256: ac9e1fb25c2ac9ca5fc501fcd2fe3281fe04f07018a1b48820e7b1b11491bb6c
"},{"location":"home/releases/#summary_27","title":"Summary","text":"

This release adds several features such as JSON Pointers, JSON Patch, or support for 64 bit unsigned integers. Furthermore, several (subtle) bugs have been fixed.

As noexcept and constexpr specifier have been added to several functions, the public API has effectively been changed in a (potential) non-backwards compatible manner. As we adhere to Semantic Versioning, this calls for a new major version, so say hello to 2\ufe0f\u20e3.0\ufe0f\u20e3.0\ufe0f\u20e3.

"},{"location":"home/releases/#changes_13","title":"Changes","text":"
  • \ud83d\udd1f A JSON value now uses uint64_t (default value for template parameter NumberUnsignedType) as data type for unsigned integer values. This type is used automatically when an unsigned number is parsed. Furthermore, constructors, conversion operators and an is_number_unsigned() test have been added.
  • \ud83d\udc49 JSON Pointer (RFC 6901) support: A JSON Pointer is a string (similar to an XPath expression) to address a value inside a structured JSON value. JSON Pointers can be used in at() and operator[] functions. Furthermore, JSON values can be \u201cflattened\u201d to key/value pairs using flatten() where each key is a JSON Pointer. The original value can be restored by \u201cunflattening\u201d the flattened value using unflatten().
  • \ud83c\udfe5 JSON Patch (RFC 6902) support. A JSON Patch is a JSON value that describes the required edit operations (add, change, remove, \u2026) to transform a JSON value into another one. A JSON Patch can be created with function diff(const basic_json&) and applied with patch(const basic_json&). Note the created patches use a rather primitive algorithm so far and leave room for improvement.
  • \ud83c\uddea\ud83c\uddfa The code is now locale-independent: Floating-point numbers are always serialized with a period (.) as decimal separator and ignores different settings from the locale.
  • \ud83c\udf7a Homebrew support: Install the library with brew tap nlohmann/json && brew install nlohmann_json.
  • Added constructor to create a JSON value by parsing a std::istream (e.g., std::stringstream or std::ifstream).
  • Added noexcept specifier to basic_json(boolean_t), basic_json(const number_integer_t), basic_json(const int), basic_json(const number_float_t), iterator functions (begin(), end(), etc.)
  • When parsing numbers, the sign of 0.0 (vs. -0.0) is preserved.
  • Improved MSVC 2015, Android, and MinGW support. See README for more information.
  • Improved test coverage (added 2,225,386 tests).
  • Removed some misuses of std::move.
  • Fixed several compiler warnings.
  • Improved error messages from JSON parser.
  • Updated to re2c to version 0.16 to use a minimal DFAs for the lexer.
  • Updated test suite to use Catch version 1.5.6.
  • Made type getters (is_number, etc.) and const value access constexpr.
  • Functions push_back and operator+= now work with key/value pairs passed as initializer list, e.g. j_object += {\"key\", 1}.
  • Overworked CMakeLists.txt to make it easier to integrate the library into other projects.
"},{"location":"home/releases/#notes","title":"Notes","text":"
  • Parser error messages are still very vague and contain no information on the error location.
  • The implemented diff function is rather primitive and does not create minimal diffs.
  • The name of function iteration_wrapper may change in the future and the function will be deprecated in the next release.
  • Roundtripping (i.e., parsing a JSON value from a string, serializing it, and comparing the strings) of floating-point numbers is not 100% accurate. Note that RFC 8259 defines no format to internally represent numbers and states not requirement for roundtripping. Nevertheless, benchmarks like Native JSON Benchmark treat roundtripping deviations as conformance errors.
"},{"location":"home/releases/#v110","title":"v1.1.0","text":"

Files

  • json.hpp (257 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-01-24
  • SHA-256: c0cf0e3017798ca6bb18e757ebc570d21a3bdac877845e2b9e9573d183ed2f05
"},{"location":"home/releases/#summary_28","title":"Summary","text":"

This release fixes several small bugs and adds functionality in a backwards-compatible manner. Compared to the last version (1.0.0), the following changes have been made:

"},{"location":"home/releases/#changes_14","title":"Changes","text":"
  • Fixed: Floating-point numbers are now serialized and deserialized properly such that rountripping works in more cases. [#185, #186, #190, #191, #194]
  • Added: The code now contains assertions to detect undefined behavior during development. As the standard function assert is used, the assertions can be switched off by defining the preprocessor symbol NDEBUG during compilation. [#168]
  • Added: It is now possible to get a reference to the stored values via the newly added function get_ref(). [#128, #184]
  • Fixed: Access to object values via keys (operator[]) now works with all kind of string representations. [#171, #189]
  • Fixed: The code now compiles again with Microsoft Visual Studio 2015. [#144, #167, #188]
  • Fixed: All required headers are now included.
  • Fixed: Typos and other small issues. [#162, #166, #175, #177, #179, #180]
"},{"location":"home/releases/#notes_1","title":"Notes","text":"

There are still known open issues (#178, #187) which will be fixed in version 2.0.0. However, these fixes will require a small API change and will not be entirely backwards-compatible.

"},{"location":"home/releases/#v100","title":"v1.0.0","text":"

Files

  • json.hpp (243 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2015-12-28
  • SHA-256: 767dc2fab1819d7b9e19b6e456d61e38d21ef7182606ecf01516e3f5230446de
"},{"location":"home/releases/#summary_29","title":"Summary","text":"

This is the first official release. Compared to the prerelease version 1.0.0-rc1, only a few minor improvements have been made:

"},{"location":"home/releases/#changes_15","title":"Changes","text":"
  • Changed: A UTF-8 byte order mark is silently ignored.
  • Changed: sprintf is no longer used.
  • Changed: iterator_wrapper also works for const objects; note: the name may change!
  • Changed: Error messages during deserialization have been improved.
  • Added: The parse function now also works with type std::istream&&.
  • Added: Function value(key, default_value) returns either a copy of an object's element at the specified key or a given default value if no element with the key exists.
  • Added: Public functions are tagged with the version they were introduced. This shall allow for better versioning in the future.
  • Added: All public functions and types are documented (see http://nlohmann.github.io/json/doxygen/) including executable examples.
  • Added: Allocation of all types (in particular arrays, strings, and objects) is now exception-safe.
  • Added: They descriptions of thrown exceptions have been overworked and are part of the tests suite and documentation.
"},{"location":"home/sponsors/","title":"Sponsors","text":"

You can sponsor this library at GitHub Sponsors.

"},{"location":"home/sponsors/#named-sponsors","title":"Named Sponsors","text":"
  • Michael Hartmann
  • Stefan Hagen
  • Steve Sperandeo
  • Robert Jefe Lindst\u00e4dt
  • Steve Wagner

Thanks everyone!

"},{"location":"integration/","title":"Header only","text":"

json.hpp is the single required file in single_include/nlohmann or released here. You need to add

#include <nlohmann/json.hpp>\n\n// for convenience\nusing json = nlohmann::json;\n

to the files you want to process JSON and set the necessary switches to enable C++11 (e.g., -std=c++11 for GCC and Clang).

You can further use file single_include/nlohmann/json_fwd.hpp for forward declarations.

"},{"location":"integration/cmake/","title":"CMake","text":""},{"location":"integration/cmake/#integration","title":"Integration","text":"

You can use the nlohmann_json::nlohmann_json interface target in CMake. This target populates the appropriate usage requirements for INTERFACE_INCLUDE_DIRECTORIES to point to the appropriate include directories and INTERFACE_COMPILE_FEATURES for the necessary C++11 flags.

"},{"location":"integration/cmake/#external","title":"External","text":"

To use this library from a CMake project, you can locate it directly with find_package() and use the namespaced imported target from the generated package configuration:

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.1)\nproject(ExampleProject LANGUAGES CXX)\n\nfind_package(nlohmann_json 3.11.2 REQUIRED)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

The package configuration file, nlohmann_jsonConfig.cmake, can be used either from an install tree or directly out of the build tree.

"},{"location":"integration/cmake/#embedded","title":"Embedded","text":"

To embed the library directly into an existing CMake project, place the entire source tree in a subdirectory and call add_subdirectory() in your CMakeLists.txt file.

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.1)\nproject(ExampleProject LANGUAGES CXX)\n\n# If you only include this third party in PRIVATE source files, you do not need to install it\n# when your main project gets installed.\nset(JSON_Install OFF CACHE INTERNAL \"\")\n\nadd_subdirectory(nlohmann_json)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

Note

Do not use include(nlohmann_json/CMakeLists.txt), since that carries with it unintended consequences that will break the build. It is generally discouraged (although not necessarily well documented as such) to use include(...) for pulling in other CMake projects anyways.

"},{"location":"integration/cmake/#supporting-both","title":"Supporting Both","text":"

To allow your project to support either an externally supplied or an embedded JSON library, you can use a pattern akin to the following.

Example

CMakeLists.txt
project(ExampleProject LANGUAGES CXX)\n\noption(EXAMPLE_USE_EXTERNAL_JSON \"Use an external JSON library\" OFF)\n\nadd_subdirectory(thirdparty)\n\nadd_executable(example example.cpp)\n\n# Note that the namespaced target will always be available regardless of the import method\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n
thirdparty/CMakeLists.txt
if(EXAMPLE_USE_EXTERNAL_JSON)\n    find_package(nlohmann_json 3.11.2 REQUIRED)\nelse()\n    set(JSON_BuildTests OFF CACHE INTERNAL \"\")\n    add_subdirectory(nlohmann_json)\nendif()\n

thirdparty/nlohmann_json is then a complete copy of this source tree.

"},{"location":"integration/cmake/#fetchcontent","title":"FetchContent","text":"

Since CMake v3.11, FetchContent can be used to automatically download a release as a dependency at configure type.

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.11)\nproject(ExampleProject LANGUAGES CXX)\n\ninclude(FetchContent)\n\nFetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.2/json.tar.xz)\nFetchContent_MakeAvailable(json)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

Note

It is recommended to use the URL approach described above which is supported as of version 3.10.0. It is also possible to pass the Git repository like

FetchContent_Declare(json\n    GIT_REPOSITORY https://github.com/nlohmann/json\n    GIT_TAG v3.11.2\n)\n

However, the repository https://github.com/nlohmann/json download size is quite large. You might want to depend on a smaller repository. For instance, you might want to replace the URL in the example by https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent.

"},{"location":"integration/cmake/#cmake-options","title":"CMake Options","text":""},{"location":"integration/cmake/#json_buildtests","title":"JSON_BuildTests","text":"

Build the unit tests when BUILD_TESTING is enabled. This option is ON by default if the library's CMake project is the top project. That is, when integrating the library as described above, the test suite is not built unless explicitly switched on with this option.

"},{"location":"integration/cmake/#json_ci","title":"JSON_CI","text":"

Enable CI build targets. The exact targets are used during the several CI steps and are subject to change without notice. This option is OFF by default.

"},{"location":"integration/cmake/#json_diagnostics","title":"JSON_Diagnostics","text":"

Enable extended diagnostic messages by defining macro JSON_DIAGNOSTICS. This option is OFF by default.

"},{"location":"integration/cmake/#json_disableenumserialization","title":"JSON_DisableEnumSerialization","text":"

Disable default enum serialization by defining the macro JSON_DISABLE_ENUM_SERIALIZATION. This option is OFF by default.

"},{"location":"integration/cmake/#json_fasttests","title":"JSON_FastTests","text":"

Skip expensive/slow test suites. This option is OFF by default. Depends on JSON_BuildTests.

"},{"location":"integration/cmake/#json_globaludls","title":"JSON_GlobalUDLs","text":"

Place user-defined string literals in the global namespace by defining the macro JSON_USE_GLOBAL_UDLS. This option is OFF by default.

"},{"location":"integration/cmake/#json_implicitconversions","title":"JSON_ImplicitConversions","text":"

Enable implicit conversions by defining macro JSON_USE_IMPLICIT_CONVERSIONS. This option is ON by default.

"},{"location":"integration/cmake/#json_install","title":"JSON_Install","text":"

Install CMake targets during install step. This option is ON by default if the library's CMake project is the top project.

"},{"location":"integration/cmake/#json_multipleheaders","title":"JSON_MultipleHeaders","text":"

Use non-amalgamated version of the library. This option is OFF by default.

"},{"location":"integration/cmake/#json_systeminclude","title":"JSON_SystemInclude","text":"

Treat the library headers like system headers (i.e., adding SYSTEM to the target_include_directories call) to checks for this library by tools like Clang-Tidy. This option is OFF by default.

"},{"location":"integration/cmake/#json_valgrind","title":"JSON_Valgrind","text":"

Execute test suite with Valgrind. This option is OFF by default. Depends on JSON_BuildTests.

"},{"location":"integration/migration_guide/","title":"Migration Guide","text":"

This page collects some guidelines on how to future-proof your code for future versions of this library.

"},{"location":"integration/migration_guide/#replace-deprecated-functions","title":"Replace deprecated functions","text":"

The following functions have been deprecated and will be removed in the next major version (i.e., 4.0.0). All deprecations are annotated with HEDLEY_DEPRECATED_FOR to report which function to use instead.

"},{"location":"integration/migration_guide/#parsing","title":"Parsing","text":"
  • Function friend std::istream& operator<<(basic_json&, std::istream&) is deprecated since 3.0.0. Please use friend std::istream& operator>>(std::istream&, basic_json&) instead.

    DeprecatedFuture-proof
    nlohmann::json j;\nstd::stringstream ss(\"[1,2,3]\");\nj << ss;\n
    nlohmann::json j;\nstd::stringstream ss(\"[1,2,3]\");\nss >> j;\n
  • Passing iterator pairs or pointer/length pairs to parsing functions (parse, accept, sax_parse, from_cbor, from_msgpack, from_ubjson, and from_bson via initializer lists is deprecated since 3.8.0. Instead, pass two iterators; for instance, call from_cbor(ptr, ptr+len) instead of from_cbor({ptr, len}).

    DeprecatedFuture-proof
    const char* s = \"[1,2,3]\";\nbool ok = nlohmann::json::accept({s, s + std::strlen(s)});\n
    const char* s = \"[1,2,3]\";\nbool ok = nlohmann::json::accept(s, s + std::strlen(s));\n
"},{"location":"integration/migration_guide/#json-pointers","title":"JSON Pointers","text":"
  • Comparing JSON Pointers with strings via operator== and operator!= is deprecated since 3.11.2. To compare a json_pointer p with a string s, convert s to a json_pointer first and use json_pointer::operator== or json_pointer::operator!=.

    DeprecatedFuture-proof
    nlohmann::json::json_pointer lhs(\"/foo/bar/1\");\nassert(lhs == \"/foo/bar/1\");\n
    nlohmann::json::json_pointer lhs(\"/foo/bar/1\");\nassert(lhs == nlohmann::json::json_pointer(\"/foo/bar/1\"));\n
  • The implicit conversion from JSON Pointers to string (json_pointer::operator string_t) is deprecated since 3.11.0. Use json_pointer::to_string instead.

    DeprecatedFuture-proof
    nlohmann::json::json_pointer ptr(\"/foo/bar/1\");\nstd::string s = ptr;\n
    nlohmann::json::json_pointer ptr(\"/foo/bar/1\");\nstd::string s = ptr.to_string();\n
  • Passing a basic_json specialization as template parameter RefStringType to json_pointer is deprecated since 3.11.0. The string type can now be directly provided.

    DeprecatedFuture-proof
    using my_json = nlohmann::basic_json<std::map, std::vector, my_string_type>;\nnlohmann::json_pointer<my_json> ptr(\"/foo/bar/1\");\n
    nlohmann::json_pointer<my_string_type> ptr(\"/foo/bar/1\");\n

    Thereby, nlohmann::my_json::json_pointer is an alias for nlohmann::json_pointer<my_string_type> and is always an alias to the json_pointer with the appropriate string type for all specializations of basic_json.

"},{"location":"integration/migration_guide/#miscellaneous-functions","title":"Miscellaneous functions","text":"
  • The function iterator_wrapper is deprecated since 3.1.0. Please use the member function items instead.

    DeprecatedFuture-proof
    for (auto &x : nlohmann::json::iterator_wrapper(j))\n{\n    std::cout << x.key() << \":\" << x.value() << std::endl;\n}\n
    for (auto &x : j.items())\n{\n    std::cout << x.key() << \":\" << x.value() << std::endl;\n}\n
  • Function friend std::ostream& operator>>(const basic_json&, std::ostream&) is deprecated since 3.0.0. Please use friend operator<<(std::ostream&, const basic_json&) instead.

    DeprecatedFuture-proof
    j >> std::cout;\n
    std::cout << j;\n
  • The legacy comparison behavior for discarded values is deprecated since 3.11.0. It is already disabled by default and can still be enabled by defining JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON to 1.

    DeprecatedFuture-proof
    #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 1\n#include <nlohmann/json.hpp>\n
    #include <nlohmann/json.hpp>\n
"},{"location":"integration/migration_guide/#replace-implicit-conversions","title":"Replace implicit conversions","text":"

Implicit conversions via operator ValueType will be switched off by default in the next major release of the library.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get, get_to, get_ref, or get_ptr.

DeprecatedFuture-proofFuture-proof (alternative)
nlohmann::json j = \"Hello, world!\";\nstd::string s = j;\n
nlohmann::json j = \"Hello, world!\";\nauto s = j.template get<std::string>();\n
nlohmann::json j = \"Hello, world!\";\nstd::string s;\nj.get_to(s);\n

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

"},{"location":"integration/migration_guide/#import-namespace-literals-for-udls","title":"Import namespace literals for UDLs","text":"

The user-defined string literals operator\"\"_json and operator\"\"_json_pointer will be removed from the global namespace in the next major release of the library.

DeprecatedFuture-proof
nlohmann::json j = \"[1,2,3]\"_json;\n
using namespace nlohmann::literals;\nnlohmann::json j = \"[1,2,3]\"_json;\n

To prepare existing code, define JSON_USE_GLOBAL_UDLS to 0 and bring the string literals into scope where needed.

"},{"location":"integration/migration_guide/#do-not-hard-code-the-complete-library-namespace","title":"Do not hard-code the complete library namespace","text":"

The nlohmann namespace contains a sub-namespace to avoid problems when different versions or configurations of the library are used in the same project. Always use nlohmann as namespace or, when the exact version and configuration is relevant, use macro NLOHMANN_JSON_NAMESPACE to denote the namespace.

DangerousFuture-proofFuture-proof (alternative)
void to_json(nlohmann::json_abi_v3_11_2::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
void to_json(nlohmann::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
void to_json(NLOHMANN_JSON_NAMESPACE::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
"},{"location":"integration/migration_guide/#do-not-use-the-details-namespace","title":"Do not use the details namespace","text":"

The details namespace is not part of the public API of the library and can change in any version without announcement. Do not rely on any function or type in the details namespace.

"},{"location":"integration/package_managers/","title":"Package Managers","text":"

Throughout this page, we will describe how to compile the example file example.cpp below.

#include <nlohmann/json.hpp>\n#include <iostream>\n#include <iomanip>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::setw(4) << json::meta() << std::endl;\n}\n

When executed, this program should create output similar to

{\n    \"compiler\": {\n        \"c++\": \"201103\",\n        \"family\": \"gcc\",\n        \"version\": \"12.1.0\"\n    },\n    \"copyright\": \"(C) 2013-2022 Niels Lohmann\",\n    \"name\": \"JSON for Modern C++\",\n    \"platform\": \"apple\",\n    \"url\": \"https://github.com/nlohmann/json\",\n    \"version\": {\n        \"major\": 3,\n        \"minor\": 11,\n        \"patch\": 2,\n        \"string\": \"3.11.2\"\n    }\n}\n
"},{"location":"integration/package_managers/#homebrew","title":"Homebrew","text":"

If you are using OS X and Homebrew, just type

brew install nlohmann-json\n

and you're set. If you want the bleeding edge rather than the latest release, use

brew install nlohmann-json --HEAD\n

instead. See nlohmann-json for more information.

Example
  1. Create the following file:

    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n#include <iomanip>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::setw(4) << json::meta() << std::endl;\n}\n
  2. Install the package

    brew install nlohmann-json\n
  3. Determine the include path, which defaults to /usr/local/Cellar/nlohmann-json/$version/include, where $version is the version of the library, e.g. 3.7.3. The path of the library can be determined with

    brew list nlohmann-json\n
  4. Compile the code. For instance, the code can be compiled using Clang with

    clang++ example.cpp -I/usr/local/Cellar/nlohmann-json/3.7.3/include -std=c++11 -o example\n

The formula is updated automatically.

"},{"location":"integration/package_managers/#meson","title":"Meson","text":"

If you are using the Meson Build System, add this source tree as a meson subproject. You may also use the include.zip published in this project's Releases to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from Meson WrapDB, or simply use meson wrap install nlohmann_json. Please see the meson project for any issues regarding the packaging.

The provided meson.build can also be used as an alternative to cmake for installing nlohmann_json system-wide in which case a pkg-config file is installed. To use it, simply have your build system require the nlohmann_json pkg-config dependency. In Meson, it is preferred to use the dependency() object with a subproject fallback, rather than using the subproject directly.

"},{"location":"integration/package_managers/#bazel","title":"Bazel","text":"

This repository provides a Bazel WORKSPACE.bazel and a corresponding BUILD.bazel file. Therefore, this repository can be referenced by workspace rules such as http_archive, git_repository, or local_repository from other Bazel workspaces. To use the library you only need to depend on the target @nlohmann_json//:json (e.g. via deps attribute).

"},{"location":"integration/package_managers/#conan","title":"Conan","text":"

If you are using Conan to manage your dependencies, merely add nlohmann_json/x.y.z to your conanfile's requires, where x.y.z is the release version you want to use. Please file issues here if you experience problems with the packages.

Example
  1. Create the following files:

    Conanfile.txt
    [requires]\nnlohmann_json/3.7.3\n\n[generators]\ncmake\n
    CMakeLists.txt
    project(json_example)\ncmake_minimum_required(VERSION 2.8.12)\nadd_definitions(\"-std=c++11\")\n\ninclude(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)\nconan_basic_setup()\n\nadd_executable(json_example example.cpp)\ntarget_link_libraries(json_example ${CONAN_LIBS})\n
    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << json::meta() << std::endl;\n}\n
  2. Build:

    mkdir build\ncd build\nconan install ..\ncmake ..\ncmake --build .\n

The package is updated automatically.

"},{"location":"integration/package_managers/#spack","title":"Spack","text":"

If you are using Spack to manage your dependencies, you can use the nlohmann-json package. Please see the spack project for any issues regarding the packaging.

"},{"location":"integration/package_managers/#hunter","title":"Hunter","text":"

If you are using hunter on your project for external dependencies, then you can use the nlohmann_json package. Please see the hunter project for any issues regarding the packaging.

"},{"location":"integration/package_managers/#buckaroo","title":"Buckaroo","text":"

If you are using Buckaroo, you can install this library's module with buckaroo add github.com/buckaroo-pm/nlohmann-json. Please file issues here. There is a demo repo here.

"},{"location":"integration/package_managers/#vcpkg","title":"vcpkg","text":"

If you are using vcpkg on your project for external dependencies, then you can install the nlohmann-json package with vcpkg install nlohmann-json and follow the then displayed descriptions. Please see the vcpkg project for any issues regarding the packaging.

Example
  1. Create the following files:

    CMakeLists.txt
    project(json_example)\ncmake_minimum_required(VERSION 2.8.12)\n\nfind_package(nlohmann_json CONFIG REQUIRED)\n\nadd_executable(json_example example.cpp)\ntarget_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json)\n
    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << json::meta() << std::endl;\n}\n
  2. Install package:

    vcpkg install nlohmann-json\n
  3. Build:

    mkdir build\ncd build\ncmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake\ncmake --build .\n

Note you need to adjust /path/to/vcpkg/scripts/buildsystems/vcpkg.cmake to your system.

"},{"location":"integration/package_managers/#cget","title":"cget","text":"

If you are using cget, you can install the latest development version with cget install nlohmann/json. A specific version can be installed with cget install nlohmann/json@v3.1.0. Also, the multiple header version can be installed by adding the -DJSON_MultipleHeaders=ON flag (i.e., cget install nlohmann/json -DJSON_MultipleHeaders=ON).

cget reads directly from the GitHub repository and is always up-to-date.

"},{"location":"integration/package_managers/#cocoapods","title":"CocoaPods","text":"

If you are using CocoaPods, you can use the library by adding pod \"nlohmann_json\", '~>3.1.2' to your podfile (see an example). Please file issues here.

"},{"location":"integration/package_managers/#nuget","title":"NuGet","text":"

If you are using NuGet, you can use the package nlohmann.json. Please check this extensive description on how to use the package. Please file issues here.

"},{"location":"integration/package_managers/#conda","title":"Conda","text":"

If you are using conda, you can use the package nlohmann_json from conda-forge executing conda install -c conda-forge nlohmann_json. Please file issues here.

"},{"location":"integration/package_managers/#msys2","title":"MSYS2","text":"

If you are using MSYS2, you can use the mingw-w64-nlohmann-json package, just type pacman -S mingw-w64-i686-nlohmann-json or pacman -S mingw-w64-x86_64-nlohmann-json for installation. Please file issues here if you experience problems with the packages.

The package is updated automatically.

"},{"location":"integration/package_managers/#macports","title":"MacPorts","text":"

If you are using MacPorts, execute sudo port install nlohmann-json to install the nlohmann-json package.

The package is updated automatically.

"},{"location":"integration/package_managers/#build2","title":"build2","text":"

If you are using build2, you can use the nlohmann-json package from the public repository http://cppget.org or directly from the package's sources repository. In your project's manifest file, just add depends: nlohmann-json (probably with some version constraints). If you are not familiar with using dependencies in build2, please read this introduction. Please file issues here if you experience problems with the packages.

The package is updated automatically.

"},{"location":"integration/package_managers/#wsjcpp","title":"wsjcpp","text":"

If you are using wsjcpp, you can use the command wsjcpp install \"https://github.com/nlohmann/json:develop\" to get the latest version. Note you can change the branch \":develop\" to an existing tag or another branch.

wsjcpp reads directly from the GitHub repository and is always up-to-date.

"},{"location":"integration/package_managers/#cpmcmake","title":"CPM.cmake","text":"

If you are using CPM.cmake, you can check this example. After adding CPM script to your project, implement the following snippet to your CMake:

CPMAddPackage(\n    NAME nlohmann_json\n    GITHUB_REPOSITORY nlohmann/json\n    VERSION 3.9.1)\n
"},{"location":"integration/pkg-config/","title":"Pkg-config","text":"

If you are using bare Makefiles, you can use pkg-config to generate the include flags that point to where the library is installed:

pkg-config nlohmann_json --cflags\n

Users of the Meson build system will also be able to use a system-wide library, which will be found by pkg-config:

json = dependency('nlohmann_json', required: true)\n
"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-\\.]","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"JSON for Modern C++","text":""},{"location":"api/json/","title":"nlohmann::json","text":"
using json = basic_json<>;\n

This type is the default specialization of the basic_json class which uses the standard template types.

"},{"location":"api/json/#examples","title":"Examples","text":"Example

The example below demonstrates how to use the type nlohmann::json.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // add new values\n    j[\"new\"][\"key\"][\"value\"] = {\"another\", \"list\"};\n\n    // count elements\n    auto s = j.size();\n    j[\"size\"] = s;\n\n    // pretty print with indent of 4 spaces\n    std::cout << std::setw(4) << j << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"new\": {\n        \"key\": {\n            \"value\": [\n                \"another\",\n                \"list\"\n            ]\n        }\n    },\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141,\n    \"size\": 8\n}\n
"},{"location":"api/json/#version-history","title":"Version history","text":"

Since version 1.0.0.

"},{"location":"api/operator_gtgt/","title":"nlohmann::operator>>(basic_json)","text":"
std::istream& operator>>(std::istream& i, basic_json& j);\n

Deserializes an input stream to a JSON value.

"},{"location":"api/operator_gtgt/#parameters","title":"Parameters","text":"i (in, out) input stream to read a serialized JSON value from j (in, out) JSON value to write the deserialized input to"},{"location":"api/operator_gtgt/#return-value","title":"Return value","text":"

the stream i

"},{"location":"api/operator_gtgt/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.101 in case of an unexpected token.
  • Throws parse_error.102 if to_unicode fails or surrogate error.
  • Throws parse_error.103 if to_unicode fails.
"},{"location":"api/operator_gtgt/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser.

"},{"location":"api/operator_gtgt/#notes","title":"Notes","text":"

A UTF-8 byte order mark is silently ignored.

Deprecation

This function replaces function std::istream& operator<<(basic_json& j, std::istream& i) which has been deprecated in version 3.0.0. It will be removed in version 4.0.0. Please replace calls like j << i; with i >> j;.

"},{"location":"api/operator_gtgt/#examples","title":"Examples","text":"Example

The example below shows how a JSON value is constructed by reading a serialization from a stream.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create stream with serialized JSON\n    std::stringstream ss;\n    ss << R\"({\n        \"number\": 23,\n        \"string\": \"Hello, world!\",\n        \"array\": [1, 2, 3, 4, 5],\n        \"boolean\": false,\n        \"null\": null\n    })\";\n\n    // create JSON value and read the serialization from the stream\n    json j;\n    ss >> j;\n\n    // serialize JSON\n    std::cout << std::setw(2) << j << '\\n';\n}\n

Output:

{\n  \"array\": [\n    1,\n    2,\n    3,\n    4,\n    5\n  ],\n  \"boolean\": false,\n  \"null\": null,\n  \"number\": 23,\n  \"string\": \"Hello, world!\"\n}\n
"},{"location":"api/operator_gtgt/#see-also","title":"See also","text":"
  • accept - check if the input is valid JSON
  • parse - deserialize from a compatible input
"},{"location":"api/operator_gtgt/#version-history","title":"Version history","text":"
  • Added in version 1.0.0. Deprecated in version 3.0.0.
"},{"location":"api/operator_literal_json/","title":"nlohmann::operator\"\"_json","text":"
json operator \"\"_json(const char* s, std::size_t n);\n

This operator implements a user-defined string literal for JSON objects. It can be used by adding _json to a string literal and returns a json object if no parse error occurred.

It is recommended to bring the operator into scope using any of the following lines:

using nlohmann::literals::operator \"\"_json;\nusing namespace nlohmann::literals;\nusing namespace nlohmann::json_literals;\nusing namespace nlohmann::literals::json_literals;\nusing namespace nlohmann;\n

This is suggested to ease migration to the next major version release of the library. See 'JSON_USE_GLOBAL_UDLS` for details.

"},{"location":"api/operator_literal_json/#parameters","title":"Parameters","text":"s (in) a string representation of a JSON object n (in) length of string s"},{"location":"api/operator_literal_json/#return-value","title":"Return value","text":"

json value parsed from s

"},{"location":"api/operator_literal_json/#exceptions","title":"Exceptions","text":"

The function can throw anything that parse(s, s+n) would throw.

"},{"location":"api/operator_literal_json/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_literal_json/#examples","title":"Examples","text":"Example

The following code shows how to create JSON values from string literals.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    json j = R\"( {\"hello\": \"world\", \"answer\": 42} )\"_json;\n\n    std::cout << std::setw(2) << j << '\\n';\n}\n

Output:

{\n  \"answer\": 42,\n  \"hello\": \"world\"\n}\n
"},{"location":"api/operator_literal_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Moved to namespace nlohmann::literals::json_literals in 3.11.0.
"},{"location":"api/operator_literal_json_pointer/","title":"nlohmann::operator\"\"_json_pointer","text":"
json_pointer operator \"\"_json_pointer(const char* s, std::size_t n);\n

This operator implements a user-defined string literal for JSON Pointers. It can be used by adding _json_pointer to a string literal and returns a json_pointer object if no parse error occurred.

It is recommended to bring the operator into scope using any of the following lines:

using nlohmann::literals::operator \"\"_json_pointer;\nusing namespace nlohmann::literals;\nusing namespace nlohmann::json_literals;\nusing namespace nlohmann::literals::json_literals;\nusing namespace nlohmann;\n
This is suggested to ease migration to the next major version release of the library. See 'JSON_USE_GLOBAL_UDLS` for details.

"},{"location":"api/operator_literal_json_pointer/#parameters","title":"Parameters","text":"s (in) a string representation of a JSON Pointer n (in) length of string s"},{"location":"api/operator_literal_json_pointer/#return-value","title":"Return value","text":"

json_pointer value parsed from s

"},{"location":"api/operator_literal_json_pointer/#exceptions","title":"Exceptions","text":"

The function can throw anything that json_pointer::json_pointer would throw.

"},{"location":"api/operator_literal_json_pointer/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_literal_json_pointer/#examples","title":"Examples","text":"Example

The following code shows how to create JSON Pointers from string literals.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    json j = R\"( {\"hello\": \"world\", \"answer\": 42} )\"_json;\n    auto val = j[\"/hello\"_json_pointer];\n\n    std::cout << std::setw(2) << val << '\\n';\n}\n

Output:

\"world\"\n
"},{"location":"api/operator_literal_json_pointer/#see-also","title":"See also","text":"
  • json_pointer - type to represent JSON Pointers
"},{"location":"api/operator_literal_json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Moved to namespace nlohmann::literals::json_literals in 3.11.0.
"},{"location":"api/operator_ltlt/","title":"nlohmann::operator<<(basic_json), nlohmann::operator<<(json_pointer)","text":"
std::ostream& operator<<(std::ostream& o, const basic_json& j);      // (1)\n\nstd::ostream& operator<<(std::ostream& o, const json_pointer& ptr);  // (2)\n
  1. Serialize the given JSON value j to the output stream o. The JSON value will be serialized using the dump member function.
    • The indentation of the output can be controlled with the member variable width of the output stream o. For instance, using the manipulator std::setw(4) on o sets the indentation level to 4 and the serialization result is the same as calling dump(4).
    • The indentation character can be controlled with the member variable fill of the output stream o. For instance, the manipulator std::setfill('\\\\t') sets indentation to use a tab character rather than the default space character.
  2. Write a string representation of the given JSON pointer ptr to the output stream o. The string representation is obtained using the to_string member function.
"},{"location":"api/operator_ltlt/#parameters","title":"Parameters","text":"o (in, out) stream to write to j (in) JSON value to serialize ptr (in) JSON pointer to write"},{"location":"api/operator_ltlt/#return-value","title":"Return value","text":"

the stream o

"},{"location":"api/operator_ltlt/#exceptions","title":"Exceptions","text":"
  1. Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded. Note that unlike the dump member functions, no error_handler can be set.
  2. None.
"},{"location":"api/operator_ltlt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/operator_ltlt/#notes","title":"Notes","text":"

Deprecation

Function std::ostream& operator<<(std::ostream& o, const basic_json& j) replaces function std::ostream& operator>>(const basic_json& j, std::ostream& o) which has been deprecated in version 3.0.0. It will be removed in version 4.0.0. Please replace calls like j >> o; with o << j;.

"},{"location":"api/operator_ltlt/#examples","title":"Examples","text":"Example: (1) serialize JSON value to stream

The example below shows the serialization with different parameters to width to adjust the indentation level.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n\n    // serialize without indentation\n    std::cout << j_object << \"\\n\\n\";\n    std::cout << j_array << \"\\n\\n\";\n\n    // serialize with indentation\n    std::cout << std::setw(4) << j_object << \"\\n\\n\";\n    std::cout << std::setw(2) << j_array << \"\\n\\n\";\n    std::cout << std::setw(1) << std::setfill('\\t') << j_object << \"\\n\\n\";\n}\n

Output:

{\"one\":1,\"two\":2}\n\n[1,2,4,8,16]\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\n[\n  1,\n  2,\n  4,\n  8,\n  16\n]\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n
Example: (2) write JSON pointer to stream

The example below shows how to write a JSON pointer to a stream.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON poiner\n    json::json_pointer ptr(\"/foo/bar/baz\");\n\n    // write string representation to stream\n    std::cout << ptr << std::endl;\n}\n

Output:

/foo/bar/baz\n
"},{"location":"api/operator_ltlt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added support for indentation character and deprecated std::ostream& operator>>(const basic_json& j, std::ostream& o) in version 3.0.0.
  2. Added in version 3.11.0.
"},{"location":"api/ordered_json/","title":"nlohmann::ordered_json","text":"
using ordered_json = basic_json<ordered_map>;\n

This type preserves the insertion order of object keys.

"},{"location":"api/ordered_json/#examples","title":"Examples","text":"Example

The example below demonstrates how ordered_json preserves the insertion order of object keys.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing ordered_json = nlohmann::ordered_json;\n\nint main()\n{\n    ordered_json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n
"},{"location":"api/ordered_json/#see-also","title":"See also","text":"
  • ordered_map
  • Object Order
"},{"location":"api/ordered_json/#version-history","title":"Version history","text":"

Since version 3.9.0.

"},{"location":"api/ordered_map/","title":"nlohmann::ordered_map","text":"
template<class Key, class T, class IgnoredLess = std::less<Key>,\n         class Allocator = std::allocator<std::pair<const Key, T>>>\nstruct ordered_map : std::vector<std::pair<const Key, T>, Allocator>;\n

A minimal map-like container that preserves insertion order for use within nlohmann::ordered_json (nlohmann::basic_json<ordered_map>).

"},{"location":"api/ordered_map/#template-parameters","title":"Template parameters","text":"Key key type T mapped type IgnoredLess comparison function (ignored and only added to ensure compatibility with std::map) Allocator allocator type"},{"location":"api/ordered_map/#member-types","title":"Member types","text":"
  • key_type - key type (Key)
  • mapped_type - mapped type (T)
  • Container - base container type (std::vector<std::pair<const Key, T>, Allocator>)
  • iterator
  • const_iterator
  • size_type
  • value_type
  • key_compare - key comparison function
    std::equal_to<Key>  // until C++14\n\nstd::equal_to<>     // since C++14\n
"},{"location":"api/ordered_map/#member-functions","title":"Member functions","text":"
  • (constructor)
  • (destructor)
  • emplace
  • operator[]
  • at
  • erase
  • count
  • find
  • insert
"},{"location":"api/ordered_map/#examples","title":"Examples","text":"Example

The example shows the different behavior of std::map and nlohmann::ordered_map.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// simple output function\ntemplate<typename Map>\nvoid output(const char* prefix, const Map& m)\n{\n    std::cout << prefix << \" = { \";\n    for (auto& element : m)\n    {\n        std::cout << element.first << \":\" << element.second << ' ';\n    }\n    std::cout << \"}\" << std::endl;\n}\n\nint main()\n{\n    // create and fill two maps\n    nlohmann::ordered_map<std::string, std::string> m_ordered;\n    m_ordered[\"one\"] = \"eins\";\n    m_ordered[\"two\"] = \"zwei\";\n    m_ordered[\"three\"] = \"drei\";\n\n    std::map<std::string, std::string> m_std;\n    m_std[\"one\"] = \"eins\";\n    m_std[\"two\"] = \"zwei\";\n    m_std[\"three\"] = \"drei\";\n\n    // output: m_ordered is ordered by insertion order, m_std is ordered by key\n    output(\"m_ordered\", m_ordered);\n    output(\"m_std\", m_std);\n\n    // erase and re-add \"one\" key\n    m_ordered.erase(\"one\");\n    m_ordered[\"one\"] = \"eins\";\n\n    m_std.erase(\"one\");\n    m_std[\"one\"] = \"eins\";\n\n    // output: m_ordered shows newly added key at the end; m_std is again ordered by key\n    output(\"m_ordered\", m_ordered);\n    output(\"m_std\", m_std);\n}\n

Output:

m_ordered = { one:eins two:zwei three:drei }\nm_std = { one:eins three:drei two:zwei }\nm_ordered = { two:zwei three:drei one:eins }\nm_std = { one:eins three:drei two:zwei }\n
"},{"location":"api/ordered_map/#see-also","title":"See also","text":"
  • ordered_json
"},{"location":"api/ordered_map/#version-history","title":"Version history","text":"
  • Added in version 3.9.0 to implement nlohmann::ordered_json.
  • Added key_compare member in version 3.11.0.
"},{"location":"api/adl_serializer/","title":"nlohmann::adl_serializer","text":"
template<typename, typename>\nstruct adl_serializer;\n

Serializer that uses ADL (Argument-Dependent Lookup) to choose to_json/from_json functions from the types' namespaces.

It is implemented similar to

template<typename ValueType>\nstruct adl_serializer {\n    template<typename BasicJsonType>\n    static void to_json(BasicJsonType& j, const T& value) {\n        // calls the \"to_json\" method in T's namespace\n    }\n\n    template<typename BasicJsonType>\n    static void from_json(const BasicJsonType& j, T& value) {\n        // same thing, but with the \"from_json\" method\n    }\n};\n
"},{"location":"api/adl_serializer/#member-functions","title":"Member functions","text":"
  • from_json - convert a JSON value to any value type
  • to_json - convert any value type to a JSON value
"},{"location":"api/adl_serializer/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/adl_serializer/from_json/","title":"nlohmann::adl_serializer::from_json","text":"
// (1)\ntemplate<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))\n-> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void())\n\n// (2)\ntemplate<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto from_json(BasicJsonType && j) noexcept(\nnoexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {})))\n-> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {}))\n

This function is usually called by the get() function of the basic_json class (either explicitly or via the conversion operators).

  1. This function is chosen for default-constructible value types.
  2. This function is chosen for value types which are not default-constructible.
"},{"location":"api/adl_serializer/from_json/#parameters","title":"Parameters","text":"j (in) JSON value to read from val (out) value to write to"},{"location":"api/adl_serializer/from_json/#return-value","title":"Return value","text":"

Copy of the JSON value, converted to ValueType

"},{"location":"api/adl_serializer/from_json/#examples","title":"Examples","text":"Example: (1) Default-constructible type

The example below shows how a from_json function can be implemented for a user-defined type. This function is called by the adl_serializer when template get<ns::person>() is called.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace ns\n{\nvoid from_json(const json& j, person& p)\n{\n    j.at(\"name\").get_to(p.name);\n    j.at(\"address\").get_to(p.address);\n    j.at(\"age\").get_to(p.age);\n}\n} // namespace ns\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
Example: (2) Non-default-constructible type

The example below shows how a from_json is implemented as part of a specialization of the adl_serializer to realize the conversion of a non-default-constructible type.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person (not default constructible)\nstruct person\n{\n    person(std::string n, std::string a, int aa)\n        : name(std::move(n)), address(std::move(a)), age(aa)\n    {}\n\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace nlohmann\n{\ntemplate <>\nstruct adl_serializer<ns::person>\n{\n    static ns::person from_json(const json& j)\n    {\n        return {j.at(\"name\"), j.at(\"address\"), j.at(\"age\")};\n    }\n\n    // Here's the catch! You must provide a to_json method! Otherwise, you\n    // will not be able to convert person to json, since you fully\n    // specialized adl_serializer on that type\n    static void to_json(json& j, ns::person p)\n    {\n        j[\"name\"] = p.name;\n        j[\"address\"] = p.address;\n        j[\"age\"] = p.age;\n    }\n};\n} // namespace nlohmann\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
"},{"location":"api/adl_serializer/from_json/#see-also","title":"See also","text":"
  • to_json
"},{"location":"api/adl_serializer/from_json/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/adl_serializer/to_json/","title":"nlohmann::adl_serializer::to_json","text":"
template<typename BasicJsonType, typename TargetType = ValueType>\nstatic auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n    noexcept(::nlohmann::to_json(j, std::forward<TargetType>(val))))\n-> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)), void())\n

This function is usually called by the constructors of the basic_json class.

"},{"location":"api/adl_serializer/to_json/#parameters","title":"Parameters","text":"j (out) JSON value to write to val (in) value to read from"},{"location":"api/adl_serializer/to_json/#examples","title":"Examples","text":"Example

The example below shows how a to_json function can be implemented for a user-defined type. This function is called by the adl_serializer when the constructor basic_json(ns::person) is called.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace ns\n{\nvoid to_json(json& j, const person& p)\n{\n    j = json{ {\"name\", p.name}, {\"address\", p.address}, {\"age\", p.age} };\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    json j = p;\n\n    std::cout << j << std::endl;\n}\n

Output:

{\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n
"},{"location":"api/adl_serializer/to_json/#see-also","title":"See also","text":"
  • from_json
"},{"location":"api/adl_serializer/to_json/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/basic_json/","title":"nlohmann::basic_json","text":"

Defined in header <nlohmann/json.hpp>

template<\n    template<typename U, typename V, typename... Args> class ObjectType = std::map,\n    template<typename U, typename... Args> class ArrayType = std::vector,\n    class StringType = std::string,\n    class BooleanType = bool,\n    class NumberIntegerType = std::int64_t,\n    class NumberUnsignedType = std::uint64_t,\n    class NumberFloatType = double,\n    template<typename U> class AllocatorType = std::allocator,\n    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer,\n    class BinaryType = std::vector<std::uint8_t>,\n    class CustomBaseClass = void\n>\nclass basic_json;\n
"},{"location":"api/basic_json/#template-parameters","title":"Template parameters","text":"Template parameter Description Derived type ObjectType type for JSON objects object_t ArrayType type for JSON arrays array_t StringType type for JSON strings and object keys string_t BooleanType type for JSON booleans boolean_t NumberIntegerType type for JSON integer numbers number_integer_t NumberUnsignedType type for JSON unsigned integer numbers number_unsigned_t NumberFloatType type for JSON floating-point numbers number_float_t AllocatorType type of the allocator to use JSONSerializer the serializer to resolve internal calls to to_json() and from_json() json_serializer BinaryType type for binary arrays binary_t CustomBaseClass extension point for user code json_base_class_t"},{"location":"api/basic_json/#specializations","title":"Specializations","text":"
  • json - default specialization
  • ordered_json - specialization that maintains the insertion order of object keys
"},{"location":"api/basic_json/#iterator-invalidation","title":"Iterator invalidation","text":"

Todo

"},{"location":"api/basic_json/#requirements","title":"Requirements","text":"

The class satisfies the following concept requirements:

"},{"location":"api/basic_json/#basic","title":"Basic","text":"
  • DefaultConstructible: JSON values can be default constructed. The result will be a JSON null value.
  • MoveConstructible: A JSON value can be constructed from an rvalue argument.
  • CopyConstructible: A JSON value can be copy-constructed from an lvalue expression.
  • MoveAssignable: A JSON value can be assigned from an rvalue argument.
  • CopyAssignable: A JSON value can be copy-assigned from an lvalue expression.
  • Destructible: JSON values can be destructed.
"},{"location":"api/basic_json/#layout","title":"Layout","text":"
  • StandardLayoutType: JSON values have standard layout: All non-static data members are private and standard layout types, the class has no virtual functions or (virtual) base classes.
"},{"location":"api/basic_json/#library-wide","title":"Library-wide","text":"
  • EqualityComparable: JSON values can be compared with ==, see operator==.
  • LessThanComparable: JSON values can be compared with <, see operator<.
  • Swappable: Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of other compatible types, using unqualified function swap.
  • NullablePointer: JSON values can be compared against std::nullptr_t objects which are used to model the null value.
"},{"location":"api/basic_json/#container","title":"Container","text":"
  • Container: JSON values can be used like STL containers and provide iterator access.
  • ReversibleContainer: JSON values can be used like STL containers and provide reverse iterator access.
"},{"location":"api/basic_json/#member-types","title":"Member types","text":"
  • adl_serializer - the default serializer
  • value_t - the JSON type enumeration
  • json_pointer - JSON Pointer implementation
  • json_serializer - type of the serializer to for conversions from/to JSON
  • error_handler_t - type to choose behavior on decoding errors
  • cbor_tag_handler_t - type to choose how to handle CBOR tags
  • initializer_list_t - type for initializer lists of basic_json values
  • input_format_t - type to choose the format to parse
  • json_sax_t - type for SAX events
"},{"location":"api/basic_json/#exceptions","title":"Exceptions","text":"
  • exception - general exception of the basic_json class
    • parse_error - exception indicating a parse error
    • invalid_iterator - exception indicating errors with iterators
    • type_error - exception indicating executing a member function with a wrong type
    • out_of_range - exception indicating access out of the defined range
    • other_error - exception indicating other library errors
"},{"location":"api/basic_json/#container-types","title":"Container types","text":"Type Definition value_type basic_json reference value_type& const_reference const value_type& difference_type std::ptrdiff_t size_type std::size_t allocator_type AllocatorType<basic_json> pointer std::allocator_traits<allocator_type>::pointer const_pointer std::allocator_traits<allocator_type>::const_pointer iterator LegacyBidirectionalIterator const_iterator constant LegacyBidirectionalIterator reverse_iterator reverse iterator, derived from iterator const_reverse_iterator reverse iterator, derived from const_iterator iteration_proxy helper type for items function"},{"location":"api/basic_json/#json-value-data-types","title":"JSON value data types","text":"
  • array_t - type for arrays
  • binary_t - type for binary arrays
  • boolean_t - type for booleans
  • default_object_comparator_t - default comparator for objects
  • number_float_t - type for numbers (floating-point)
  • number_integer_t - type for numbers (integer)
  • number_unsigned_t - type for numbers (unsigned)
  • object_comparator_t - comparator for objects
  • object_t - type for objects
  • string_t - type for strings
"},{"location":"api/basic_json/#parser-callback","title":"Parser callback","text":"
  • parse_event_t - parser event types
  • parser_callback_t - per-element parser callback type
"},{"location":"api/basic_json/#member-functions","title":"Member functions","text":"
  • (constructor)
  • (destructor)
  • operator= - copy assignment
  • array (static) - explicitly create an array
  • binary (static) - explicitly create a binary array
  • object (static) - explicitly create an object
"},{"location":"api/basic_json/#object-inspection","title":"Object inspection","text":"

Functions to inspect the type of a JSON value.

  • type - return the type of the JSON value
  • operator value_t - return the type of the JSON value
  • type_name - return the type as string
  • is_primitive - return whether type is primitive
  • is_structured - return whether type is structured
  • is_null - return whether value is null
  • is_boolean - return whether value is a boolean
  • is_number - return whether value is a number
  • is_number_integer - return whether value is an integer number
  • is_number_unsigned - return whether value is an unsigned integer number
  • is_number_float - return whether value is a floating-point number
  • is_object - return whether value is an object
  • is_array - return whether value is an array
  • is_string - return whether value is a string
  • is_binary - return whether value is a binary array
  • is_discarded - return whether value is discarded
"},{"location":"api/basic_json/#value-access","title":"Value access","text":"

Direct access to the stored value of a JSON value.

  • get - get a value
  • get_to - get a value and write it to a destination
  • get_ptr - get a pointer value
  • get_ref - get a reference value
  • operator ValueType - get a value
  • get_binary - get a binary value
"},{"location":"api/basic_json/#element-access","title":"Element access","text":"

Access to the JSON value

  • at - access specified element with bounds checking
  • operator[] - access specified element
  • value - access specified object element with default value
  • front - access the first element
  • back - access the last element
"},{"location":"api/basic_json/#lookup","title":"Lookup","text":"
  • find - find an element in a JSON object
  • count - returns the number of occurrences of a key in a JSON object
  • contains - check the existence of an element in a JSON object
"},{"location":"api/basic_json/#iterators","title":"Iterators","text":"
  • begin - returns an iterator to the first element
  • cbegin - returns a const iterator to the first element
  • end - returns an iterator to one past the last element
  • cend - returns a const iterator to one past the last element
  • rbegin - returns an iterator to the reverse-beginning
  • rend - returns an iterator to the reverse-end
  • crbegin - returns a const iterator to the reverse-beginning
  • crend - returns a const iterator to the reverse-end
  • items - wrapper to access iterator member functions in range-based for
"},{"location":"api/basic_json/#capacity","title":"Capacity","text":"
  • empty - checks whether the container is empty
  • size - returns the number of elements
  • max_size - returns the maximum possible number of elements
"},{"location":"api/basic_json/#modifiers","title":"Modifiers","text":"
  • clear - clears the contents
  • push_back - add a value to an array/object
  • operator+= - add a value to an array/object
  • emplace_back - add a value to an array
  • emplace - add a value to an object if key does not exist
  • erase - remove elements
  • insert - inserts elements
  • update - updates a JSON object from another object, overwriting existing keys
  • swap - exchanges the values
"},{"location":"api/basic_json/#lexicographical-comparison-operators","title":"Lexicographical comparison operators","text":"
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • operator< - comparison: less than
  • operator> - comparison: greater than
  • operator<= - comparison: less than or equal
  • operator>= - comparison: greater than or equal
  • operator<=> - comparison: 3-way
"},{"location":"api/basic_json/#serialization-dumping","title":"Serialization / Dumping","text":"
  • dump - serialization
"},{"location":"api/basic_json/#deserialization-parsing","title":"Deserialization / Parsing","text":"
  • parse (static) - deserialize from a compatible input
  • accept (static) - check if the input is valid JSON
  • sax_parse (static) - generate SAX events
"},{"location":"api/basic_json/#json-pointer-functions","title":"JSON Pointer functions","text":"
  • flatten - return flattened JSON value
  • unflatten - unflatten a previously flattened JSON value
"},{"location":"api/basic_json/#json-patch-functions","title":"JSON Patch functions","text":"
  • patch - applies a JSON patch
  • patch_inplace - applies a JSON patch in place
  • diff (static) - creates a diff as a JSON patch
"},{"location":"api/basic_json/#json-merge-patch-functions","title":"JSON Merge Patch functions","text":"
  • merge_patch - applies a JSON Merge Patch
"},{"location":"api/basic_json/#static-functions","title":"Static functions","text":"
  • meta - returns version information on the library
  • get_allocator - returns the allocator associated with the container
"},{"location":"api/basic_json/#binary-formats","title":"Binary formats","text":"
  • from_bjdata (static) - create a JSON value from an input in BJData format
  • from_bson (static) - create a JSON value from an input in BSON format
  • from_cbor (static) - create a JSON value from an input in CBOR format
  • from_msgpack (static) - create a JSON value from an input in MessagePack format
  • from_ubjson (static) - create a JSON value from an input in UBJSON format
  • to_bjdata (static) - create a BJData serialization of a given JSON value
  • to_bson (static) - create a BSON serialization of a given JSON value
  • to_cbor (static) - create a CBOR serialization of a given JSON value
  • to_msgpack (static) - create a MessagePack serialization of a given JSON value
  • to_ubjson (static) - create a UBJSON serialization of a given JSON value
"},{"location":"api/basic_json/#non-member-functions","title":"Non-member functions","text":"
  • operator<<(std::ostream&) - serialize to stream
  • operator>>(std::istream&) - deserialize from stream
  • to_string - user-defined to_string function for JSON values
"},{"location":"api/basic_json/#literals","title":"Literals","text":"
  • operator\"\"_json - user-defined string literal for JSON values
"},{"location":"api/basic_json/#helper-classes","title":"Helper classes","text":"
  • std::hash<basic_json> - return a hash value for a JSON object
  • std::swap<basic_json> - exchanges the values of two JSON objects
"},{"location":"api/basic_json/#examples","title":"Examples","text":"Example

The example shows how the library is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // add new values\n    j[\"new\"][\"key\"][\"value\"] = {\"another\", \"list\"};\n\n    // count elements\n    auto s = j.size();\n    j[\"size\"] = s;\n\n    // pretty print with indent of 4 spaces\n    std::cout << std::setw(4) << j << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"new\": {\n        \"key\": {\n            \"value\": [\n                \"another\",\n                \"list\"\n            ]\n        }\n    },\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141,\n    \"size\": 8\n}\n
"},{"location":"api/basic_json/#see-also","title":"See also","text":"
  • RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
"},{"location":"api/basic_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/accept/","title":"nlohmann::basic_json::accept","text":"
// (1)\ntemplate<typename InputType>\nstatic bool accept(InputType&& i,\n                   const bool ignore_comments = false);\n\n// (2)\ntemplate<typename IteratorType>\nstatic bool accept(IteratorType first, IteratorType last,\n                   const bool ignore_comments = false);\n

Checks whether the input is valid JSON.

  1. Reads from a compatible input.
  2. Reads from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

Unlike the parse function, this function neither throws an exception in case of invalid JSON input (i.e., a parse error) nor creates diagnostic information.

"},{"location":"api/basic_json/accept/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer (must not be null)
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • a std::string
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType

a compatible iterator type, for instance.

  • a pair of std::string::iterator or std::vector<std::uint8_t>::iterator
  • a pair of pointers such as ptr and ptr + len
"},{"location":"api/basic_json/accept/#parameters","title":"Parameters","text":"i (in) Input to parse from. ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/accept/#return-value","title":"Return value","text":"

Whether the input is valid JSON.

"},{"location":"api/basic_json/accept/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/accept/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser.

"},{"location":"api/basic_json/accept/#notes","title":"Notes","text":"

(1) A UTF-8 byte order mark is silently ignored.

Runtime assertion

The precondition that a passed FILE pointer must not be null is enforced with a runtime assertion.

"},{"location":"api/basic_json/accept/#examples","title":"Examples","text":"Example

The example below demonstrates the accept() function reading from a string.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a valid JSON text\n    auto valid_text = R\"(\n    {\n        \"numbers\": [1, 2, 3]\n    }\n    )\";\n\n    // an invalid JSON text\n    auto invalid_text = R\"(\n    {\n        \"strings\": [\"extra\", \"comma\", ]\n    }\n    )\";\n\n    std::cout << std::boolalpha\n              << json::accept(valid_text) << ' '\n              << json::accept(invalid_text) << '\\n';\n}\n

Output:

true false\n
"},{"location":"api/basic_json/accept/#see-also","title":"See also","text":"
  • parse - deserialize from a compatible input
  • operator>> - deserialize from stream
"},{"location":"api/basic_json/accept/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to accept with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like accept({ptr, ptr+len}, ...); with accept(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/array/","title":"nlohmann::basic_json::array","text":"
static basic_json array(initializer_list_t init = {});\n

Creates a JSON array value from a given initializer list. That is, given a list of values a, b, c, creates the JSON value [a, b, c]. If the initializer list is empty, the empty array [] is created.

"},{"location":"api/basic_json/array/#parameters","title":"Parameters","text":"init (in) initializer list with JSON values to create an array from (optional)"},{"location":"api/basic_json/array/#return-value","title":"Return value","text":"

JSON array value

"},{"location":"api/basic_json/array/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/array/#complexity","title":"Complexity","text":"

Linear in the size of init.

"},{"location":"api/basic_json/array/#notes","title":"Notes","text":"

This function is only needed to express two edge cases that cannot be realized with the initializer list constructor (basic_json(initializer_list_t, bool, value_t)). These cases are:

  1. creating an array whose elements are all pairs whose first element is a string -- in this case, the initializer list constructor would create an object, taking the first elements as keys
  2. creating an empty array -- passing the empty initializer list to the initializer list constructor yields an empty object
"},{"location":"api/basic_json/array/#examples","title":"Examples","text":"Example

The following code shows an example for the array function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON arrays\n    json j_no_init_list = json::array();\n    json j_empty_init_list = json::array({});\n    json j_nonempty_init_list = json::array({1, 2, 3, 4});\n    json j_list_of_pairs = json::array({ {\"one\", 1}, {\"two\", 2} });\n\n    // serialize the JSON arrays\n    std::cout << j_no_init_list << '\\n';\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_nonempty_init_list << '\\n';\n    std::cout << j_list_of_pairs << '\\n';\n}\n

Output:

[]\n[]\n[1,2,3,4]\n[[\"one\",1],[\"two\",2]]\n
"},{"location":"api/basic_json/array/#see-also","title":"See also","text":"
  • basic_json(initializer_list_t) - create a JSON value from an initializer list
  • object - create a JSON object value from an initializer list
"},{"location":"api/basic_json/array/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/array_t/","title":"nlohmann::basic_json::array_t","text":"
using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;\n

The type used to store JSON arrays.

RFC 8259 describes JSON arrays as follows:

An array is an ordered sequence of zero or more values.

To store objects in C++, a type is defined by the template parameters explained below.

"},{"location":"api/basic_json/array_t/#template-parameters","title":"Template parameters","text":"ArrayType container type to store arrays (e.g., std::vector or std::list) AllocatorType the allocator to use for objects (e.g., std::allocator)"},{"location":"api/basic_json/array_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/array_t/#default-type","title":"Default type","text":"

With the default values for ArrayType (std::vector) and AllocatorType (std::allocator), the default value for array_t is:

std::vector<\n  basic_json, // value_type\n  std::allocator<basic_json> // allocator_type\n>\n
"},{"location":"api/basic_json/array_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON array.

"},{"location":"api/basic_json/array_t/#storage","title":"Storage","text":"

Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of type array_t* must be dereferenced.

"},{"location":"api/basic_json/array_t/#examples","title":"Examples","text":"Example

The following code shows that array_t is by default, a typedef to std::vector<nlohmann::json>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::vector<json>, json::array_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/array_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/at/","title":"nlohmann::basic_json::at","text":"
// (1)\nreference at(size_type idx);\nconst_reference at(size_type idx) const;\n\n// (2)\nreference at(const typename object_t::key_type& key);\nconst_reference at(const typename object_t::key_type& key) const;\n\n// (3)\ntemplate<typename KeyType>\nreference at(KeyType&& key);\ntemplate<typename KeyType>\nconst_reference at(KeyType&& key) const;\n\n// (4)\nreference at(const json_pointer& ptr);\nconst_reference at(const json_pointer& ptr) const;\n
  1. Returns a reference to the array element at specified location idx, with bounds checking.
  2. Returns a reference to the object element with specified key key, with bounds checking.
  3. See 2. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  4. Returns a reference to the element at specified JSON pointer ptr, with bounds checking.
"},{"location":"api/basic_json/at/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/at/#parameters","title":"Parameters","text":"idx (in) index of the element to access key (in) object key of the elements to access ptr (in) JSON pointer to the desired element"},{"location":"api/basic_json/at/#return-value","title":"Return value","text":"
  1. reference to the element at index idx
  2. reference to the element at key key
  3. reference to the element at key key
  4. reference to the element pointed to by ptr
"},{"location":"api/basic_json/at/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/at/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.304 if the JSON value is not an array; in this case, calling at with an index makes no sense. See example below.
    • Throws out_of_range.401 if the index idx is out of range of the array; that is, idx >= size(). See example below.
  2. The function can throw the following exceptions:
    • Throws type_error.304 if the JSON value is not an object; in this case, calling at with a key makes no sense. See example below.
    • Throws out_of_range.403 if the key key is not stored in the object; that is, find(key) == end(). See example below.
  3. See 2.
  4. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index in the passed JSON pointer ptr begins with '0'. See example below.
    • Throws parse_error.109 if an array index in the passed JSON pointer ptr is not a number. See example below.
    • Throws out_of_range.401 if an array index in the passed JSON pointer ptr is out of range. See example below.
    • Throws out_of_range.402 if the array index '-' is used in the passed JSON pointer ptr. As at provides checked access (and no elements are implicitly inserted), the index '-' is always invalid. See example below.
    • Throws out_of_range.403 if the JSON pointer describes a key of an object which cannot be found. See example below.
    • Throws out_of_range.404 if the JSON pointer ptr can not be resolved. See example below.
"},{"location":"api/basic_json/at/#complexity","title":"Complexity","text":"
  1. Constant.
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
  4. Logarithmic in the size of the container.
"},{"location":"api/basic_json/at/#examples","title":"Examples","text":"Example: (1) access specified array element with bounds checking

The example below shows how array elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n\n    // change element at index 1 (second element) to \"second\"\n    array.at(1) = \"second\";\n\n    // output changed array\n    std::cout << array << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-array type\n        json str = \"I am a string\";\n        str.at(0) = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write beyond the array limit\n        array.at(5) = \"sixth\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"third\"\n[\"first\",\"second\",\"third\",\"fourth\"]\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.401] array index 5 is out of range\n
Example: (1) access specified array element with bounds checking

The example below shows how array elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    const json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-array type\n        const json str = \"I am a string\";\n        std::cout << str.at(0) << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read beyond the array limit\n        std::cout << array.at(5) << '\\n';\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"third\"\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.401] array index 5 is out of range\n
Example: (2) access specified object element with bounds checking

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\"\n    std::cout << object.at(\"the ugly\") << '\\n';\n\n    // change element with key \"the bad\"\n    object.at(\"the bad\") = \"il cattivo\";\n\n    // output changed array\n    std::cout << object << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-object type\n        json str = \"I am a string\";\n        str.at(\"the good\") = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write at a nonexisting key\n        object.at(\"the fast\") = \"il rapido\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n{\"the bad\":\"il cattivo\",\"the good\":\"il buono\",\"the ugly\":\"il brutto\"}\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.403] key 'the fast' not found\n
Example: (2) access specified object element with bounds checking

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    const json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\"\n    std::cout << object.at(\"the ugly\") << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() on a non-object type\n        const json str = \"I am a string\";\n        std::cout << str.at(\"the good\") << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read from a nonexisting key\n        std::cout << object.at(\"the fast\") << '\\n';\n    }\n    catch (const json::out_of_range)\n    {\n        std::cout << \"out of range\" << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n[json.exception.type_error.304] cannot use at() with string\nout of range\n
Example: (3) access specified object element using string_view with bounds checking

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\" using string_view\n    std::cout << object.at(\"the ugly\"sv) << '\\n';\n\n    // change element with key \"the bad\" using string_view\n    object.at(\"the bad\"sv) = \"il cattivo\";\n\n    // output changed array\n    std::cout << object << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() with string_view on a non-object type\n        json str = \"I am a string\";\n        str.at(\"the good\"sv) = \"Another string\";\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to write at a nonexisting key using string_view\n        object.at(\"the fast\"sv) = \"il rapido\";\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n{\"the bad\":\"il cattivo\",\"the good\":\"il buono\",\"the ugly\":\"il brutto\"}\n[json.exception.type_error.304] cannot use at() with string\n[json.exception.out_of_range.403] key 'the fast' not found\n
Example: (3) access specified object element using string_view with bounds checking

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON object\n    const json object =\n    {\n        {\"the good\", \"il buono\"},\n        {\"the bad\", \"il cattivo\"},\n        {\"the ugly\", \"il brutto\"}\n    };\n\n    // output element with key \"the ugly\" using string_view\n    std::cout << object.at(\"the ugly\"sv) << '\\n';\n\n    // exception type_error.304\n    try\n    {\n        // use at() with string_view on a non-object type\n        const json str = \"I am a string\";\n        std::cout << str.at(\"the good\"sv) << '\\n';\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // exception out_of_range.401\n    try\n    {\n        // try to read from a nonexisting key using string_view\n        std::cout << object.at(\"the fast\"sv) << '\\n';\n    }\n    catch (const json::out_of_range)\n    {\n        std::cout << \"out of range\" << '\\n';\n    }\n}\n

Output:

\"il brutto\"\n[json.exception.type_error.304] cannot use at() with string\nout of range\n
Example: (4) access specified element via JSON Pointer

The example below shows how object elements can be read and written using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j.at(\"/number\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j.at(\"/string\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j.at(\"/array\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j.at(\"/array/1\"_json_pointer) << '\\n';\n\n    // writing access\n\n    // change the string\n    j.at(\"/string\"_json_pointer) = \"bar\";\n    // output the changed string\n    std::cout << j[\"string\"] << '\\n';\n\n    // change an array element\n    j.at(\"/array/1\"_json_pointer) = 21;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n\n    // out_of_range.106\n    try\n    {\n        // try to use an array index with leading '0'\n        json::reference ref = j.at(\"/array/01\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.109\n    try\n    {\n        // try to use an array index that is not a number\n        json::reference ref = j.at(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.401\n    try\n    {\n        // try to use an invalid array index\n        json::reference ref = j.at(\"/array/4\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.402\n    try\n    {\n        // try to use the array index '-'\n        json::reference ref = j.at(\"/array/-\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.403\n    try\n    {\n        // try to use a JSON pointer to a nonexistent object key\n        json::const_reference ref = j.at(\"/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.404\n    try\n    {\n        // try to use a JSON pointer that cannot be resolved\n        json::reference ref = j.at(\"/number/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n\"bar\"\n[1,21]\n[json.exception.parse_error.106] parse error: array index '01' must not begin with '0'\n[json.exception.parse_error.109] parse error: array index 'one' is not a number\n[json.exception.out_of_range.401] array index 4 is out of range\n[json.exception.out_of_range.402] array index '-' (2) is out of range\n[json.exception.out_of_range.403] key 'foo' not found\n[json.exception.out_of_range.404] unresolved reference token 'foo'\n
Example: (4) access specified element via JSON Pointer

The example below shows how object elements can be read using at(). It also demonstrates the different exceptions that can be thrown.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    const json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j.at(\"/number\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j.at(\"/string\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j.at(\"/array\"_json_pointer) << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j.at(\"/array/1\"_json_pointer) << '\\n';\n\n    // out_of_range.109\n    try\n    {\n        // try to use an array index that is not a number\n        json::const_reference ref = j.at(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.401\n    try\n    {\n        // try to use an invalid array index\n        json::const_reference ref = j.at(\"/array/4\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.402\n    try\n    {\n        // try to use the array index '-'\n        json::const_reference ref = j.at(\"/array/-\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.403\n    try\n    {\n        // try to use a JSON pointer to a nonexistent object key\n        json::const_reference ref = j.at(\"/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // out_of_range.404\n    try\n    {\n        // try to use a JSON pointer that cannot be resolved\n        json::const_reference ref = j.at(\"/number/foo\"_json_pointer);\n    }\n    catch (const json::out_of_range& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n[json.exception.parse_error.109] parse error: array index 'one' is not a number\n[json.exception.out_of_range.401] array index 4 is out of range\n[json.exception.out_of_range.402] array index '-' (2) is out of range\n[json.exception.out_of_range.403] key 'foo' not found\n[json.exception.out_of_range.404] unresolved reference token 'foo'\n
"},{"location":"api/basic_json/at/#see-also","title":"See also","text":"
  • documentation on checked access
  • see operator[] for unchecked access by reference
  • see value for access with default value
"},{"location":"api/basic_json/at/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0.
  3. Added in version 3.11.0.
  4. Added in version 2.0.0.
"},{"location":"api/basic_json/back/","title":"nlohmann::basic_json::back","text":"
reference back();\n\nconst_reference back() const;\n

Returns a reference to the last element in the container. For a JSON container c, the expression c.back() is equivalent to

auto tmp = c.end();\n--tmp;\nreturn *tmp;\n
"},{"location":"api/basic_json/back/#return-value","title":"Return value","text":"

In case of a structured type (array or object), a reference to the last element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.

"},{"location":"api/basic_json/back/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/back/#exceptions","title":"Exceptions","text":"

If the JSON value is null, exception invalid_iterator.214 is thrown.

"},{"location":"api/basic_json/back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/back/#notes","title":"Notes","text":"

Precondition

The array or object must not be empty. Calling back on an empty array or object yields undefined behavior.

"},{"location":"api/basic_json/back/#examples","title":"Examples","text":"Example

The following code shows an example for back().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call back()\n    std::cout << j_boolean.back() << '\\n';\n    std::cout << j_number_integer.back() << '\\n';\n    std::cout << j_number_float.back() << '\\n';\n    std::cout << j_object.back() << '\\n';\n    //std::cout << j_object_empty.back() << '\\n';  // undefined behavior\n    std::cout << j_array.back() << '\\n';\n    //std::cout << j_array_empty.back() << '\\n';   // undefined behavior\n    std::cout << j_string.back() << '\\n';\n\n    // back() called on a null value\n    try\n    {\n        json j_null;\n        j_null.back();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

true\n17\n23.42\n2\n16\n\"Hello, world\"\n[json.exception.invalid_iterator.214] cannot get value\n
"},{"location":"api/basic_json/back/#see-also","title":"See also","text":"
  • front to access the first element
"},{"location":"api/basic_json/back/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Adjusted code to return reference to binary values in version 3.8.0.
"},{"location":"api/basic_json/basic_json/","title":"nlohmann::basic_json::basic_json","text":"
// (1)\nbasic_json(const value_t v);\n\n// (2)\nbasic_json(std::nullptr_t = nullptr) noexcept;\n\n// (3)\ntemplate<typename CompatibleType>\nbasic_json(CompatibleType&& val) noexcept(noexcept(\n           JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n                                      std::forward<CompatibleType>(val))));\n\n// (4)\ntemplate<typename BasicJsonType>\nbasic_json(const BasicJsonType& val);\n\n// (5)\nbasic_json(initializer_list_t init,\n           bool type_deduction = true,\n           value_t manual_type = value_t::array);\n\n// (6)\nbasic_json(size_type cnt, const basic_json& val);\n\n// (7)\nbasic_json(iterator first, iterator last);\nbasic_json(const_iterator first, const_iterator last);\n\n// (8)\nbasic_json(const basic_json& other);\n\n// (9)\nbasic_json(basic_json&& other) noexcept;\n
  1. Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type:

    Value type initial value null null boolean false string \"\" number 0 object {} array [] binary empty array

    The postcondition of this constructor can be restored by calling clear().

  2. Create a null JSON value. It either takes a null pointer as parameter (explicitly creating null) or no parameter (implicitly creating null). The passed null pointer itself is not read -- it is only used to choose the right constructor.

  3. This is a \"catch all\" constructor for all compatible JSON types; that is, types for which a to_json() method exists. The constructor forwards the parameter val to that method (to json_serializer<U>::to_json method with U = uncvref_t<CompatibleType>, to be exact).

    Template type CompatibleType includes, but is not limited to, the following types:

    • arrays: array_t and all kinds of compatible containers such as std::vector, std::deque, std::list, std::forward_list, std::array, std::valarray, std::set, std::unordered_set, std::multiset, and std::unordered_multiset with a value_type from which a basic_json value can be constructed.
    • objects: object_t and all kinds of compatible associative containers such as std::map, std::unordered_map, std::multimap, and std::unordered_multimap with a key_type compatible to string_t and a value_type from which a basic_json value can be constructed.
    • strings: string_t, string literals, and all compatible string containers can be used.
    • numbers: number_integer_t, number_unsigned_t, number_float_t, and all convertible number types such as int, size_t, int64_t, float or double can be used.
    • boolean: boolean_t / bool can be used.
    • binary: binary_t / std::vector<uint8_t> may be used; unfortunately because string literals cannot be distinguished from binary character arrays by the C++ type system, all types compatible with const char* will be directed to the string constructor instead. This is both for backwards compatibility, and due to the fact that a binary type is not a standard JSON type.

    See the examples below.

  4. This is a constructor for existing basic_json types. It does not hijack copy/move constructors, since the parameter has different template arguments than the current ones.

    The constructor tries to convert the internal m_value of the parameter.

  5. Creates a JSON value of type array or object from the passed initializer list init. In case type_deduction is true (default), the type of the JSON value to be created is deducted from the initializer list init according to the following rules:

    1. If the list is empty, an empty JSON object value {} is created.
    2. If the list consists of pairs whose first element is a string, a JSON object value is created where the first elements of the pairs are treated as keys and the second elements are as values.
    3. In all other cases, an array is created.

    The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows:

    1. The empty initializer list is written as {} which is exactly an empty JSON object.
    2. C++ has no way of describing mapped types other than to list a list of pairs. As JSON requires that keys must be of type string, rule 2 is the weakest constraint one can pose on initializer lists to interpret them as an object.
    3. In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe.

    With the rules described above, the following JSON values cannot be expressed by an initializer list:

    • the empty array ([]): use array(initializer_list_t) with an empty initializer list in this case
    • arrays whose elements satisfy rule 2: use array(initializer_list_t) with the same initializer list in this case

    Function array() and object() force array and object creation from initializer lists, respectively.

  6. Constructs a JSON array value by creating cnt copies of a passed value. In case cnt is 0, an empty array is created.

  7. Constructs the JSON value with the contents of the range [first, last). The semantics depends on the different types a JSON value can have:

    • In case of a null type, invalid_iterator.206 is thrown.
    • In case of other primitive types (number, boolean, or string), first must be begin() and last must be end(). In this case, the value is copied. Otherwise, invalid_iterator.204 is thrown.
    • In case of structured types (array, object), the constructor behaves as similar versions for std::vector or std::map; that is, a JSON array or object is constructed from the values in the range.
  8. Creates a copy of a given JSON value.

  9. Move constructor. Constructs a JSON value with the contents of the given value other using move semantics. It \"steals\" the resources from other and leaves it as JSON null value.

"},{"location":"api/basic_json/basic_json/#template-parameters","title":"Template parameters","text":"CompatibleType

a type such that:

  • CompatibleType is not derived from std::istream,
  • CompatibleType is not basic_json (to avoid hijacking copy/move constructors),
  • CompatibleType is not a different basic_json type (i.e. with different template arguments)
  • CompatibleType is not a basic_json nested type (e.g., json_pointer, iterator, etc.)
  • json_serializer<U> (with U = uncvref_t<CompatibleType>) has a to_json(basic_json_t&, CompatibleType&&) method
BasicJsonType:

a type such that:

  • BasicJsonType is a basic_json type.
  • BasicJsonType has different template arguments than basic_json_t.
U: uncvref_t<CompatibleType>"},{"location":"api/basic_json/basic_json/#parameters","title":"Parameters","text":"v (in) the type of the value to create val (in) the value to be forwarded to the respective constructor init (in) initializer list with JSON values type_deduction (in) internal parameter; when set to true, the type of the JSON value is deducted from the initializer list init; when set to false, the type provided via manual_type is forced. This mode is used by the functions array(initializer_list_t) and object(initializer_list_t). manual_type (in) internal parameter; when type_deduction is set to false, the created JSON value will use the provided type (only value_t::array and value_t::object are valid); when type_deduction is set to true, this parameter has no effect cnt (in) the number of JSON copies of val to create first (in) begin of the range to copy from (included) last (in) end of the range to copy from (excluded) other (in) the JSON value to copy/move"},{"location":"api/basic_json/basic_json/#exception-safety","title":"Exception safety","text":"
  1. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  2. No-throw guarantee: this constructor never throws exceptions.
  3. Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.
  4. Depends on the called constructor. For types directly supported by the library (i.e., all types for which no to_json() function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.
  5. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  6. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  7. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  8. Strong guarantee: if an exception is thrown, there are no changes to any JSON value.
  9. No-throw guarantee: this constructor never throws exceptions.
"},{"location":"api/basic_json/basic_json/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function does not throw exceptions.
  3. (none)
  4. (none)
  5. The function can throw the following exceptions:
    • Throws type_error.301 if type_deduction is false, manual_type is value_t::object, but init contains an element which is not a pair whose first element is a string. In this case, the constructor could not create an object. If type_deduction would have been true, an array would have been created. See object(initializer_list_t) for an example.
  6. (none)
  7. The function can throw the following exceptions:
    • Throws invalid_iterator.201 if iterators first and last are not compatible (i.e., do not belong to the same JSON value). In this case, the range [first, last) is undefined.
    • Throws invalid_iterator.204 if iterators first and last belong to a primitive type (number, boolean, or string), but first does not point to the first element anymore. In this case, the range [first, last) is undefined. See example code below.
    • Throws invalid_iterator.206 if iterators first and last belong to a null value. In this case, the range [first, last) is undefined.
  8. (none)
  9. The function does not throw exceptions.
"},{"location":"api/basic_json/basic_json/#complexity","title":"Complexity","text":"
  1. Constant.
  2. Constant.
  3. Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.
  4. Usually linear in the size of the passed val, also depending on the implementation of the called to_json() method.
  5. Linear in the size of the initializer list init.
  6. Linear in cnt.
  7. Linear in distance between first and last.
  8. Linear in the size of other.
  9. Constant.
"},{"location":"api/basic_json/basic_json/#notes","title":"Notes","text":"
  • Overload 5:

    Empty initializer list

    When used without parentheses around an empty initializer list, basic_json() is called instead of this function, yielding the JSON null value.

  • Overload 7:

    Preconditions

    • Iterators first and last must be initialized. **This precondition is enforced with a runtime assertion.
    • Range [first, last) is valid. Usually, this precondition cannot be checked efficiently. Only certain edge cases are detected; see the description of the exceptions above. A violation of this precondition yields undefined behavior.

    Runtime assertion

    A precondition is enforced with a runtime assertion.

  • Overload 8:

    Postcondition

    *this == other

  • Overload 9:

    Postconditions

    • `*this has the same value as other before the call.
    • other is a JSON null value
"},{"location":"api/basic_json/basic_json/#examples","title":"Examples","text":"Example: (1) create an empty value with a given type

The following code shows the constructor for different value_t values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create the different JSON values with default values\n    json j_null(json::value_t::null);\n    json j_boolean(json::value_t::boolean);\n    json j_number_integer(json::value_t::number_integer);\n    json j_number_float(json::value_t::number_float);\n    json j_object(json::value_t::object);\n    json j_array(json::value_t::array);\n    json j_string(json::value_t::string);\n\n    // serialize the JSON values\n    std::cout << j_null << '\\n';\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nfalse\n0\n0.0\n{}\n[]\n\"\"\n
Example: (2) create a null object

The following code shows the constructor with and without a null pointer parameter.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // implicitly create a JSON null value\n    json j1;\n\n    // explicitly create a JSON null value\n    json j2(nullptr);\n\n    // serialize the JSON null value\n    std::cout << j1 << '\\n' << j2 << '\\n';\n}\n

Output:

null\nnull\n
Example: (3) create a JSON value from compatible types

The following code shows the constructor with several compatible types.

#include <iostream>\n#include <deque>\n#include <list>\n#include <forward_list>\n#include <set>\n#include <unordered_map>\n#include <unordered_set>\n#include <valarray>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // ============\n    // object types\n    // ============\n\n    // create an object from an object_t value\n    json::object_t object_value = { {\"one\", 1}, {\"two\", 2} };\n    json j_object_t(object_value);\n\n    // create an object from std::map\n    std::map<std::string, int> c_map\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 3}\n    };\n    json j_map(c_map);\n\n    // create an object from std::unordered_map\n    std::unordered_map<const char*, double> c_umap\n    {\n        {\"one\", 1.2}, {\"two\", 2.3}, {\"three\", 3.4}\n    };\n    json j_umap(c_umap);\n\n    // create an object from std::multimap\n    std::multimap<std::string, bool> c_mmap\n    {\n        {\"one\", true}, {\"two\", true}, {\"three\", false}, {\"three\", true}\n    };\n    json j_mmap(c_mmap); // only one entry for key \"three\" is used\n\n    // create an object from std::unordered_multimap\n    std::unordered_multimap<std::string, bool> c_ummap\n    {\n        {\"one\", true}, {\"two\", true}, {\"three\", false}, {\"three\", true}\n    };\n    json j_ummap(c_ummap); // only one entry for key \"three\" is used\n\n    // serialize the JSON objects\n    std::cout << j_object_t << '\\n';\n    std::cout << j_map << '\\n';\n    std::cout << j_umap << '\\n';\n    std::cout << j_mmap << '\\n';\n    std::cout << j_ummap << \"\\n\\n\";\n\n    // ===========\n    // array types\n    // ===========\n\n    // create an array from an array_t value\n    json::array_t array_value = {\"one\", \"two\", 3, 4.5, false};\n    json j_array_t(array_value);\n\n    // create an array from std::vector\n    std::vector<int> c_vector {1, 2, 3, 4};\n    json j_vec(c_vector);\n\n    // create an array from std::valarray\n    std::valarray<short> c_valarray {10, 9, 8, 7};\n    json j_valarray(c_valarray);\n\n    // create an array from std::deque\n    std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};\n    json j_deque(c_deque);\n\n    // create an array from std::list\n    std::list<bool> c_list {true, true, false, true};\n    json j_list(c_list);\n\n    // create an array from std::forward_list\n    std::forward_list<std::int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};\n    json j_flist(c_flist);\n\n    // create an array from std::array\n    std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};\n    json j_array(c_array);\n\n    // create an array from std::set\n    std::set<std::string> c_set {\"one\", \"two\", \"three\", \"four\", \"one\"};\n    json j_set(c_set); // only one entry for \"one\" is used\n\n    // create an array from std::unordered_set\n    std::unordered_set<std::string> c_uset {\"one\", \"two\", \"three\", \"four\", \"one\"};\n    json j_uset(c_uset); // only one entry for \"one\" is used\n\n    // create an array from std::multiset\n    std::multiset<std::string> c_mset {\"one\", \"two\", \"one\", \"four\"};\n    json j_mset(c_mset); // both entries for \"one\" are used\n\n    // create an array from std::unordered_multiset\n    std::unordered_multiset<std::string> c_umset {\"one\", \"two\", \"one\", \"four\"};\n    json j_umset(c_umset); // both entries for \"one\" are used\n\n    // serialize the JSON arrays\n    std::cout << j_array_t << '\\n';\n    std::cout << j_vec << '\\n';\n    std::cout << j_valarray << '\\n';\n    std::cout << j_deque << '\\n';\n    std::cout << j_list << '\\n';\n    std::cout << j_flist << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_set << '\\n';\n    std::cout << j_uset << '\\n';\n    std::cout << j_mset << '\\n';\n    std::cout << j_umset << \"\\n\\n\";\n\n    // ============\n    // string types\n    // ============\n\n    // create string from a string_t value\n    json::string_t string_value = \"The quick brown fox jumps over the lazy dog.\";\n    json j_string_t(string_value);\n\n    // create a JSON string directly from a string literal\n    json j_string_literal(\"The quick brown fox jumps over the lazy dog.\");\n\n    // create string from std::string\n    std::string s_stdstring = \"The quick brown fox jumps over the lazy dog.\";\n    json j_stdstring(s_stdstring);\n\n    // serialize the JSON strings\n    std::cout << j_string_t << '\\n';\n    std::cout << j_string_literal << '\\n';\n    std::cout << j_stdstring << \"\\n\\n\";\n\n    // ============\n    // number types\n    // ============\n\n    // create a JSON number from number_integer_t\n    json::number_integer_t value_integer_t = -42;\n    json j_integer_t(value_integer_t);\n\n    // create a JSON number from number_unsigned_t\n    json::number_integer_t value_unsigned_t = 17;\n    json j_unsigned_t(value_unsigned_t);\n\n    // create a JSON number from an anonymous enum\n    enum { enum_value = 17 };\n    json j_enum(enum_value);\n\n    // create values of different integer types\n    short n_short = 42;\n    int n_int = -23;\n    long n_long = 1024;\n    int_least32_t n_int_least32_t = -17;\n    uint8_t n_uint8_t = 8;\n\n    // create (integer) JSON numbers\n    json j_short(n_short);\n    json j_int(n_int);\n    json j_long(n_long);\n    json j_int_least32_t(n_int_least32_t);\n    json j_uint8_t(n_uint8_t);\n\n    // create values of different floating-point types\n    json::number_float_t v_ok = 3.141592653589793;\n    json::number_float_t v_nan = NAN;\n    json::number_float_t v_infinity = INFINITY;\n\n    // create values of different floating-point types\n    float n_float = 42.23;\n    float n_float_nan = 1.0f / 0.0f;\n    double n_double = 23.42;\n\n    // create (floating point) JSON numbers\n    json j_ok(v_ok);\n    json j_nan(v_nan);\n    json j_infinity(v_infinity);\n    json j_float(n_float);\n    json j_float_nan(n_float_nan);\n    json j_double(n_double);\n\n    // serialize the JSON numbers\n    std::cout << j_integer_t << '\\n';\n    std::cout << j_unsigned_t << '\\n';\n    std::cout << j_enum << '\\n';\n    std::cout << j_short << '\\n';\n    std::cout << j_int << '\\n';\n    std::cout << j_long << '\\n';\n    std::cout << j_int_least32_t << '\\n';\n    std::cout << j_uint8_t << '\\n';\n    std::cout << j_ok << '\\n';\n    std::cout << j_nan << '\\n';\n    std::cout << j_infinity << '\\n';\n    std::cout << j_float << '\\n';\n    std::cout << j_float_nan << '\\n';\n    std::cout << j_double << \"\\n\\n\";\n\n    // =============\n    // boolean types\n    // =============\n\n    // create boolean values\n    json j_truth = true;\n    json j_falsity = false;\n\n    // serialize the JSON booleans\n    std::cout << j_truth << '\\n';\n    std::cout << j_falsity << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\n{\"one\":1,\"three\":3,\"two\":2}\n{\"one\":1.2,\"three\":3.4,\"two\":2.3}\n{\"one\":true,\"three\":false,\"two\":true}\n{\"one\":true,\"three\":false,\"two\":true}\n\n[\"one\",\"two\",3,4.5,false]\n[1,2,3,4]\n[10,9,8,7]\n[1.2,2.3,3.4,5.6]\n[true,true,false,true]\n[12345678909876,23456789098765,34567890987654,45678909876543]\n[1,2,3,4]\n[\"four\",\"one\",\"three\",\"two\"]\n[\"four\",\"three\",\"two\",\"one\"]\n[\"four\",\"one\",\"one\",\"two\"]\n[\"four\",\"two\",\"one\",\"one\"]\n\n\"The quick brown fox jumps over the lazy dog.\"\n\"The quick brown fox jumps over the lazy dog.\"\n\"The quick brown fox jumps over the lazy dog.\"\n\n-42\n17\n17\n42\n-23\n1024\n-17\n8\n3.141592653589793\nnull\nnull\n42.22999954223633\nnull\n23.42\n\ntrue\nfalse\n

Note the output is platform-dependent.

Example: (5) create a container (array or object) from an initializer list

The example below shows how JSON values are created from initializer lists.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_empty_init_list = json({});\n    json j_object = { {\"one\", 1}, {\"two\", 2} };\n    json j_array = {1, 2, 3, 4};\n    json j_nested_object = { {\"one\", {1}}, {\"two\", {1, 2}} };\n    json j_nested_array = { {{1}, \"one\"}, {{1, 2}, \"two\"} };\n\n    // serialize the JSON value\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_nested_object << '\\n';\n    std::cout << j_nested_array << '\\n';\n}\n

Output:

{}\n{\"one\":1,\"two\":2}\n[1,2,3,4]\n{\"one\":[1],\"two\":[1,2]}\n[[[1],\"one\"],[[1,2],\"two\"]]\n
Example: (6) construct an array with count copies of given value

The following code shows examples for creating arrays with several copies of a given value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array by creating copies of a JSON value\n    json value = \"Hello\";\n    json array_0 = json(0, value);\n    json array_1 = json(1, value);\n    json array_5 = json(5, value);\n\n    // serialize the JSON arrays\n    std::cout << array_0 << '\\n';\n    std::cout << array_1 << '\\n';\n    std::cout << array_5 << '\\n';\n}\n

Output:

[]\n[\"Hello\"]\n[\"Hello\",\"Hello\",\"Hello\",\"Hello\",\"Hello\"]\n
Example: (7) construct a JSON container given an iterator range

The example below shows several ways to create JSON values by specifying a subrange with iterators.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_array = {\"alpha\", \"bravo\", \"charly\", \"delta\", \"easy\"};\n    json j_number = 42;\n    json j_object = {{\"one\", \"eins\"}, {\"two\", \"zwei\"}};\n\n    // create copies using iterators\n    json j_array_range(j_array.begin() + 1, j_array.end() - 2);\n    json j_number_range(j_number.begin(), j_number.end());\n    json j_object_range(j_object.begin(), j_object.find(\"two\"));\n\n    // serialize the values\n    std::cout << j_array_range << '\\n';\n    std::cout << j_number_range << '\\n';\n    std::cout << j_object_range << '\\n';\n\n    // example for an exception\n    try\n    {\n        json j_invalid(j_number.begin() + 1, j_number.end());\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[\"bravo\",\"charly\"]\n42\n{\"one\":\"eins\"}\n[json.exception.invalid_iterator.204] iterators out of range\n
Example: (8) copy constructor

The following code shows an example for the copy constructor.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json j1 = {\"one\", \"two\", 3, 4.5, false};\n\n    // create a copy\n    json j2(j1);\n\n    // serialize the JSON array\n    std::cout << j1 << \" = \" << j2 << '\\n';\n    std::cout << std::boolalpha << (j1 == j2) << '\\n';\n}\n

Output:

[\"one\",\"two\",3,4.5,false] = [\"one\",\"two\",3,4.5,false]\ntrue\n
Example: (9) move constructor

The code below shows the move constructor explicitly called via std::move.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json a = 23;\n\n    // move contents of a to b\n    json b(std::move(a));\n\n    // serialize the JSON arrays\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n

Output:

null\n23\n
"},{"location":"api/basic_json/basic_json/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.1.0.
  4. Since version 3.2.0.
  5. Since version 1.0.0.
  6. Since version 1.0.0.
  7. Since version 1.0.0.
  8. Since version 1.0.0.
  9. Since version 1.0.0.
"},{"location":"api/basic_json/begin/","title":"nlohmann::basic_json::begin","text":"
iterator begin() noexcept;\nconst_iterator begin() const noexcept;\n

Returns an iterator to the first element.

"},{"location":"api/basic_json/begin/#return-value","title":"Return value","text":"

iterator to the first element

"},{"location":"api/basic_json/begin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/begin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/begin/#examples","title":"Examples","text":"Example

The following code shows an example for begin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the first element\n    json::iterator it = array.begin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/begin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/binary/","title":"nlohmann::basic_json::binary","text":"
// (1)\nstatic basic_json binary(const typename binary_t::container_type& init);\nstatic basic_json binary(typename binary_t::container_type&& init);\n\n// (2)\nstatic basic_json binary(const typename binary_t::container_type& init,\n                         std::uint8_t subtype);\nstatic basic_json binary(typename binary_t::container_type&& init,\n                         std::uint8_t subtype);\n
  1. Creates a JSON binary array value from a given binary container.
  2. Creates a JSON binary array value from a given binary container with subtype.

Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to create a value for serialization to those formats.

"},{"location":"api/basic_json/binary/#parameters","title":"Parameters","text":"init (in) container containing bytes to use as binary type subtype (in) subtype to use in CBOR, MessagePack, and BSON"},{"location":"api/basic_json/binary/#return-value","title":"Return value","text":"

JSON binary array value

"},{"location":"api/basic_json/binary/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/binary/#complexity","title":"Complexity","text":"

Linear in the size of init; constant for typename binary_t::container_type&& init versions.

"},{"location":"api/basic_json/binary/#notes","title":"Notes","text":"

Note, this function exists because of the difficulty in correctly specifying the correct template overload in the standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a std::vector. Because JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization of a binary array type, for backwards compatibility and so it does not happen on accident.

"},{"location":"api/basic_json/binary/#examples","title":"Examples","text":"Example

The following code shows how to create a binary value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary vector\n    std::vector<std::uint8_t> vec = {0xCA, 0xFE, 0xBA, 0xBE};\n\n    // create a binary JSON value with subtype 42\n    json j = json::binary(vec, 42);\n\n    // output type and subtype\n    std::cout << \"type: \" << j.type_name() << \", subtype: \" << j.get_binary().subtype() << std::endl;\n}\n

Output:

type: binary, subtype: 42\n
"},{"location":"api/basic_json/binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/binary_t/","title":"nlohmann::basic_json::binary_t","text":"
using binary_t = byte_container_with_subtype<BinaryType>;\n

This type is a type designed to carry binary data that appears in various serialized formats, such as CBOR's Major Type 2, MessagePack's bin, and BSON's generic binary subtype. This type is NOT a part of standard JSON and exists solely for compatibility with these binary types. As such, it is simply defined as an ordered sequence of zero or more byte values.

Additionally, as an implementation detail, the subtype of the binary data is carried around as a std::uint64_t, which is compatible with both of the binary data formats that use binary subtyping, (though the specific numbering is incompatible with each other, and it is up to the user to translate between them). The subtype is added to BinaryType via the helper type byte_container_with_subtype.

CBOR's RFC 7049 describes this type as:

Major type 2: a byte string. The string's length in bytes is represented following the rules for positive integers (major type 0).

MessagePack's documentation on the bin type family describes this type as:

Bin format family stores a byte array in 2, 3, or 5 bytes of extra bytes in addition to the size of the byte array.

BSON's specifications describe several binary types; however, this type is intended to represent the generic binary type which has the description:

Generic binary subtype - This is the most commonly used binary subtype and should be the 'default' for drivers and tools.

None of these impose any limitations on the internal representation other than the basic unit of storage be some type of array whose parts are decomposable into bytes.

The default representation of this binary format is a std::vector<std::uint8_t>, which is a very common way to represent a byte array in modern C++.

"},{"location":"api/basic_json/binary_t/#template-parameters","title":"Template parameters","text":"BinaryType container type to store arrays"},{"location":"api/basic_json/binary_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/binary_t/#default-type","title":"Default type","text":"

The default values for BinaryType is std::vector<std::uint8_t>.

"},{"location":"api/basic_json/binary_t/#storage","title":"Storage","text":"

Binary Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of the type binary_t* must be dereferenced.

"},{"location":"api/basic_json/binary_t/#notes-on-subtypes","title":"Notes on subtypes","text":"
  • CBOR

    • Binary values are represented as byte strings. Subtypes are written as tags.
  • MessagePack

    • If a subtype is given and the binary array contains exactly 1, 2, 4, 8, or 16 elements, the fixext family (fixext1, fixext2, fixext4, fixext8) is used. For other sizes, the ext family (ext8, ext16, ext32) is used. The subtype is then added as signed 8-bit integer.
    • If no subtype is given, the bin family (bin8, bin16, bin32) is used.
  • BSON

    • If a subtype is given, it is used and added as unsigned 8-bit integer.
    • If no subtype is given, the generic binary subtype 0x00 is used.
"},{"location":"api/basic_json/binary_t/#examples","title":"Examples","text":"Example

The following code shows that binary_t is by default, a typedef to nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>, json::binary_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/binary_t/#see-also","title":"See also","text":"
  • byte_container_with_subtype
"},{"location":"api/basic_json/binary_t/#version-history","title":"Version history","text":"
  • Added in version 3.8.0. Changed type of subtype to std::uint64_t in version 3.10.0.
"},{"location":"api/basic_json/boolean_t/","title":"nlohmann::basic_json::boolean_t","text":"
using boolean_t = BooleanType;\n

The type used to store JSON booleans.

RFC 8259 implicitly describes a boolean as a type which differentiates the two literals true and false.

To store objects in C++, a type is defined by the template parameter BooleanType which chooses the type to use.

"},{"location":"api/basic_json/boolean_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/boolean_t/#default-type","title":"Default type","text":"

With the default values for BooleanType (bool), the default value for boolean_t is bool.

"},{"location":"api/basic_json/boolean_t/#storage","title":"Storage","text":"

Boolean values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/boolean_t/#examples","title":"Examples","text":"Example

The following code shows that boolean_t is by default, a typedef to bool.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<bool, json::boolean_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/boolean_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/cbegin/","title":"nlohmann::basic_json::cbegin","text":"
const_iterator cbegin() const noexcept;\n

Returns an iterator to the first element.

"},{"location":"api/basic_json/cbegin/#return-value","title":"Return value","text":"

iterator to the first element

"},{"location":"api/basic_json/cbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/cbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/cbegin/#examples","title":"Examples","text":"Example

The following code shows an example for cbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    const json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the first element\n    json::const_iterator it = array.cbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/cbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/cbor_tag_handler_t/","title":"nlohmann::basic_json::cbor_tag_handler_t","text":"
enum class cbor_tag_handler_t\n{\n    error,\n    ignore,\n    store\n};\n

This enumeration is used in the from_cbor function to choose how to treat tags:

error throw a parse_error exception in case of a tag ignore ignore tags store store tagged values as binary container with subtype (for bytes 0xd8..0xdb)"},{"location":"api/basic_json/cbor_tag_handler_t/#examples","title":"Examples","text":"Example

The example below shows how the different values of the cbor_tag_handler_t influence the behavior of from_cbor when reading a tagged byte string.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // tagged byte string\n    std::vector<std::uint8_t> vec = {{0xd8, 0x42, 0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // cbor_tag_handler_t::error throws\n    try\n    {\n        auto b_throw_on_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::error);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    // cbor_tag_handler_t::ignore ignores the tag\n    auto b_ignore_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::ignore);\n    std::cout << b_ignore_tag << std::endl;\n\n    // cbor_tag_handler_t::store stores the tag as binary subtype\n    auto b_store_tag = json::from_cbor(vec, true, true, json::cbor_tag_handler_t::store);\n    std::cout << b_store_tag << std::endl;\n}\n

Output:

[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing CBOR value: invalid byte: 0xD8\n{\"bytes\":[202,254,186,190],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":66}\n
"},{"location":"api/basic_json/cbor_tag_handler_t/#version-history","title":"Version history","text":"
  • Added in version 3.9.0. Added value store in 3.10.0.
"},{"location":"api/basic_json/cend/","title":"nlohmann::basic_json::cend","text":"
const_iterator cend() const noexcept;\n

Returns an iterator to one past the last element.

"},{"location":"api/basic_json/cend/#return-value","title":"Return value","text":"

iterator one past the last element

"},{"location":"api/basic_json/cend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/cend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/cend/#examples","title":"Examples","text":"Example

The following code shows an example for cend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to one past the last element\n    json::const_iterator it = array.cend();\n\n    // decrement the iterator to point to the last element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/cend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/clear/","title":"nlohmann::basic_json::clear","text":"
void clear() noexcept;\n

Clears the content of a JSON value and resets it to the default value as if basic_json(value_t) would have been called with the current value type from type():

Value type initial value null null boolean false string \"\" number 0 binary An empty byte vector object {} array []

Has the same effect as calling

*this = basic_json(type());\n
"},{"location":"api/basic_json/clear/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/clear/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value.

"},{"location":"api/basic_json/clear/#notes","title":"Notes","text":"

All iterators, pointers and references related to this container are invalidated.

"},{"location":"api/basic_json/clear/#examples","title":"Examples","text":"Example

The example below shows the effect of clear() to different JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call clear()\n    j_null.clear();\n    j_boolean.clear();\n    j_number_integer.clear();\n    j_number_float.clear();\n    j_object.clear();\n    j_array.clear();\n    j_string.clear();\n\n    // serialize the cleared values()\n    std::cout << j_null << '\\n';\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nfalse\n0\n0.0\n{}\n[]\n\"\"\n
"},{"location":"api/basic_json/clear/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added support for binary types in version 3.8.0.
"},{"location":"api/basic_json/contains/","title":"nlohmann::basic_json::contains","text":"
// (1)\nbool contains(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\nbool contains(KeyType&& key) const;\n\n// (3)\nbool contains(const json_pointer& ptr) const;\n
  1. Check whether an element exists in a JSON object with a key equivalent to key. If the element is not found or the JSON value is not an object, false is returned.
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  3. Check whether the given JSON pointer ptr can be resolved in the current JSON value.
"},{"location":"api/basic_json/contains/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/contains/#parameters","title":"Parameters","text":"key (in) key value to check its existence. ptr (in) JSON pointer to check its existence."},{"location":"api/basic_json/contains/#return-value","title":"Return value","text":"
  1. true if an element with specified key exists. If no such element with such key is found or the JSON value is not an object, false is returned.
  2. See 1.
  3. true if the JSON pointer can be resolved to a stored value, false otherwise.
"},{"location":"api/basic_json/contains/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/contains/#exceptions","title":"Exceptions","text":"
  1. The function does not throw exceptions.
  2. The function does not throw exceptions.
  3. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index begins with 0.
    • Throws parse_error.109 if an array index was not a number.
"},{"location":"api/basic_json/contains/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/contains/#notes","title":"Notes","text":"
  • This method always returns false when executed on a JSON type that is not an object.
  • This method can be executed on any JSON value type.

Postconditions

If j.contains(x) returns true for a key or JSON pointer x, then it is safe to call j[x].

"},{"location":"api/basic_json/contains/#examples","title":"Examples","text":"Example: (1) check with key

The example shows how contains() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create some JSON values\n    json j_object = R\"( {\"key\": \"value\"} )\"_json;\n    json j_array = R\"( [1, 2, 3] )\"_json;\n\n    // call contains\n    std::cout << std::boolalpha <<\n              \"j_object contains 'key': \" << j_object.contains(\"key\") << '\\n' <<\n              \"j_object contains 'another': \" << j_object.contains(\"another\") << '\\n' <<\n              \"j_array contains 'key': \" << j_array.contains(\"key\") << std::endl;\n}\n

Output:

j_object contains 'key': true\nj_object contains 'another': false\nj_array contains 'key': false\n
Example: (2) check with key using string_view

The example shows how contains() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create some JSON values\n    json j_object = R\"( {\"key\": \"value\"} )\"_json;\n    json j_array = R\"( [1, 2, 3] )\"_json;\n\n    // call contains\n    std::cout << std::boolalpha <<\n              \"j_object contains 'key': \" << j_object.contains(\"key\"sv) << '\\n' <<\n              \"j_object contains 'another': \" << j_object.contains(\"another\"sv) << '\\n' <<\n              \"j_array contains 'key': \" << j_array.contains(\"key\"sv) << std::endl;\n}\n

Output:

j_object contains 'key': true\nj_object contains 'another': false\nj_array contains 'key': false\n
Example: (3) check with JSON pointer

The example shows how contains() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    std::cout << std::boolalpha\n              << j.contains(\"/number\"_json_pointer) << '\\n'\n              << j.contains(\"/string\"_json_pointer) << '\\n'\n              << j.contains(\"/array\"_json_pointer) << '\\n'\n              << j.contains(\"/array/1\"_json_pointer) << '\\n'\n              << j.contains(\"/array/-\"_json_pointer) << '\\n'\n              << j.contains(\"/array/4\"_json_pointer) << '\\n'\n              << j.contains(\"/baz\"_json_pointer) << std::endl;\n\n    try\n    {\n        // try to use an array index with leading '0'\n        j.contains(\"/array/01\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    try\n    {\n        // try to use an array index that is not a number\n        j.contains(\"/array/one\"_json_pointer);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

true\ntrue\ntrue\ntrue\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/contains/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 3.6.0. Extended template KeyType to support comparable types in version 3.11.0.
  3. Added in version 3.7.0.
"},{"location":"api/basic_json/count/","title":"nlohmann::basic_json::count","text":"
// (1)\nsize_type count(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\nsize_type count(KeyType&& key) const;\n
  1. Returns the number of elements with key key. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
"},{"location":"api/basic_json/count/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/count/#parameters","title":"Parameters","text":"key (in) key value of the element to count."},{"location":"api/basic_json/count/#return-value","title":"Return value","text":"

Number of elements with key key. If the JSON value is not an object, the return value will be 0.

"},{"location":"api/basic_json/count/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/count/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/count/#notes","title":"Notes","text":"

This method always returns 0 when executed on a JSON type that is not an object.

"},{"location":"api/basic_json/count/#examples","title":"Examples","text":"Example: (1) count number of elements

The example shows how count() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call count()\n    auto count_two = j_object.count(\"two\");\n    auto count_three = j_object.count(\"three\");\n\n    // print values\n    std::cout << \"number of elements with key \\\"two\\\": \" << count_two << '\\n';\n    std::cout << \"number of elements with key \\\"three\\\": \" << count_three << '\\n';\n}\n

Output:

number of elements with key \"two\": 1\nnumber of elements with key \"three\": 0\n
Example: (2) count number of elements using string_view

The example shows how count() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call count()\n    auto count_two = j_object.count(\"two\"sv);\n    auto count_three = j_object.count(\"three\"sv);\n\n    // print values\n    std::cout << \"number of elements with key \\\"two\\\": \" << count_two << '\\n';\n    std::cout << \"number of elements with key \\\"three\\\": \" << count_three << '\\n';\n}\n

Output:

number of elements with key \"two\": 1\nnumber of elements with key \"three\": 0\n
"},{"location":"api/basic_json/count/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 1.0.0. Changed parameter key type to KeyType&& in version 3.11.0.
"},{"location":"api/basic_json/crbegin/","title":"nlohmann::basic_json::crbegin","text":"
const_reverse_iterator crbegin() const noexcept;\n

Returns an iterator to the reverse-beginning; that is, the last element.

"},{"location":"api/basic_json/crbegin/#return-value","title":"Return value","text":"

reverse iterator to the first element

"},{"location":"api/basic_json/crbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/crbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/crbegin/#examples","title":"Examples","text":"Example

The following code shows an example for crbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-beginning\n    json::const_reverse_iterator it = array.crbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/crbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/crend/","title":"nlohmann::basic_json::crend","text":"
const_reverse_iterator crend() const noexcept;\n

Returns an iterator to the reverse-end; that is, one before the first element. This element acts as a placeholder, attempting to access it results in undefined behavior.

"},{"location":"api/basic_json/crend/#return-value","title":"Return value","text":"

reverse iterator to the element following the last element

"},{"location":"api/basic_json/crend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/crend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/crend/#examples","title":"Examples","text":"Example

The following code shows an example for eend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-end\n    json::const_reverse_iterator it = array.crend();\n\n    // increment the iterator to point to the first element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/crend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/default_object_comparator_t/","title":"nlohmann::basic_json::default_object_comparator_t","text":"
using default_object_comparator_t = std::less<StringType>;  // until C++14\n\nusing default_object_comparator_t = std::less<>;            // since C++14\n

The default comparator used by object_t.

Since C++14 a transparent comparator is used which prevents unnecessary string construction when looking up a key in an object.

The actual comparator used depends on object_t and can be obtained via object_comparator_t.

"},{"location":"api/basic_json/default_object_comparator_t/#examples","title":"Examples","text":"Example

The example below demonstrates the default comparator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha\n              << \"one < two : \" << json::default_object_comparator_t{}(\"one\", \"two\") << \"\\n\"\n              << \"three < four : \" << json::default_object_comparator_t{}(\"three\", \"four\") << std::endl;\n}\n

Output:

one < two : true\nthree < four : false\n
"},{"location":"api/basic_json/default_object_comparator_t/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/diff/","title":"nlohmann::basic_json::diff","text":"
static basic_json diff(const basic_json& source,\n                       const basic_json& target);\n

Creates a JSON Patch so that value source can be changed into the value target by calling patch function.

For two JSON values source and target, the following code yields always true:

source.patch(diff(source, target)) == target;\n

"},{"location":"api/basic_json/diff/#parameters","title":"Parameters","text":"source (in) JSON value to compare from target (in) JSON value to compare against"},{"location":"api/basic_json/diff/#return-value","title":"Return value","text":"

a JSON patch to convert the source to target

"},{"location":"api/basic_json/diff/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/diff/#complexity","title":"Complexity","text":"

Linear in the lengths of source and target.

"},{"location":"api/basic_json/diff/#notes","title":"Notes","text":"

Currently, only remove, add, and replace operations are generated.

"},{"location":"api/basic_json/diff/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is created as a diff for two JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the source document\n    json source = R\"(\n        {\n            \"baz\": \"qux\",\n            \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the target document\n    json target = R\"(\n        {\n            \"baz\": \"boo\",\n            \"hello\": [\n                \"world\"\n            ]\n        }\n    )\"_json;\n\n    // create the patch\n    json patch = json::diff(source, target);\n\n    // roundtrip\n    json patched_source = source.patch(patch);\n\n    // output patch and roundtrip result\n    std::cout << std::setw(4) << patch << \"\\n\\n\"\n              << std::setw(4) << patched_source << std::endl;\n}\n

Output:

[\n    {\n        \"op\": \"replace\",\n        \"path\": \"/baz\",\n        \"value\": \"boo\"\n    },\n    {\n        \"op\": \"remove\",\n        \"path\": \"/foo\"\n    },\n    {\n        \"op\": \"add\",\n        \"path\": \"/hello\",\n        \"value\": [\n            \"world\"\n        ]\n    }\n]\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/diff/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
"},{"location":"api/basic_json/diff/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/dump/","title":"nlohmann::basic_json::dump","text":"
string_t dump(const int indent = -1,\n              const char indent_char = ' ',\n              const bool ensure_ascii = false,\n              const error_handler_t error_handler = error_handler_t::strict) const;\n

Serialization function for JSON values. The function tries to mimic Python's json.dumps() function, and currently supports its indent and ensure_ascii parameters.

"},{"location":"api/basic_json/dump/#parameters","title":"Parameters","text":"indent (in) If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. -1 (the default) selects the most compact representation. indent_char (in) The character to use for indentation if indent is greater than 0. The default is (space). ensure_ascii (in) If ensure_ascii is true, all non-ASCII characters in the output are escaped with \\uXXXX sequences, and the result consists of ASCII characters only. error_handler (in) how to react on decoding errors; there are three possible values (see error_handler_t: strict (throws and exception in case a decoding error occurs; default), replace (replace invalid UTF-8 sequences with U+FFFD), and ignore (ignore invalid UTF-8 sequences during serialization; all bytes are copied to the output unchanged))."},{"location":"api/basic_json/dump/#return-value","title":"Return value","text":"

string containing the serialization of the JSON value

"},{"location":"api/basic_json/dump/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/dump/#exceptions","title":"Exceptions","text":"

Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded and error_handler is set to strict

"},{"location":"api/basic_json/dump/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/dump/#notes","title":"Notes","text":"

Binary values are serialized as object containing two keys:

  • \"bytes\": an array of bytes as integers
  • \"subtype\": the subtype as integer or null if the binary has no subtype
"},{"location":"api/basic_json/dump/#examples","title":"Examples","text":"Example

The following example shows the effect of different indent, indent_char, and ensure_ascii parameters to the result of the serialization.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hell\u00f6 \ud83d\ude00!\";\n\n    // call dump()\n    std::cout << \"objects:\" << '\\n'\n              << j_object.dump() << \"\\n\\n\"\n              << j_object.dump(-1) << \"\\n\\n\"\n              << j_object.dump(0) << \"\\n\\n\"\n              << j_object.dump(4) << \"\\n\\n\"\n              << j_object.dump(1, '\\t') << \"\\n\\n\";\n\n    std::cout << \"arrays:\" << '\\n'\n              << j_array.dump() << \"\\n\\n\"\n              << j_array.dump(-1) << \"\\n\\n\"\n              << j_array.dump(0) << \"\\n\\n\"\n              << j_array.dump(4) << \"\\n\\n\"\n              << j_array.dump(1, '\\t') << \"\\n\\n\";\n\n    std::cout << \"strings:\" << '\\n'\n              << j_string.dump() << '\\n'\n              << j_string.dump(-1, ' ', true) << '\\n';\n\n    // create JSON value with invalid UTF-8 byte sequence\n    json j_invalid = \"\u00e4\\xA9\u00fc\";\n    try\n    {\n        std::cout << j_invalid.dump() << std::endl;\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    std::cout << \"string with replaced invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::replace)\n              << \"\\nstring with ignored invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::ignore)\n              << '\\n';\n}\n

Output:

objects:\n{\"one\":1,\"two\":2}\n\n{\"one\":1,\"two\":2}\n\n{\n\"one\": 1,\n\"two\": 2\n}\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\n{\n    \"one\": 1,\n    \"two\": 2\n}\n\narrays:\n[1,2,4,8,16]\n\n[1,2,4,8,16]\n\n[\n1,\n2,\n4,\n8,\n16\n]\n\n[\n    1,\n    2,\n    4,\n    8,\n    16\n]\n\n[\n    1,\n    2,\n    4,\n    8,\n    16\n]\n\nstrings:\n\"Hell\u00f6 \ud83d\ude00!\"\n\"Hell\\u00f6 \\ud83d\\ude00!\"\n[json.exception.type_error.316] invalid UTF-8 byte at index 2: 0xA9\nstring with replaced invalid characters: \"\u00e4\ufffd\u00fc\"\nstring with ignored invalid characters: \"\u00e4\u00fc\"\n
"},{"location":"api/basic_json/dump/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Indentation character indent_char, option ensure_ascii and exceptions added in version 3.0.0.
  • Error handlers added in version 3.4.0.
  • Serialization of binary values added in version 3.8.0.
"},{"location":"api/basic_json/emplace/","title":"nlohmann::basic_json::emplace","text":"
template<class... Args>\nstd::pair<iterator, bool> emplace(Args&& ... args);\n

Inserts a new element into a JSON object constructed in-place with the given args if there is no element with the key in the container. If the function is called on a JSON null value, an empty object is created before appending the value created from args.

"},{"location":"api/basic_json/emplace/#template-parameters","title":"Template parameters","text":"Args compatible types to create a basic_json object"},{"location":"api/basic_json/emplace/#parameters","title":"Parameters","text":"args (in) arguments to forward to a constructor of basic_json"},{"location":"api/basic_json/emplace/#return-value","title":"Return value","text":"

a pair consisting of an iterator to the inserted element, or the already-existing element if no insertion happened, and a bool denoting whether the insertion took place.

"},{"location":"api/basic_json/emplace/#exceptions","title":"Exceptions","text":"

Throws type_error.311 when called on a type other than JSON object or null; example: \"cannot use emplace() with number\"

"},{"location":"api/basic_json/emplace/#complexity","title":"Complexity","text":"

Logarithmic in the size of the container, O(log(size())).

"},{"location":"api/basic_json/emplace/#examples","title":"Examples","text":"Example

The example shows how emplace() can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object. Further note how no value is added if there was already one value stored with the same key.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    auto res1 = object.emplace(\"three\", 3);\n    null.emplace(\"A\", \"a\");\n    null.emplace(\"B\", \"b\");\n\n    // the following call will not add an object, because there is already\n    // a value stored at key \"B\"\n    auto res2 = null.emplace(\"B\", \"c\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << *res1.first << \" \" << std::boolalpha << res1.second << '\\n';\n\n    std::cout << null << '\\n';\n    std::cout << *res2.first << \" \" << std::boolalpha << res2.second << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"one\":1,\"three\":3,\"two\":2}\n3 true\n{\"A\":\"a\",\"B\":\"b\"}\n\"b\" false\n
"},{"location":"api/basic_json/emplace/#version-history","title":"Version history","text":"
  • Since version 2.0.8.
"},{"location":"api/basic_json/emplace_back/","title":"nlohmann::basic_json::emplace_back","text":"
template<class... Args>\nreference emplace_back(Args&& ... args);\n

Creates a JSON value from the passed parameters args to the end of the JSON value. If the function is called on a JSON null value, an empty array is created before appending the value created from args.

"},{"location":"api/basic_json/emplace_back/#template-parameters","title":"Template parameters","text":"Args compatible types to create a basic_json object"},{"location":"api/basic_json/emplace_back/#parameters","title":"Parameters","text":"args (in) arguments to forward to a constructor of basic_json"},{"location":"api/basic_json/emplace_back/#return-value","title":"Return value","text":"

reference to the inserted element

"},{"location":"api/basic_json/emplace_back/#exceptions","title":"Exceptions","text":"

Throws type_error.311 when called on a type other than JSON array or null; example: \"cannot use emplace_back() with number\"

"},{"location":"api/basic_json/emplace_back/#complexity","title":"Complexity","text":"

Amortized constant.

"},{"location":"api/basic_json/emplace_back/#examples","title":"Examples","text":"Example

The example shows how emplace_back() can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.emplace_back(6);\n    null.emplace_back(\"first\");\n    null.emplace_back(3, \"second\");\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6]\n[\"first\",[\"second\",\"second\",\"second\"]]\n
"},{"location":"api/basic_json/emplace_back/#version-history","title":"Version history","text":"
  • Since version 2.0.8.
  • Returns reference since 3.7.0.
"},{"location":"api/basic_json/empty/","title":"nlohmann::basic_json::empty","text":"
bool empty() const noexcept;\n

Checks if a JSON value has no elements (i.e. whether its size() is 0).

"},{"location":"api/basic_json/empty/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null true boolean false string false number false binary false object result of function object_t::empty() array result of function array_t::empty()"},{"location":"api/basic_json/empty/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/empty/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their empty() functions have constant complexity.

"},{"location":"api/basic_json/empty/#possible-implementation","title":"Possible implementation","text":"
bool empty() const noexcept\n{\n    return size() == 0;\n}\n
"},{"location":"api/basic_json/empty/#notes","title":"Notes","text":"

This function does not return whether a string stored as JSON value is empty -- it returns whether the JSON container itself is empty which is false in the case of a string.

"},{"location":"api/basic_json/empty/#examples","title":"Examples","text":"Example

The following code uses empty() to check if a JSON object contains any elements.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call empty()\n    std::cout << std::boolalpha;\n    std::cout << j_null.empty() << '\\n';\n    std::cout << j_boolean.empty() << '\\n';\n    std::cout << j_number_integer.empty() << '\\n';\n    std::cout << j_number_float.empty() << '\\n';\n    std::cout << j_object.empty() << '\\n';\n    std::cout << j_object_empty.empty() << '\\n';\n    std::cout << j_array.empty() << '\\n';\n    std::cout << j_array_empty.empty() << '\\n';\n    std::cout << j_string.empty() << '\\n';\n}\n

Output:

true\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\ntrue\nfalse\n
"},{"location":"api/basic_json/empty/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return false for binary types in version 3.8.0.
"},{"location":"api/basic_json/end/","title":"nlohmann::basic_json::end","text":"
iterator end() noexcept;\nconst_iterator end() const noexcept;\n

Returns an iterator to one past the last element.

"},{"location":"api/basic_json/end/#return-value","title":"Return value","text":"

iterator one past the last element

"},{"location":"api/basic_json/end/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/end/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/end/#examples","title":"Examples","text":"Example

The following code shows an example for end().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to one past the last element\n    json::iterator it = array.end();\n\n    // decrement the iterator to point to the last element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/end/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/erase/","title":"nlohmann::basic_json::erase","text":"
// (1)\niterator erase(iterator pos);\nconst_iterator erase(const_iterator pos);\n\n// (2)\niterator erase(iterator first, iterator last);\nconst_iterator erase(const_iterator first, const_iterator last);\n\n// (3)\nsize_type erase(const typename object_t::key_type& key);\n\n// (4)\ntemplate<typename KeyType>\nsize_type erase(KeyType&& key);\n\n// (5)\nvoid erase(const size_type idx);\n
  1. Removes an element from a JSON value specified by iterator pos. The iterator pos must be valid and dereferenceable. Thus, the end() iterator (which is valid, but is not dereferenceable) cannot be used as a value for pos.

    If called on a primitive type other than null, the resulting JSON value will be null.

  2. Remove an element range specified by [first; last) from a JSON value. The iterator first does not need to be dereferenceable if first == last: erasing an empty range is a no-op.

    If called on a primitive type other than null, the resulting JSON value will be null.

  3. Removes an element from a JSON object by key.

  4. See 3. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.

  5. Removes an element from a JSON array by index.

"},{"location":"api/basic_json/erase/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/erase/#parameters","title":"Parameters","text":"pos (in) iterator to the element to remove first (in) iterator to the beginning of the range to remove last (in) iterator past the end of the range to remove key (in) object key of the elements to remove idx (in) array index of the element to remove"},{"location":"api/basic_json/erase/#return-value","title":"Return value","text":"
  1. Iterator following the last removed element. If the iterator pos refers to the last element, the end() iterator is returned.
  2. Iterator following the last removed element. If the iterator last refers to the last element, the end() iterator is returned.
  3. Number of elements removed. If ObjectType is the default std::map type, the return value will always be 0 (key was not found) or 1 (key was found).
  4. See 3.
  5. (none)
"},{"location":"api/basic_json/erase/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/erase/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.307 if called on a null value; example: \"cannot use erase() with null\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.205 if called on a primitive type with invalid iterator (i.e., any iterator which is not begin()); example: \"iterator out of range\"
  2. The function can throw the following exceptions:
    • Throws type_error.307 if called on a null value; example: \"cannot use erase() with null\"
    • Throws invalid_iterator.203 if called on iterators which does not belong to the current JSON value; example: \"iterators do not fit current value\"
    • Throws invalid_iterator.204 if called on a primitive type with invalid iterators (i.e., if first != begin() and last != end()); example: \"iterators out of range\"
  3. The function can throw the following exceptions:
    • Throws type_error.307 when called on a type other than JSON object; example: \"cannot use erase() with null\"
  4. See 3.
  5. The function can throw the following exceptions:
    • Throws type_error.307 when called on a type other than JSON object; example: \"cannot use erase() with null\"
    • Throws out_of_range.401 when idx >= size(); example: \"array index 17 is out of range\"
"},{"location":"api/basic_json/erase/#complexity","title":"Complexity","text":"
  1. The complexity depends on the type:
    • objects: amortized constant
    • arrays: linear in distance between pos and the end of the container
    • strings and binary: linear in the length of the member
    • other types: constant
  2. The complexity depends on the type:
    • objects: log(size()) + std::distance(first, last)
    • arrays: linear in the distance between first and last, plus linear in the distance between last and end of the container
    • strings and binary: linear in the length of the member
    • other types: constant
  3. log(size()) + count(key)
  4. log(size()) + count(key)
  5. Linear in distance between idx and the end of the container.
"},{"location":"api/basic_json/erase/#notes","title":"Notes","text":"
  1. Invalidates iterators and references at or after the point of the erase, including the end() iterator.
  2. (none)
  3. References and iterators to the erased elements are invalidated. Other references and iterators are not affected.
  4. See 3.
  5. (none)
"},{"location":"api/basic_json/erase/#examples","title":"Examples","text":"Example: (1) remove element given an iterator

The example shows the effect of erase() for different JSON types using an iterator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call erase()\n    j_boolean.erase(j_boolean.begin());\n    j_number_integer.erase(j_number_integer.begin());\n    j_number_float.erase(j_number_float.begin());\n    j_object.erase(j_object.find(\"two\"));\n    j_array.erase(j_array.begin() + 2);\n    j_string.erase(j_string.begin());\n\n    // print values\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nnull\nnull\n{\"one\":1}\n[1,2,8,16]\nnull\n
Example: (2) remove elements given an iterator range

The example shows the effect of erase() for different JSON types using an iterator range.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call erase()\n    j_boolean.erase(j_boolean.begin(), j_boolean.end());\n    j_number_integer.erase(j_number_integer.begin(), j_number_integer.end());\n    j_number_float.erase(j_number_float.begin(), j_number_float.end());\n    j_object.erase(j_object.find(\"two\"), j_object.end());\n    j_array.erase(j_array.begin() + 1, j_array.begin() + 3);\n    j_string.erase(j_string.begin(), j_string.end());\n\n    // print values\n    std::cout << j_boolean << '\\n';\n    std::cout << j_number_integer << '\\n';\n    std::cout << j_number_float << '\\n';\n    std::cout << j_object << '\\n';\n    std::cout << j_array << '\\n';\n    std::cout << j_string << '\\n';\n}\n

Output:

null\nnull\nnull\n{\"one\":1}\n[1,8,16]\nnull\n
Example: (3) remove element from a JSON object given a key

The example shows the effect of erase() for different JSON types using an object key.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call erase()\n    auto count_one = j_object.erase(\"one\");\n    auto count_three = j_object.erase(\"three\");\n\n    // print values\n    std::cout << j_object << '\\n';\n    std::cout << count_one << \" \" << count_three << '\\n';\n}\n

Output:

{\"two\":2}\n1 0\n
Example: (4) remove element from a JSON object given a key using string_view

The example shows the effect of erase() for different JSON types using an object key.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call erase()\n    auto count_one = j_object.erase(\"one\"sv);\n    auto count_three = j_object.erase(\"three\"sv);\n\n    // print values\n    std::cout << j_object << '\\n';\n    std::cout << count_one << \" \" << count_three << '\\n';\n}\n

Output:

{\"two\":2}\n1 0\n
Example: (5) remove element from a JSON array given an index

The example shows the effect of erase() using an array index.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json j_array = {0, 1, 2, 3, 4, 5};\n\n    // call erase()\n    j_array.erase(2);\n\n    // print values\n    std::cout << j_array << '\\n';\n}\n

Output:

[0,1,3,4,5]\n
"},{"location":"api/basic_json/erase/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added support for binary types in version 3.8.0.
  2. Added in version 1.0.0. Added support for binary types in version 3.8.0.
  3. Added in version 1.0.0.
  4. Added in version 3.11.0.
  5. Added in version 1.0.0.
"},{"location":"api/basic_json/error_handler_t/","title":"nlohmann::basic_json::error_handler_t","text":"
enum class error_handler_t {\n    strict,\n    replace,\n    ignore\n};\n

This enumeration is used in the dump function to choose how to treat decoding errors while serializing a basic_json value. Three values are differentiated:

strict throw a type_error exception in case of invalid UTF-8 replace replace invalid UTF-8 sequences with U+FFFD (\ufffd REPLACEMENT CHARACTER) ignore ignore invalid UTF-8 sequences; all bytes are copied to the output unchanged"},{"location":"api/basic_json/error_handler_t/#examples","title":"Examples","text":"Example

The example below shows how the different values of the error_handler_t influence the behavior of dump when reading serializing an invalid UTF-8 sequence.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value with invalid UTF-8 byte sequence\n    json j_invalid = \"\u00e4\\xA9\u00fc\";\n    try\n    {\n        std::cout << j_invalid.dump() << std::endl;\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    std::cout << \"string with replaced invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::replace)\n              << \"\\nstring with ignored invalid characters: \"\n              << j_invalid.dump(-1, ' ', false, json::error_handler_t::ignore)\n              << '\\n';\n}\n

Output:

[json.exception.type_error.316] invalid UTF-8 byte at index 2: 0xA9\nstring with replaced invalid characters: \"\u00e4\ufffd\u00fc\"\nstring with ignored invalid characters: \"\u00e4\u00fc\"\n
"},{"location":"api/basic_json/error_handler_t/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.
"},{"location":"api/basic_json/exception/","title":"nlohmann::basic_json::exception","text":"
class exception : public std::exception;\n

This class is an extension of std::exception objects with a member id for exception ids. It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as \"wildcard\" to catch exceptions, see example below.

Subclasses:

  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/exception/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/exception/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/exception/#notes","title":"Notes","text":"

To have nothrow-copy-constructible exceptions, we internally use std::runtime_error which can cope with arbitrary-length error messages. Intermediate strings are built with static functions and then passed to the actual constructor.

"},{"location":"api/basic_json/exception/#examples","title":"Examples","text":"Example

The following code shows how arbitrary library exceptions can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for a non-existing key\n        json j = {{\"foo\", \"bar\"}};\n        json k = j.at(\"non-existing\");\n    }\n    catch (const json::exception& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.403] key 'non-existing' not found\nexception id: 403\n
"},{"location":"api/basic_json/exception/#see-also","title":"See also","text":"

List of exceptions

"},{"location":"api/basic_json/exception/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/find/","title":"nlohmann::basic_json::find","text":"
// (1)\niterator find(const typename object_t::key_type& key);\nconst_iterator find(const typename object_t::key_type& key) const;\n\n// (2)\ntemplate<typename KeyType>\niterator find(KeyType&& key);\ntemplate<typename KeyType>\nconst_iterator find(KeyType&& key) const;\n
  1. Finds an element in a JSON object with a key equivalent to key. If the element is not found or the JSON value is not an object, end() is returned.
  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
"},{"location":"api/basic_json/find/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/find/#parameters","title":"Parameters","text":"key (in) key value of the element to search for."},{"location":"api/basic_json/find/#return-value","title":"Return value","text":"

Iterator to an element with a key equivalent to key. If no such element is found or the JSON value is not an object, a past-the-end iterator (see end()) is returned.

"},{"location":"api/basic_json/find/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/find/#complexity","title":"Complexity","text":"

Logarithmic in the size of the JSON object.

"},{"location":"api/basic_json/find/#notes","title":"Notes","text":"

This method always returns end() when executed on a JSON type that is not an object.

"},{"location":"api/basic_json/find/#examples","title":"Examples","text":"Example: (1) find object element by key

The example shows how find() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call find\n    auto it_two = j_object.find(\"two\");\n    auto it_three = j_object.find(\"three\");\n\n    // print values\n    std::cout << std::boolalpha;\n    std::cout << \"\\\"two\\\" was found: \" << (it_two != j_object.end()) << '\\n';\n    std::cout << \"value at key \\\"two\\\": \" << *it_two << '\\n';\n    std::cout << \"\\\"three\\\" was found: \" << (it_three != j_object.end()) << '\\n';\n}\n

Output:

\"two\" was found: true\nvalue at key \"two\": 2\n\"three\" was found: false\n
Example: (2) find object element by key using string_view

The example shows how find() is used.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n\n    // call find\n    auto it_two = j_object.find(\"two\"sv);\n    auto it_three = j_object.find(\"three\"sv);\n\n    // print values\n    std::cout << std::boolalpha;\n    std::cout << \"\\\"two\\\" was found: \" << (it_two != j_object.end()) << '\\n';\n    std::cout << \"value at key \\\"two\\\": \" << *it_two << '\\n';\n    std::cout << \"\\\"three\\\" was found: \" << (it_three != j_object.end()) << '\\n';\n}\n

Output:

\"two\" was found: true\nvalue at key \"two\": 2\n\"three\" was found: false\n
"},{"location":"api/basic_json/find/#see-also","title":"See also","text":"
  • contains checks whether a key exists
"},{"location":"api/basic_json/find/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 1.0.0. Changed to support comparable types in version 3.11.0.
"},{"location":"api/basic_json/flatten/","title":"nlohmann::basic_json::flatten","text":"
basic_json flatten() const;\n

The function creates a JSON object whose keys are JSON pointers (see RFC 6901) and whose values are all primitive (see is_primitive() for more information). The original JSON value can be restored using the unflatten() function.

"},{"location":"api/basic_json/flatten/#return-value","title":"Return value","text":"

an object that maps JSON pointers to primitive values

"},{"location":"api/basic_json/flatten/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/flatten/#complexity","title":"Complexity","text":"

Linear in the size the JSON value.

"},{"location":"api/basic_json/flatten/#notes","title":"Notes","text":"

Empty objects and arrays are flattened to null and will not be reconstructed correctly by the unflatten() function.

"},{"location":"api/basic_json/flatten/#examples","title":"Examples","text":"Example

The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value\n    json j =\n    {\n        {\"pi\", 3.141},\n        {\"happy\", true},\n        {\"name\", \"Niels\"},\n        {\"nothing\", nullptr},\n        {\n            \"answer\", {\n                {\"everything\", 42}\n            }\n        },\n        {\"list\", {1, 0, 2}},\n        {\n            \"object\", {\n                {\"currency\", \"USD\"},\n                {\"value\", 42.99}\n            }\n        }\n    };\n\n    // call flatten()\n    std::cout << std::setw(4) << j.flatten() << '\\n';\n}\n

Output:

{\n    \"/answer/everything\": 42,\n    \"/happy\": true,\n    \"/list/0\": 1,\n    \"/list/1\": 0,\n    \"/list/2\": 2,\n    \"/name\": \"Niels\",\n    \"/nothing\": null,\n    \"/object/currency\": \"USD\",\n    \"/object/value\": 42.99,\n    \"/pi\": 3.141\n}\n
"},{"location":"api/basic_json/flatten/#see-also","title":"See also","text":"
  • unflatten the reverse function
"},{"location":"api/basic_json/flatten/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/from_bjdata/","title":"nlohmann::basic_json::from_bjdata","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_bjdata(InputType&& i,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_bjdata(IteratorType first, IteratorType last,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the BJData (Binary JData) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_bjdata/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_bjdata/#parameters","title":"Parameters","text":"i (in) an input in BJData format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_bjdata/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_bjdata/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_bjdata/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if a parse error occurs
  • Throws parse_error.113 if a string could not be parsed successfully
"},{"location":"api/basic_json/from_bjdata/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_bjdata/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in BJData format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with BJData\n    json j = json::from_bjdata(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_bjdata/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/from_bson/","title":"nlohmann::basic_json::from_bson","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_bson(InputType&& i,\n                            const bool strict = true,\n                            const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_bson(IteratorType first, IteratorType last,\n                            const bool strict = true,\n                            const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the BSON (Binary JSON) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_bson/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_bson/#parameters","title":"Parameters","text":"i (in) an input in BSON format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_bson/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_bson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_bson/#exceptions","title":"Exceptions","text":"

Throws parse_error.114 if an unsupported BSON record type is encountered.

"},{"location":"api/basic_json/from_bson/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_bson/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in BSON format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x1b, 0x00, 0x00, 0x00, 0x08, 0x63, 0x6f, 0x6d,\n                                   0x70, 0x61, 0x63, 0x74, 0x00, 0x01, 0x10, 0x73,\n                                   0x63, 0x68, 0x65, 0x6d, 0x61, 0x00, 0x00, 0x00,\n                                   0x00, 0x00, 0x00\n                                  };\n\n    // deserialize it with BSON\n    json j = json::from_bson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_bson/#see-also","title":"See also","text":"
  • BSON specification
  • to_bson for the analogous serialization
  • from_cbor for the related CBOR format
  • from_msgpack for the related MessagePack format
  • from_ubjson for the related UBJSON format
"},{"location":"api/basic_json/from_bson/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.

Deprecation

  • Overload (2) replaces calls to from_bson with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_bson(ptr, len, ...); with from_bson(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_bson with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_bson({ptr, ptr+len}, ...); with from_bson(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_cbor/","title":"nlohmann::basic_json::from_cbor","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_cbor(InputType&& i,\n                            const bool strict = true,\n                            const bool allow_exceptions = true,\n                            const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error);\n\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_cbor(IteratorType first, IteratorType last,\n                            const bool strict = true,\n                            const bool allow_exceptions = true,\n                            const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error);\n

Deserializes a given input to a JSON value using the CBOR (Concise Binary Object Representation) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_cbor/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_cbor/#parameters","title":"Parameters","text":"i (in) an input in CBOR format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default) tag_handler (in) how to treat CBOR tags (optional, error by default); see cbor_tag_handler_t for more information"},{"location":"api/basic_json/from_cbor/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_cbor/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_cbor/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if unsupported features from CBOR were used in the given input or if the input is not valid CBOR
  • Throws parse_error.113 if a string was expected as map key, but not found
"},{"location":"api/basic_json/from_cbor/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_cbor/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in CBOR format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0xa2, 0x67, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xf5, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with CBOR\n    json j = json::from_cbor(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_cbor/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Parameter start_index since version 2.1.1.
  • Changed to consume input adapters, removed start_index parameter, and added strict parameter in version 3.0.0.
  • Added allow_exceptions parameter in version 3.2.0.
  • Added tag_handler parameter in version 3.9.0.

Deprecation

  • Overload (2) replaces calls to from_cbor with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_cbor(ptr, len, ...); with from_cbor(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_cbor with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_cbor({ptr, ptr+len}, ...); with from_cbor(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_msgpack/","title":"nlohmann::basic_json::from_msgpack","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_msgpack(InputType&& i,\n                               const bool strict = true,\n                               const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_msgpack(IteratorType first, IteratorType last,\n                               const bool strict = true,\n                               const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the MessagePack serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_msgpack/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_msgpack/#parameters","title":"Parameters","text":"i (in) an input in MessagePack format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_msgpack/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_msgpack/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_msgpack/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if unsupported features from MessagePack were used in the given input or if the input is not valid MessagePack
  • Throws parse_error.113 if a string was expected as map key, but not found
"},{"location":"api/basic_json/from_msgpack/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_msgpack/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in MessagePack format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x82, 0xa7, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xc3, 0xa6, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with MessagePack\n    json j = json::from_msgpack(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_msgpack/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Parameter start_index since version 2.1.1.
  • Changed to consume input adapters, removed start_index parameter, and added strict parameter in version 3.0.0.
  • Added allow_exceptions parameter in version 3.2.0.

Deprecation

  • Overload (2) replaces calls to from_msgpack with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_msgpack(ptr, len, ...); with from_msgpack(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_cbor with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_msgpack({ptr, ptr+len}, ...); with from_msgpack(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/from_ubjson/","title":"nlohmann::basic_json::from_ubjson","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json from_ubjson(InputType&& i,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json from_ubjson(IteratorType first, IteratorType last,\n                              const bool strict = true,\n                              const bool allow_exceptions = true);\n

Deserializes a given input to a JSON value using the UBJSON (Universal Binary JSON) serialization format.

  1. Reads from a compatible input.
  2. Reads from an iterator range.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/from_ubjson/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType a compatible iterator type"},{"location":"api/basic_json/from_ubjson/#parameters","title":"Parameters","text":"i (in) an input in UBJSON format convertible to an input adapter first (in) iterator to start of the input last (in) iterator to end of the input strict (in) whether to expect the input to be consumed until EOF (true by default) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default)"},{"location":"api/basic_json/from_ubjson/#return-value","title":"Return value","text":"

deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/from_ubjson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/from_ubjson/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.110 if the given input ends prematurely or the end of file was not reached when strict was set to true
  • Throws parse_error.112 if a parse error occurs
  • Throws parse_error.113 if a string could not be parsed successfully
"},{"location":"api/basic_json/from_ubjson/#complexity","title":"Complexity","text":"

Linear in the size of the input.

"},{"location":"api/basic_json/from_ubjson/#examples","title":"Examples","text":"Example

The example shows the deserialization of a byte vector in UBJSON format to a JSON value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with UBJSON\n    json j = json::from_ubjson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"api/basic_json/from_ubjson/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
  • Added allow_exceptions parameter in version 3.2.0.

Deprecation

  • Overload (2) replaces calls to from_ubjson with a pointer and a length as first two parameters, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_ubjson(ptr, len, ...); with from_ubjson(ptr, ptr+len, ...);.
  • Overload (2) replaces calls to from_ubjson with a pair of iterators as their first parameter, which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like from_ubjson({ptr, ptr+len}, ...); with from_ubjson(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/front/","title":"nlohmann::basic_json::front","text":"
reference front();\nconst_reference front() const;\n

Returns a reference to the first element in the container. For a JSON container c, the expression c.front() is equivalent to *c.begin().

"},{"location":"api/basic_json/front/#return-value","title":"Return value","text":"

In case of a structured type (array or object), a reference to the first element is returned. In case of number, string, boolean, or binary values, a reference to the value is returned.

"},{"location":"api/basic_json/front/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/front/#exceptions","title":"Exceptions","text":"

If the JSON value is null, exception invalid_iterator.214 is thrown.

"},{"location":"api/basic_json/front/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/front/#notes","title":"Notes","text":"

Precondition

The array or object must not be empty. Calling front on an empty array or object yields undefined behavior.

"},{"location":"api/basic_json/front/#examples","title":"Examples","text":"Example

The following code shows an example for front().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call front()\n    //std::cout << j_null.front() << '\\n';          // would throw\n    std::cout << j_boolean.front() << '\\n';\n    std::cout << j_number_integer.front() << '\\n';\n    std::cout << j_number_float.front() << '\\n';\n    std::cout << j_object.front() << '\\n';\n    //std::cout << j_object_empty.front() << '\\n';  // undefined behavior\n    std::cout << j_array.front() << '\\n';\n    //std::cout << j_array_empty.front() << '\\n';   // undefined behavior\n    std::cout << j_string.front() << '\\n';\n}\n

Output:

true\n17\n23.42\n1\n1\n\"Hello, world\"\n
"},{"location":"api/basic_json/front/#see-also","title":"See also","text":"
  • back to access the last element
"},{"location":"api/basic_json/front/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Adjusted code to return reference to binary values in version 3.8.0.
"},{"location":"api/basic_json/get/","title":"nlohmann::basic_json::get","text":"
// (1)\ntemplate<typename ValueType>\nValueType get() const noexcept(\n    noexcept(JSONSerializer<ValueType>::from_json(\n        std::declval<const basic_json_t&>(), std::declval<ValueType&>())));\n\n// (2)\ntemplate<typename BasicJsonType>\nBasicJsonType get() const;\n\n// (3)\ntemplate<typename PointerType>\nPointerType get_ptr();\n\ntemplate<typename PointerType>\nconstexpr const PointerType get_ptr() const noexcept;\n
  1. Explicit type conversion between the JSON value and a compatible value which is CopyConstructible and DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json() method.

    The function is equivalent to executing

    ValueType ret;\nJSONSerializer<ValueType>::from_json(*this, ret);\nreturn ret;\n

    This overload is chosen if:

    • ValueType is not basic_json,
    • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&), and
    • json_serializer<ValueType> does not have a from_json() method of the form ValueType from_json(const basic_json&)

    If the type is not CopyConstructible and not DefaultConstructible, the value is converted by calling the json_serializer<ValueType> from_json() method.

    The function is then equivalent to executing

    return JSONSerializer<ValueTypeCV>::from_json(*this);\n

    This overload is chosen if:

    • ValueType is not basic_json and
    • json_serializer<ValueType> has a from_json() method of the form ValueType from_json(const basic_json&)

    If json_serializer<ValueType> has both overloads of from_json(), the latter one is chosen.

  2. Overload for basic_json specializations. The function is equivalent to executing

    return *this;\n

  3. Explicit pointer access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get/#template-parameters","title":"Template parameters","text":"ValueType the value type to return BasicJsonType a specialization of basic_json PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Other types will not compile."},{"location":"api/basic_json/get/#return-value","title":"Return value","text":"
  1. copy of the JSON value, converted to ValueType
  2. a copy of *this, converted into BasicJsonType
  3. pointer to the internally stored JSON value if the requested pointer type fits to the JSON value; nullptr otherwise
"},{"location":"api/basic_json/get/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/get/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the pointee (overload 3) of the result yields an undefined state.

"},{"location":"api/basic_json/get/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    // use explicit conversions\n    auto v1 = json_types[\"boolean\"].template get<bool>();\n    auto v2 = json_types[\"number\"][\"integer\"].template get<int>();\n    auto v3 = json_types[\"number\"][\"integer\"].template get<short>();\n    auto v4 = json_types[\"number\"][\"floating-point\"].template get<float>();\n    auto v5 = json_types[\"number\"][\"floating-point\"].template get<int>();\n    auto v6 = json_types[\"string\"].template get<std::string>();\n    auto v7 = json_types[\"array\"].template get<std::vector<short>>();\n    auto v8 = json_types.template get<std::unordered_map<std::string, json>>();\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n
Example

The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a #cpp nullptr is returned if the value and the requested pointer type does not match.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting pointers\n    auto p1 = value.template get<const json::number_integer_t*>();\n    auto p2 = value.template get<json::number_integer_t*>();\n    auto p3 = value.template get<json::number_integer_t* const>();\n    auto p4 = value.template get<const json::number_integer_t* const>();\n    auto p5 = value.template get<json::number_float_t*>();\n\n    // print the pointees\n    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\\n';\n    std::cout << std::boolalpha << (p5 == nullptr) << '\\n';\n}\n

Output:

17 17 17 17\ntrue\n
"},{"location":"api/basic_json/get/#version-history","title":"Version history","text":"
  1. Since version 2.1.0.
  2. Since version 2.1.0. Extended to work with other specializations of basic_json in version 3.2.0.
  3. Since version 1.0.0.
"},{"location":"api/basic_json/get_allocator/","title":"nlohmann::basic_json::get_allocator","text":"
static allocator_type get_allocator();\n

Returns the allocator associated with the container.

"},{"location":"api/basic_json/get_allocator/#return-value","title":"Return value","text":"

associated allocator

"},{"location":"api/basic_json/get_allocator/#examples","title":"Examples","text":"Example

The example shows how get_allocator() is used to created json values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    auto alloc = json::get_allocator();\n    using traits_t = std::allocator_traits<decltype(alloc)>;\n\n    json* j = traits_t::allocate(alloc, 1);\n    traits_t::construct(alloc, j, \"Hello, world!\");\n\n    std::cout << *j << std::endl;\n\n    traits_t::destroy(alloc, j);\n    traits_t::deallocate(alloc, j, 1);\n}\n

Output:

\"Hello, world!\"\n
"},{"location":"api/basic_json/get_allocator/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/get_binary/","title":"nlohmann::basic_json::get_binary","text":"
binary_t& get_binary();\n\nconst binary_t& get_binary() const;\n

Returns a reference to the stored binary value.

"},{"location":"api/basic_json/get_binary/#return-value","title":"Return value","text":"

Reference to binary value.

"},{"location":"api/basic_json/get_binary/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/get_binary/#exceptions","title":"Exceptions","text":"

Throws type_error.302 if the value is not binary

"},{"location":"api/basic_json/get_binary/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_binary/#examples","title":"Examples","text":"Example

The following code shows how to query a binary value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary vector\n    std::vector<std::uint8_t> vec = {0xCA, 0xFE, 0xBA, 0xBE};\n\n    // create a binary JSON value with subtype 42\n    json j = json::binary(vec, 42);\n\n    // output type and subtype\n    std::cout << \"type: \" << j.type_name() << \", subtype: \" << j.get_binary().subtype() << std::endl;\n}\n

Output:

type: binary, subtype: 42\n
"},{"location":"api/basic_json/get_binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/get_ptr/","title":"nlohmann::basic_json::get_ptr","text":"
template<typename PointerType>\nPointerType get_ptr() noexcept;\n\ntemplate<typename PointerType>\nconstexpr const PointerType get_ptr() const noexcept;\n

Implicit pointer access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get_ptr/#template-parameters","title":"Template parameters","text":"PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Other types will not compile."},{"location":"api/basic_json/get_ptr/#return-value","title":"Return value","text":"

pointer to the internally stored JSON value if the requested pointer type fits to the JSON value; nullptr otherwise

"},{"location":"api/basic_json/get_ptr/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/get_ptr/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_ptr/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the pointee of the result yields an undefined state.

"},{"location":"api/basic_json/get_ptr/#examples","title":"Examples","text":"Example

The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting pointers\n    auto p1 = value.get_ptr<const json::number_integer_t*>();\n    auto p2 = value.get_ptr<json::number_integer_t*>();\n    auto p3 = value.get_ptr<json::number_integer_t* const>();\n    auto p4 = value.get_ptr<const json::number_integer_t* const>();\n    auto p5 = value.get_ptr<json::number_float_t*>();\n\n    // print the pointees\n    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\\n';\n    std::cout << std::boolalpha << (p5 == nullptr) << '\\n';\n}\n

Output:

17 17 17 17\ntrue\n
"},{"location":"api/basic_json/get_ptr/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to binary types in version 3.8.0.
"},{"location":"api/basic_json/get_ref/","title":"nlohmann::basic_json::get_ref","text":"
template<typename ReferenceType>\nReferenceType get_ref();\n\ntemplate<typename ReferenceType>\nconst ReferenceType get_ref() const;\n

Implicit reference access to the internally stored JSON value. No copies are made.

"},{"location":"api/basic_json/get_ref/#template-parameters","title":"Template parameters","text":"ReferenceType reference type; must be a reference to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Enforced by a static assertion."},{"location":"api/basic_json/get_ref/#return-value","title":"Return value","text":"

reference to the internally stored JSON value if the requested reference type fits to the JSON value; throws type_error.303 otherwise

"},{"location":"api/basic_json/get_ref/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/get_ref/#exceptions","title":"Exceptions","text":"

Throws type_error.303 if the requested reference type does not match the stored JSON value type; example: \"incompatible ReferenceType for get_ref, actual type is binary\".

"},{"location":"api/basic_json/get_ref/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/get_ref/#notes","title":"Notes","text":"

Undefined behavior

Writing data to the referee of the result yields an undefined state.

"},{"location":"api/basic_json/get_ref/#examples","title":"Examples","text":"Example

The example shows several calls to get_ref().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON number\n    json value = 17;\n\n    // explicitly getting references\n    auto r1 = value.get_ref<const json::number_integer_t&>();\n    auto r2 = value.get_ref<json::number_integer_t&>();\n\n    // print the values\n    std::cout << r1 << ' ' << r2 << '\\n';\n\n    // incompatible type throws exception\n    try\n    {\n        auto r3 = value.get_ref<json::number_float_t&>();\n    }\n    catch (const json::type_error& ex)\n    {\n        std::cout << ex.what() << '\\n';\n    }\n}\n

Output:

17 17\n[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number\n
"},{"location":"api/basic_json/get_ref/#version-history","title":"Version history","text":"
  • Added in version 1.1.0.
  • Extended to binary types in version 3.8.0.
"},{"location":"api/basic_json/get_to/","title":"nlohmann::basic_json::get_to","text":"
template<typename ValueType>\nValueType& get_to(ValueType& v) const noexcept(\n    noexcept(JSONSerializer<ValueType>::from_json(\n        std::declval<const basic_json_t&>(), v)));\n

Explicit type conversion between the JSON value and a compatible value. The value is filled into the input parameter by calling the json_serializer<ValueType> from_json() method.

The function is equivalent to executing

ValueType v;\nJSONSerializer<ValueType>::from_json(*this, v);\n

This overload is chosen if:

  • ValueType is not basic_json,
  • json_serializer<ValueType> has a from_json() method of the form void from_json(const basic_json&, ValueType&)
"},{"location":"api/basic_json/get_to/#template-parameters","title":"Template parameters","text":"ValueType the value type to return"},{"location":"api/basic_json/get_to/#return-value","title":"Return value","text":"

the input parameter, allowing chaining calls

"},{"location":"api/basic_json/get_to/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/get_to/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as #cpp std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    bool v1;\n    int v2;\n    short v3;\n    float v4;\n    int v5;\n    std::string v6;\n    std::vector<short> v7;\n    std::unordered_map<std::string, json> v8;\n\n    // use explicit conversions\n    json_types[\"boolean\"].get_to(v1);\n    json_types[\"number\"][\"integer\"].get_to(v2);\n    json_types[\"number\"][\"integer\"].get_to(v3);\n    json_types[\"number\"][\"floating-point\"].get_to(v4);\n    json_types[\"number\"][\"floating-point\"].get_to(v5);\n    json_types[\"string\"].get_to(v6);\n    json_types[\"array\"].get_to(v7);\n    json_types.get_to(v8);\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n
"},{"location":"api/basic_json/get_to/#version-history","title":"Version history","text":"
  • Since version 3.3.0.
"},{"location":"api/basic_json/input_format_t/","title":"nlohmann::basic_json::input_format_t","text":"
enum class input_format_t {\n    json,\n    cbor,\n    msgpack,\n    ubjson,\n    bson,\n    bjdata\n};\n

This enumeration is used in the sax_parse function to choose the input format to parse:

json JSON (JavaScript Object Notation) cbor CBOR (Concise Binary Object Representation) msgpack MessagePack ubjson UBJSON (Universal Binary JSON) bson BSON (Binary JSON) bjdata BJData (Binary JData)"},{"location":"api/basic_json/input_format_t/#examples","title":"Examples","text":"Example

The example below shows how an input_format_t enum value is passed to sax_parse to set the input format to CBOR.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // CBOR byte string\n    std::vector<std::uint8_t> vec = {{0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse CBOR\n    bool result = json::sax_parse(vec, &sec, json::input_format_t::cbor);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

binary(val=[...])\n\nresult: true\n
"},{"location":"api/basic_json/input_format_t/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/basic_json/insert/","title":"nlohmann::basic_json::insert","text":"
// (1)\niterator insert(const_iterator pos, const basic_json& val);\niterator insert(const_iterator pos, basic_json&& val);\n\n// (2)\niterator insert(const_iterator pos, size_type cnt, const basic_json& val);\n\n// (3)\niterator insert(const_iterator pos, const_iterator first, const_iterator last);\n\n// (4)\niterator insert(const_iterator pos, initializer_list_t ilist);\n\n// (5)\nvoid insert(const_iterator first, const_iterator last);\n
  1. Inserts element val into array before iterator pos.
  2. Inserts cnt copies of val into array before iterator pos.
  3. Inserts elements from range [first, last) into array before iterator pos.
  4. Inserts elements from initializer list ilist into array before iterator pos.
  5. Inserts elements from range [first, last) into object.
"},{"location":"api/basic_json/insert/#parameters","title":"Parameters","text":"pos (in) iterator before which the content will be inserted; may be the end() iterator val (in) value to insert cnt (in) number of copies of val to insert first (in) begin of the range of elements to insert last (in) end of the range of elements to insert ilist (in) initializer list to insert the values from"},{"location":"api/basic_json/insert/#return-value","title":"Return value","text":"
  1. iterator pointing to the inserted val.
  2. iterator pointing to the first element inserted, or pos if cnt==0
  3. iterator pointing to the first element inserted, or pos if first==last
  4. iterator pointing to the first element inserted, or pos if ilist is empty
  5. (none)
"},{"location":"api/basic_json/insert/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/insert/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  2. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  3. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
    • Throws invalid_iterator.211 if first or last are iterators into container for which insert is called; example: \"passed iterators may not belong to container\"
  4. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than arrays; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
  5. The function can throw the following exceptions:
    • Throws type_error.309 if called on JSON values other than objects; example: \"cannot use insert() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
"},{"location":"api/basic_json/insert/#complexity","title":"Complexity","text":"
  1. Constant plus linear in the distance between pos and end of the container.
  2. Linear in cnt plus linear in the distance between pos and end of the container.
  3. Linear in std::distance(first, last) plus linear in the distance between pos and end of the container.
  4. Linear in ilist.size() plus linear in the distance between pos and end of the container.
  5. Logarithmic: O(N*log(size() + N)), where N is the number of elements to insert.
"},{"location":"api/basic_json/insert/#examples","title":"Examples","text":"Example (1): insert element into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert number 10 before number 3\n    auto new_pos = v.insert(v.begin() + 2, 10);\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

10\n[1,2,10,3,4]\n
Example (2): insert copies of element into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert number 7 copies of number 7 before number 3\n    auto new_pos = v.insert(v.begin() + 2, 7, 7);\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

7\n[1,2,7,7,7,7,7,7,7,3,4]\n
Example (3): insert range of elements into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // create a JSON array to copy values from\n    json v2 = {\"one\", \"two\", \"three\", \"four\"};\n\n    // insert range from v2 before the end of array v\n    auto new_pos = v.insert(v.end(), v2.begin(), v2.end());\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

\"one\"\n[1,2,3,4,\"one\",\"two\",\"three\",\"four\"]\n
Example (4): insert elements from initializer list into array

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json v = {1, 2, 3, 4};\n\n    // insert range from v2 before the end of array v\n    auto new_pos = v.insert(v.end(), {7, 8, 9});\n\n    // output new array and result of insert call\n    std::cout << *new_pos << '\\n';\n    std::cout << v << '\\n';\n}\n

Output:

7\n[1,2,3,4,7,8,9]\n
Example (5): insert range of elements into object

The example shows how insert() is used.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create two JSON objects\n    json j1 = {{\"one\", \"eins\"}, {\"two\", \"zwei\"}};\n    json j2 = {{\"eleven\", \"elf\"}, {\"seventeen\", \"siebzehn\"}};\n\n    // output objects\n    std::cout << j1 << '\\n';\n    std::cout << j2 << '\\n';\n\n    // insert range from j2 to j1\n    j1.insert(j2.begin(), j2.end());\n\n    // output result of insert call\n    std::cout << j1 << '\\n';\n}\n

Output:

{\"one\":\"eins\",\"two\":\"zwei\"}\n{\"eleven\":\"elf\",\"seventeen\":\"siebzehn\"}\n{\"eleven\":\"elf\",\"one\":\"eins\",\"seventeen\":\"siebzehn\",\"two\":\"zwei\"}\n
"},{"location":"api/basic_json/insert/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0.
  3. Added in version 1.0.0.
  4. Added in version 1.0.0.
  5. Added in version 3.0.0.
"},{"location":"api/basic_json/invalid_iterator/","title":"nlohmann::basic_json::invalid_iterator","text":"
class invalid_iterator : public exception;\n

This exception is thrown if iterators passed to a library function do not match the expected semantics.

Exceptions have ids 2xx (see list of iterator errors).

"},{"location":"api/basic_json/invalid_iterator/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/invalid_iterator/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/invalid_iterator/#examples","title":"Examples","text":"Example

The following code shows how a invalid_iterator exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling iterator::key() on non-object iterator\n        json j = \"string\";\n        json::iterator it = j.begin();\n        auto k = it.key();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.invalid_iterator.207] cannot use key() for non-object iterators\nexception id: 207\n
"},{"location":"api/basic_json/invalid_iterator/#see-also","title":"See also","text":"
  • List of iterator errors
  • parse_error for exceptions indicating a parse error
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/invalid_iterator/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/is_array/","title":"nlohmann::basic_json::is_array","text":"
constexpr bool is_array() const noexcept;\n

This function returns true if and only if the JSON value is an array.

"},{"location":"api/basic_json/is_array/#return-value","title":"Return value","text":"

true if type is an array, false otherwise.

"},{"location":"api/basic_json/is_array/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_array/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_array/#examples","title":"Examples","text":"Example

The following code exemplifies is_array() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_array()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_array() << '\\n';\n    std::cout << j_boolean.is_array() << '\\n';\n    std::cout << j_number_integer.is_array() << '\\n';\n    std::cout << j_number_unsigned_integer.is_array() << '\\n';\n    std::cout << j_number_float.is_array() << '\\n';\n    std::cout << j_object.is_array() << '\\n';\n    std::cout << j_array.is_array() << '\\n';\n    std::cout << j_string.is_array() << '\\n';\n    std::cout << j_binary.is_array() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\n
"},{"location":"api/basic_json/is_array/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_binary/","title":"nlohmann::basic_json::is_binary","text":"
constexpr bool is_binary() const noexcept;\n

This function returns true if and only if the JSON value is binary array.

"},{"location":"api/basic_json/is_binary/#return-value","title":"Return value","text":"

true if type is binary, false otherwise.

"},{"location":"api/basic_json/is_binary/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_binary/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_binary/#examples","title":"Examples","text":"Example

The following code exemplifies is_binary() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_binary()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_binary() << '\\n';\n    std::cout << j_boolean.is_binary() << '\\n';\n    std::cout << j_number_integer.is_binary() << '\\n';\n    std::cout << j_number_unsigned_integer.is_binary() << '\\n';\n    std::cout << j_number_float.is_binary() << '\\n';\n    std::cout << j_object.is_binary() << '\\n';\n    std::cout << j_array.is_binary() << '\\n';\n    std::cout << j_string.is_binary() << '\\n';\n    std::cout << j_binary.is_binary() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\n
"},{"location":"api/basic_json/is_binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/basic_json/is_boolean/","title":"nlohmann::basic_json::is_boolean","text":"
constexpr bool is_boolean() const noexcept;\n

This function returns true if and only if the JSON value is true or false.

"},{"location":"api/basic_json/is_boolean/#return-value","title":"Return value","text":"

true if type is boolean, false otherwise.

"},{"location":"api/basic_json/is_boolean/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_boolean/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_boolean/#examples","title":"Examples","text":"Example

The following code exemplifies is_boolean() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_boolean()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_boolean() << '\\n';\n    std::cout << j_boolean.is_boolean() << '\\n';\n    std::cout << j_number_integer.is_boolean() << '\\n';\n    std::cout << j_number_unsigned_integer.is_boolean() << '\\n';\n    std::cout << j_number_float.is_boolean() << '\\n';\n    std::cout << j_object.is_boolean() << '\\n';\n    std::cout << j_array.is_boolean() << '\\n';\n    std::cout << j_string.is_boolean() << '\\n';\n    std::cout << j_binary.is_boolean() << '\\n';\n}\n

Output:

false\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_boolean/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_discarded/","title":"nlohmann::basic_json::is_discarded","text":"
constexpr bool is_discarded() const noexcept;\n

This function returns true for a JSON value if either:

  • the value was discarded during parsing with a callback function (see parser_callback_t), or
  • the value is the result of parsing invalid JSON with parameter allow_exceptions set to false; see parse for more information.
"},{"location":"api/basic_json/is_discarded/#return-value","title":"Return value","text":"

true if type is discarded, false otherwise.

"},{"location":"api/basic_json/is_discarded/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_discarded/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_discarded/#notes","title":"Notes","text":"

Comparisons

Discarded values are never compared equal with operator==. That is, checking whether a JSON value j is discarded will only work via:

j.is_discarded()\n

because

j == json::value_t::discarded\n

will always be false.

Removal during parsing with callback functions

When a value is discarded by a callback function (see parser_callback_t) during parsing, then it is removed when it is part of a structured value. For instance, if the second value of an array is discarded, instead of [null, discarded, false], the array [null, false] is returned. Only if the top-level value is discarded, the return value of the parse call is discarded.

This function will always be false for JSON values after parsing. That is, discarded values can only occur during parsing, but will be removed when inside a structured value or replaced by null in other cases.

"},{"location":"api/basic_json/is_discarded/#examples","title":"Examples","text":"Example

The following code exemplifies is_discarded() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_discarded()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_discarded() << '\\n';\n    std::cout << j_boolean.is_discarded() << '\\n';\n    std::cout << j_number_integer.is_discarded() << '\\n';\n    std::cout << j_number_unsigned_integer.is_discarded() << '\\n';\n    std::cout << j_number_float.is_discarded() << '\\n';\n    std::cout << j_object.is_discarded() << '\\n';\n    std::cout << j_array.is_discarded() << '\\n';\n    std::cout << j_string.is_discarded() << '\\n';\n    std::cout << j_binary.is_discarded() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_discarded/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_null/","title":"nlohmann::basic_json::is_null","text":"
constexpr bool is_null() const noexcept;\n

This function returns true if and only if the JSON value is null.

"},{"location":"api/basic_json/is_null/#return-value","title":"Return value","text":"

true if type is null, false otherwise.

"},{"location":"api/basic_json/is_null/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_null/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_null/#examples","title":"Examples","text":"Example

The following code exemplifies is_null() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_null()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_null() << '\\n';\n    std::cout << j_boolean.is_null() << '\\n';\n    std::cout << j_number_integer.is_null() << '\\n';\n    std::cout << j_number_unsigned_integer.is_null() << '\\n';\n    std::cout << j_number_float.is_null() << '\\n';\n    std::cout << j_object.is_null() << '\\n';\n    std::cout << j_array.is_null() << '\\n';\n    std::cout << j_string.is_null() << '\\n';\n    std::cout << j_binary.is_null() << '\\n';\n}\n

Output:

true\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_null/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_number/","title":"nlohmann::basic_json::is_number","text":"
constexpr bool is_number() const noexcept;\n

This function returns true if and only if the JSON value is a number. This includes both integer (signed and unsigned) and floating-point values.

"},{"location":"api/basic_json/is_number/#return-value","title":"Return value","text":"

true if type is number (regardless whether integer, unsigned integer or floating-type), false otherwise.

"},{"location":"api/basic_json/is_number/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_number() const noexcept\n{\n    return is_number_integer() || is_number_float();\n}\n
"},{"location":"api/basic_json/is_number/#examples","title":"Examples","text":"Example

The following code exemplifies is_number() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number() << '\\n';\n    std::cout << j_boolean.is_number() << '\\n';\n    std::cout << j_number_integer.is_number() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number() << '\\n';\n    std::cout << j_number_float.is_number() << '\\n';\n    std::cout << j_object.is_number() << '\\n';\n    std::cout << j_array.is_number() << '\\n';\n    std::cout << j_string.is_number() << '\\n';\n    std::cout << j_binary.is_number() << '\\n';\n}\n

Output:

false\nfalse\ntrue\ntrue\ntrue\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number/#see-also","title":"See also","text":"
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_unsigned() check if value is an unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to also return true for unsigned integers in 2.0.0.
"},{"location":"api/basic_json/is_number_float/","title":"nlohmann::basic_json::is_number_float","text":"
constexpr bool is_number_float() const noexcept;\n

This function returns true if and only if the JSON value is a floating-point number. This excludes signed and unsigned integer values.

"},{"location":"api/basic_json/is_number_float/#return-value","title":"Return value","text":"

true if type is a floating-point number, false otherwise.

"},{"location":"api/basic_json/is_number_float/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_float/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_float/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_float() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_float()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_float() << '\\n';\n    std::cout << j_boolean.is_number_float() << '\\n';\n    std::cout << j_number_integer.is_number_float() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_float() << '\\n';\n    std::cout << j_number_float.is_number_float() << '\\n';\n    std::cout << j_object.is_number_float() << '\\n';\n    std::cout << j_array.is_number_float() << '\\n';\n    std::cout << j_string.is_number_float() << '\\n';\n    std::cout << j_binary.is_number_float() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_float/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_unsigned() check if value is an unsigned integer number
"},{"location":"api/basic_json/is_number_float/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_number_integer/","title":"nlohmann::basic_json::is_number_integer","text":"
constexpr bool is_number_integer() const noexcept;\n

This function returns true if and only if the JSON value is a signed or unsigned integer number. This excludes floating-point values.

"},{"location":"api/basic_json/is_number_integer/#return-value","title":"Return value","text":"

true if type is an integer or unsigned integer number, false otherwise.

"},{"location":"api/basic_json/is_number_integer/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_integer/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_integer/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_integer() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_integer()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_integer() << '\\n';\n    std::cout << j_boolean.is_number_integer() << '\\n';\n    std::cout << j_number_integer.is_number_integer() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_integer() << '\\n';\n    std::cout << j_number_float.is_number_integer() << '\\n';\n    std::cout << j_object.is_number_integer() << '\\n';\n    std::cout << j_array.is_number_integer() << '\\n';\n    std::cout << j_string.is_number_integer() << '\\n';\n    std::cout << j_binary.is_number_integer() << '\\n';\n}\n

Output:

false\nfalse\ntrue\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_integer/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_unsigned() check if value is an unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number_integer/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to also return true for unsigned integers in 2.0.0.
"},{"location":"api/basic_json/is_number_unsigned/","title":"nlohmann::basic_json::is_number_unsigned","text":"
constexpr bool is_number_unsigned() const noexcept;\n

This function returns true if and only if the JSON value is an unsigned integer number. This excludes floating-point and signed integer values.

"},{"location":"api/basic_json/is_number_unsigned/#return-value","title":"Return value","text":"

true if type is an unsigned integer number, false otherwise.

"},{"location":"api/basic_json/is_number_unsigned/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_number_unsigned/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_number_unsigned/#examples","title":"Examples","text":"Example

The following code exemplifies is_number_unsigned() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_number_unsigned()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_number_unsigned() << '\\n';\n    std::cout << j_boolean.is_number_unsigned() << '\\n';\n    std::cout << j_number_integer.is_number_unsigned() << '\\n';\n    std::cout << j_number_unsigned_integer.is_number_unsigned() << '\\n';\n    std::cout << j_number_float.is_number_unsigned() << '\\n';\n    std::cout << j_object.is_number_unsigned() << '\\n';\n    std::cout << j_array.is_number_unsigned() << '\\n';\n    std::cout << j_string.is_number_unsigned() << '\\n';\n    std::cout << j_binary.is_number_unsigned() << '\\n';\n}\n

Output:

false\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_number_unsigned/#see-also","title":"See also","text":"
  • is_number() check if value is a number
  • is_number_integer() check if value is an integer or unsigned integer number
  • is_number_float() check if value is a floating-point number
"},{"location":"api/basic_json/is_number_unsigned/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/is_object/","title":"nlohmann::basic_json::is_object","text":"
constexpr bool is_object() const noexcept;\n

This function returns true if and only if the JSON value is an object.

"},{"location":"api/basic_json/is_object/#return-value","title":"Return value","text":"

true if type is an object, false otherwise.

"},{"location":"api/basic_json/is_object/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_object/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_object/#examples","title":"Examples","text":"Example

The following code exemplifies is_object() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_object()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_object() << '\\n';\n    std::cout << j_boolean.is_object() << '\\n';\n    std::cout << j_number_integer.is_object() << '\\n';\n    std::cout << j_number_unsigned_integer.is_object() << '\\n';\n    std::cout << j_number_float.is_object() << '\\n';\n    std::cout << j_object.is_object() << '\\n';\n    std::cout << j_array.is_object() << '\\n';\n    std::cout << j_string.is_object() << '\\n';\n    std::cout << j_binary.is_object() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\nfalse\nfalse\n
"},{"location":"api/basic_json/is_object/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_primitive/","title":"nlohmann::basic_json::is_primitive","text":"
constexpr bool is_primitive() const noexcept;\n

This function returns true if and only if the JSON type is primitive (string, number, boolean, null, binary).

"},{"location":"api/basic_json/is_primitive/#return-value","title":"Return value","text":"

true if type is primitive (string, number, boolean, null, or binary), false otherwise.

"},{"location":"api/basic_json/is_primitive/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_primitive/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_primitive/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_primitive() const noexcept\n{\n    return is_null() || is_string() || is_boolean() || is_number() || is_binary();\n}\n
"},{"location":"api/basic_json/is_primitive/#notes","title":"Notes","text":"

The term primitive stems from RFC 8259:

JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

This library extends primitive types to binary types, because binary types are roughly comparable to strings. Hence, is_primitive() returns true for binary values.

"},{"location":"api/basic_json/is_primitive/#examples","title":"Examples","text":"Example

The following code exemplifies is_primitive() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_primitive()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_primitive() << '\\n';\n    std::cout << j_boolean.is_primitive() << '\\n';\n    std::cout << j_number_integer.is_primitive() << '\\n';\n    std::cout << j_number_unsigned_integer.is_primitive() << '\\n';\n    std::cout << j_number_float.is_primitive() << '\\n';\n    std::cout << j_object.is_primitive() << '\\n';\n    std::cout << j_array.is_primitive() << '\\n';\n    std::cout << j_string.is_primitive() << '\\n';\n    std::cout << j_binary.is_primitive() << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\nfalse\nfalse\ntrue\ntrue\n
"},{"location":"api/basic_json/is_primitive/#see-also","title":"See also","text":"
  • is_structured() returns whether JSON value is structured
  • is_null() returns whether JSON value is null
  • is_string() returns whether JSON value is a string
  • is_boolean() returns whether JSON value is a boolean
  • is_number() returns whether JSON value is a number
  • is_binary() returns whether JSON value is a binary array
"},{"location":"api/basic_json/is_primitive/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return true for binary types in version 3.8.0.
"},{"location":"api/basic_json/is_string/","title":"nlohmann::basic_json::is_string","text":"
constexpr bool is_string() const noexcept;\n

This function returns true if and only if the JSON value is a string.

"},{"location":"api/basic_json/is_string/#return-value","title":"Return value","text":"

true if type is a string, false otherwise.

"},{"location":"api/basic_json/is_string/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_string/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_string/#examples","title":"Examples","text":"Example

The following code exemplifies is_string() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_string()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_string() << '\\n';\n    std::cout << j_boolean.is_string() << '\\n';\n    std::cout << j_number_integer.is_string() << '\\n';\n    std::cout << j_number_unsigned_integer.is_string() << '\\n';\n    std::cout << j_number_float.is_string() << '\\n';\n    std::cout << j_object.is_string() << '\\n';\n    std::cout << j_array.is_string() << '\\n';\n    std::cout << j_string.is_string() << '\\n';\n    std::cout << j_binary.is_string() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\nfalse\nfalse\ntrue\nfalse\n
"},{"location":"api/basic_json/is_string/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/is_structured/","title":"nlohmann::basic_json::is_structured","text":"
constexpr bool is_structured() const noexcept;\n

This function returns true if and only if the JSON type is structured (array or object).

"},{"location":"api/basic_json/is_structured/#return-value","title":"Return value","text":"

true if type is structured (array or object), false otherwise.

"},{"location":"api/basic_json/is_structured/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/is_structured/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/is_structured/#possible-implementation","title":"Possible implementation","text":"
constexpr bool is_primitive() const noexcept\n{\n    return is_array() || is_object();\n}\n
"},{"location":"api/basic_json/is_structured/#notes","title":"Notes","text":"

The term structured stems from RFC 8259:

JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays).

Note that though strings are containers in C++, they are treated as primitive values in JSON.

"},{"location":"api/basic_json/is_structured/#examples","title":"Examples","text":"Example

The following code exemplifies is_structured() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_number_unsigned_integer = 12345678987654321u;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n    json j_binary = json::binary({1, 2, 3});\n\n    // call is_structured()\n    std::cout << std::boolalpha;\n    std::cout << j_null.is_structured() << '\\n';\n    std::cout << j_boolean.is_structured() << '\\n';\n    std::cout << j_number_integer.is_structured() << '\\n';\n    std::cout << j_number_unsigned_integer.is_structured() << '\\n';\n    std::cout << j_number_float.is_structured() << '\\n';\n    std::cout << j_object.is_structured() << '\\n';\n    std::cout << j_array.is_structured() << '\\n';\n    std::cout << j_string.is_structured() << '\\n';\n    std::cout << j_binary.is_structured() << '\\n';\n}\n

Output:

false\nfalse\nfalse\nfalse\nfalse\ntrue\ntrue\nfalse\nfalse\n
"},{"location":"api/basic_json/is_structured/#see-also","title":"See also","text":"
  • is_primitive() returns whether JSON value is primitive
  • is_array() returns whether value is an array
  • is_object() returns whether value is an object
"},{"location":"api/basic_json/is_structured/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/items/","title":"nlohmann::basic_json::items","text":"
iteration_proxy<iterator> items() noexcept;\niteration_proxy<const_iterator> items() const noexcept;\n

This function allows accessing iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.

For loop without items() function:

for (auto it = j_object.begin(); it != j_object.end(); ++it)\n{\n    std::cout << \"key: \" << it.key() << \", value:\" << it.value() << '\\n';\n}\n

Range-based for loop without items() function:

for (auto it : j_object)\n{\n    // \"it\" is of type json::reference and has no key() member\n    std::cout << \"value: \" << it << '\\n';\n}\n

Range-based for loop with items() function:

for (auto& el : j_object.items())\n{\n    std::cout << \"key: \" << el.key() << \", value:\" << el.value() << '\\n';\n}\n

The items() function also allows using structured bindings (C++17):

for (auto& [key, val] : j_object.items())\n{\n    std::cout << \"key: \" << key << \", value:\" << val << '\\n';\n}\n
"},{"location":"api/basic_json/items/#return-value","title":"Return value","text":"

iteration proxy object wrapping the current value with an interface to use in range-based for loops

"},{"location":"api/basic_json/items/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/items/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/items/#notes","title":"Notes","text":"

When iterating over an array, key() will return the index of the element as string (see example). For primitive types (e.g., numbers), key() returns an empty string.

Lifetime issues

Using items() on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.

"},{"location":"api/basic_json/items/#examples","title":"Examples","text":"Example

The following code shows an example for items().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n\n    // example for an object\n    for (auto& x : j_object.items())\n    {\n        std::cout << \"key: \" << x.key() << \", value: \" << x.value() << '\\n';\n    }\n\n    // example for an array\n    for (auto& x : j_array.items())\n    {\n        std::cout << \"key: \" << x.key() << \", value: \" << x.value() << '\\n';\n    }\n}\n

Output:

key: one, value: 1\nkey: two, value: 2\nkey: 0, value: 1\nkey: 1, value: 2\nkey: 2, value: 4\nkey: 3, value: 8\nkey: 4, value: 16\n
"},{"location":"api/basic_json/items/#version-history","title":"Version history","text":"
  • Added iterator_wrapper in version 3.0.0.
  • Added items and deprecated iterator_wrapper in version 3.1.0.
  • Added structured binding support in version 3.5.0.

Deprecation

This function replaces the static function iterator_wrapper which was introduced in version 1.0.0, but has been deprecated in version 3.1.0. Function iterator_wrapper will be removed in version 4.0.0. Please replace all occurrences of iterator_wrapper(j) with j.items().

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/json_base_class_t/","title":"nlohmann::basic_json::json_base_class_t","text":"
using json_base_class_t = detail::json_base_class<CustomBaseClass>;\n

The base class used to inject custom functionality into each instance of basic_json. Examples of such functionality might be metadata, additional member functions (e.g., visitors), or other application-specific code.

"},{"location":"api/basic_json/json_base_class_t/#template-parameters","title":"Template parameters","text":"CustomBaseClass the base class to be added to basic_json"},{"location":"api/basic_json/json_base_class_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/json_base_class_t/#default-type","title":"Default type","text":"

The default value for CustomBaseClass is void. In this case an empty base class is used and no additional functionality is injected.

"},{"location":"api/basic_json/json_base_class_t/#limitations","title":"Limitations","text":"

The type CustomBaseClass has to be a default-constructible class. basic_json only supports copy/move construction/assignment if CustomBaseClass does so as well.

"},{"location":"api/basic_json/json_base_class_t/#examples","title":"Examples","text":"Example

The following code shows how to inject custom data and methods for each node.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nclass visitor_adaptor_with_metadata\n{\n  public:\n    template <class Fnc>\n    void visit(const Fnc& fnc) const;\n\n    int metadata = 42;\n  private:\n    template <class Ptr, class Fnc>\n    void do_visit(const Ptr& ptr, const Fnc& fnc) const;\n};\n\nusing json = nlohmann::basic_json <\n             std::map,\n             std::vector,\n             std::string,\n             bool,\n             std::int64_t,\n             std::uint64_t,\n             double,\n             std::allocator,\n             nlohmann::adl_serializer,\n             std::vector<std::uint8_t>,\n             visitor_adaptor_with_metadata\n             >;\n\ntemplate <class Fnc>\nvoid visitor_adaptor_with_metadata::visit(const Fnc& fnc) const\n{\n    do_visit(json::json_pointer{}, fnc);\n}\n\ntemplate <class Ptr, class Fnc>\nvoid visitor_adaptor_with_metadata::do_visit(const Ptr& ptr, const Fnc& fnc) const\n{\n    using value_t = nlohmann::detail::value_t;\n    const json& j = *static_cast<const json*>(this);\n    switch (j.type())\n    {\n        case value_t::object:\n            fnc(ptr, j);\n            for (const auto& entry : j.items())\n            {\n                entry.value().do_visit(ptr / entry.key(), fnc);\n            }\n            break;\n        case value_t::array:\n            fnc(ptr, j);\n            for (std::size_t i = 0; i < j.size(); ++i)\n            {\n                j.at(i).do_visit(ptr / std::to_string(i), fnc);\n            }\n            break;\n        case value_t::null:\n        case value_t::string:\n        case value_t::boolean:\n        case value_t::number_integer:\n        case value_t::number_unsigned:\n        case value_t::number_float:\n        case value_t::binary:\n            fnc(ptr, j);\n            break;\n        case value_t::discarded:\n        default:\n            break;\n    }\n}\n\nint main()\n{\n    // create a json object\n    json j;\n    j[\"null\"];\n    j[\"object\"][\"uint\"] = 1U;\n    j[\"object\"].metadata = 21;\n\n    // visit and output\n    j.visit(\n        [&](const json::json_pointer & p,\n            const json & j)\n    {\n        std::cout << (p.empty() ? std::string{\"/\"} : p.to_string())\n                  << \" - metadata = \" << j.metadata << \" -> \" << j.dump() << '\\n';\n    });\n}\n

Output:

/ - metadata = 42 -> {\"null\":null,\"object\":{\"uint\":1}}\n/null - metadata = 42 -> null\n/object - metadata = 21 -> {\"uint\":1}\n/object/uint - metadata = 42 -> 1\n
"},{"location":"api/basic_json/json_base_class_t/#version-history","title":"Version history","text":"
  • Added in version 3.12.0.
"},{"location":"api/basic_json/json_serializer/","title":"nlohmann::basic_json::json_serializer","text":"
template<typename T, typename SFINAE>\nusing json_serializer = JSONSerializer<T, SFINAE>;\n
"},{"location":"api/basic_json/json_serializer/#template-parameters","title":"Template parameters","text":"T type to convert; will be used in the to_json/from_json functions SFINAE type to add compile type checks via SFINAE; usually void"},{"location":"api/basic_json/json_serializer/#notes","title":"Notes","text":""},{"location":"api/basic_json/json_serializer/#default-type","title":"Default type","text":"

The default values for json_serializer is adl_serializer.

"},{"location":"api/basic_json/json_serializer/#examples","title":"Examples","text":"Example

The example below shows how a conversion of a non-default-constructible type is implemented via a specialization of the adl_serializer.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\n// a simple struct to model a person (not default constructible)\nstruct person\n{\n    person(std::string n, std::string a, int aa)\n        : name(std::move(n)), address(std::move(a)), age(aa)\n    {}\n\n    std::string name;\n    std::string address;\n    int age;\n};\n} // namespace ns\n\nnamespace nlohmann\n{\ntemplate <>\nstruct adl_serializer<ns::person>\n{\n    static ns::person from_json(const json& j)\n    {\n        return {j.at(\"name\"), j.at(\"address\"), j.at(\"age\")};\n    }\n\n    // Here's the catch! You must provide a to_json method! Otherwise, you\n    // will not be able to convert person to json, since you fully\n    // specialized adl_serializer on that type\n    static void to_json(json& j, ns::person p)\n    {\n        j[\"name\"] = p.name;\n        j[\"address\"] = p.address;\n        j[\"age\"] = p.age;\n    }\n};\n} // namespace nlohmann\n\nint main()\n{\n    json j;\n    j[\"name\"] = \"Ned Flanders\";\n    j[\"address\"] = \"744 Evergreen Terrace\";\n    j[\"age\"] = 60;\n\n    auto p = j.template get<ns::person>();\n\n    std::cout << p.name << \" (\" << p.age << \") lives in \" << p.address << std::endl;\n}\n

Output:

Ned Flanders (60) lives in 744 Evergreen Terrace\n
"},{"location":"api/basic_json/json_serializer/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
"},{"location":"api/basic_json/max_size/","title":"nlohmann::basic_json::max_size","text":"
size_type max_size() const noexcept;\n

Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the JSON value.

"},{"location":"api/basic_json/max_size/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null 0 (same as size()) boolean 1 (same as size()) string 1 (same as size()) number 1 (same as size()) binary 1 (same as size()) object result of function object_t::max_size() array result of function array_t::max_size()"},{"location":"api/basic_json/max_size/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/max_size/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their max_size() functions have constant complexity.

"},{"location":"api/basic_json/max_size/#notes","title":"Notes","text":"

This function does not return the maximal length of a string stored as JSON value -- it returns the maximal number of string elements the JSON value can store which is 1.

"},{"location":"api/basic_json/max_size/#examples","title":"Examples","text":"Example

The following code calls max_size() on the different value types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call max_size()\n    std::cout << j_null.max_size() << '\\n';\n    std::cout << j_boolean.max_size() << '\\n';\n    std::cout << j_number_integer.max_size() << '\\n';\n    std::cout << j_number_float.max_size() << '\\n';\n    std::cout << j_object.max_size() << '\\n';\n    std::cout << j_array.max_size() << '\\n';\n    std::cout << j_string.max_size() << '\\n';\n}\n

Output:

0\n1\n1\n1\n115292150460684697\n576460752303423487\n1\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/max_size/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return 1 for binary types in version 3.8.0.
"},{"location":"api/basic_json/merge_patch/","title":"nlohmann::basic_json::merge_patch","text":"
void merge_patch(const basic_json& apply_patch);\n

The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content. This function applies a merge patch to the current JSON value.

The function implements the following algorithm from Section 2 of RFC 7396 (JSON Merge Patch):

define MergePatch(Target, Patch):\n  if Patch is an Object:\n    if Target is not an Object:\n      Target = {} // Ignore the contents and set it to an empty Object\n    for each Name/Value pair in Patch:\n      if Value is null:\n        if Name exists in Target:\n          remove the Name/Value pair from Target\n      else:\n        Target[Name] = MergePatch(Target[Name], Value)\n    return Target\n  else:\n    return Patch\n

Thereby, Target is the current object; that is, the patch is applied to the current value.

"},{"location":"api/basic_json/merge_patch/#parameters","title":"Parameters","text":"apply_patch (in) the patch to apply"},{"location":"api/basic_json/merge_patch/#complexity","title":"Complexity","text":"

Linear in the lengths of apply_patch.

"},{"location":"api/basic_json/merge_patch/#examples","title":"Examples","text":"Example

The following code shows how a JSON Merge Patch is applied to a JSON document.

#include <iostream>\n#include <nlohmann/json.hpp>\n#include <iomanip> // for std::setw\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json document = R\"({\n                \"title\": \"Goodbye!\",\n                \"author\": {\n                    \"givenName\": \"John\",\n                    \"familyName\": \"Doe\"\n                },\n                \"tags\": [\n                    \"example\",\n                    \"sample\"\n                ],\n                \"content\": \"This will be unchanged\"\n            })\"_json;\n\n    // the patch\n    json patch = R\"({\n                \"title\": \"Hello!\",\n                \"phoneNumber\": \"+01-123-456-7890\",\n                \"author\": {\n                    \"familyName\": null\n                },\n                \"tags\": [\n                    \"example\"\n                ]\n            })\"_json;\n\n    // apply the patch\n    document.merge_patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << document << std::endl;\n}\n

Output:

{\n    \"author\": {\n        \"givenName\": \"John\"\n    },\n    \"content\": \"This will be unchanged\",\n    \"phoneNumber\": \"+01-123-456-7890\",\n    \"tags\": [\n        \"example\"\n    ],\n    \"title\": \"Hello!\"\n}\n
"},{"location":"api/basic_json/merge_patch/#see-also","title":"See also","text":"
  • RFC 7396 (JSON Merge Patch)
  • patch apply a JSON patch
"},{"location":"api/basic_json/merge_patch/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
"},{"location":"api/basic_json/meta/","title":"nlohmann::basic_json::meta","text":"
static basic_json meta();\n

This function returns a JSON object with information about the library, including the version number and information on the platform and compiler.

"},{"location":"api/basic_json/meta/#return-value","title":"Return value","text":"

JSON object holding version information

key description compiler Information on the used compiler. It is an object with the following keys: c++ (the used C++ standard), family (the compiler family; possible values are clang, icc, gcc, ilecpp, msvc, pgcpp, sunpro, and unknown), and version (the compiler version). copyright The copyright line for the library as string. name The name of the library as string. platform The used platform as string. Possible values are win32, linux, apple, unix, and unknown. url The URL of the project as string. version The version of the library. It is an object with the following keys: major, minor, and patch as defined by Semantic Versioning, and string (the version string)."},{"location":"api/basic_json/meta/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/meta/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/meta/#examples","title":"Examples","text":"Example

The following code shows an example output of the meta() function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // call meta()\n    std::cout << std::setw(4) << json::meta() << '\\n';\n}\n

Output:

{\n    \"compiler\": {\n        \"c++\": \"201103\",\n        \"family\": \"gcc\",\n        \"version\": \"12.3.0\"\n    },\n    \"copyright\": \"(C) 2013-2022 Niels Lohmann\",\n    \"name\": \"JSON for Modern C++\",\n    \"platform\": \"apple\",\n    \"url\": \"https://github.com/nlohmann/json\",\n    \"version\": {\n        \"major\": 3,\n        \"minor\": 11,\n        \"patch\": 3,\n        \"string\": \"3.11.3\"\n    }\n}\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/meta/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_VERSION_MAJOR/NLOHMANN_JSON_VERSION_MINOR/NLOHMANN_JSON_VERSION_PATCH - library version information
"},{"location":"api/basic_json/meta/#version-history","title":"Version history","text":"
  • Added in version 2.1.0.
"},{"location":"api/basic_json/number_float_t/","title":"nlohmann::basic_json::number_float_t","text":"
using number_float_t = NumberFloatType;\n

The type used to store JSON numbers (floating-point).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store floating-point numbers in C++, a type is defined by the template parameter NumberFloatType which chooses the type to use.

"},{"location":"api/basic_json/number_float_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_float_t/#default-type","title":"Default type","text":"

With the default values for NumberFloatType (double), the default value for number_float_t is double.

"},{"location":"api/basic_json/number_float_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in floating-point literals will be ignored. Internally, the value will be stored as decimal number. For instance, the C++ floating-point literal 01.2 will be serialized to 1.2. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_float_t/#limits","title":"Limits","text":"

RFC 8259 states:

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision.

This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than -1.79769313486232e+308 and values greater than 1.79769313486232e+308 will be stored as NaN internally and be serialized to null.

"},{"location":"api/basic_json/number_float_t/#storage","title":"Storage","text":"

Floating-point number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_float_t/#examples","title":"Examples","text":"Example

The following code shows that number_float_t is by default, a typedef to double.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<double, json::number_float_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_float_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/number_integer_t/","title":"nlohmann::basic_json::number_integer_t","text":"
using number_integer_t = NumberIntegerType;\n

The type used to store JSON numbers (integers).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store integer numbers in C++, a type is defined by the template parameter NumberIntegerType which chooses the type to use.

"},{"location":"api/basic_json/number_integer_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_integer_t/#default-type","title":"Default type","text":"

With the default values for NumberIntegerType (std::int64_t), the default value for number_integer_t is std::int64_t.

"},{"location":"api/basic_json/number_integer_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_integer_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 9223372036854775807 (INT64_MAX) and the minimal integer number that can be stored is -9223372036854775808 (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_unsigned_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.

"},{"location":"api/basic_json/number_integer_t/#storage","title":"Storage","text":"

Integer number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_integer_t/#examples","title":"Examples","text":"Example

The following code shows that number_integer_t is by default, a typedef to std::int64_t.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::int64_t, json::number_integer_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_integer_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/number_unsigned_t/","title":"nlohmann::basic_json::number_unsigned_t","text":"
using number_unsigned_t = NumberUnsignedType;\n

The type used to store JSON numbers (unsigned).

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used.

To store unsigned integer numbers in C++, a type is defined by the template parameter NumberUnsignedType which chooses the type to use.

"},{"location":"api/basic_json/number_unsigned_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/number_unsigned_t/#default-type","title":"Default type","text":"

With the default values for NumberUnsignedType (std::uint64_t), the default value for number_unsigned_t is std::uint64_t.

"},{"location":"api/basic_json/number_unsigned_t/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"api/basic_json/number_unsigned_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 18446744073709551615 (UINT64_MAX) and the minimal integer number that can be stored is 0. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_integer_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range \\f[-2^{53}+1, 2^{53}-1]\\f are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable.

"},{"location":"api/basic_json/number_unsigned_t/#storage","title":"Storage","text":"

Integer number values are stored directly inside a basic_json type.

"},{"location":"api/basic_json/number_unsigned_t/#examples","title":"Examples","text":"Example

The following code shows that number_unsigned_t is by default, a typedef to std::uint64_t.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::uint64_t, json::number_unsigned_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/number_unsigned_t/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/object/","title":"nlohmann::basic_json::object","text":"
static basic_json object(initializer_list_t init = {});\n

Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object {} is created.

"},{"location":"api/basic_json/object/#parameters","title":"Parameters","text":"init (in) initializer list with JSON values to create an object from (optional)"},{"location":"api/basic_json/object/#return-value","title":"Return value","text":"

JSON object value

"},{"location":"api/basic_json/object/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/object/#exceptions","title":"Exceptions","text":"

Throws type_error.301 if init is not a list of pairs whose first elements are strings. In this case, no object can be created. When such a value is passed to basic_json(initializer_list_t, bool, value_t), an array would have been created from the passed initializer list init. See example below.

"},{"location":"api/basic_json/object/#complexity","title":"Complexity","text":"

Linear in the size of init.

"},{"location":"api/basic_json/object/#notes","title":"Notes","text":"

This function is only added for symmetry reasons. In contrast to the related function array(initializer_list_t), there are no cases which can only be expressed by this function. That is, any initializer list init can also be passed to the initializer list constructor basic_json(initializer_list_t, bool, value_t).

"},{"location":"api/basic_json/object/#examples","title":"Examples","text":"Example

The following code shows an example for the object function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON objects\n    json j_no_init_list = json::object();\n    json j_empty_init_list = json::object({});\n    json j_list_of_pairs = json::object({ {\"one\", 1}, {\"two\", 2} });\n\n    // serialize the JSON objects\n    std::cout << j_no_init_list << '\\n';\n    std::cout << j_empty_init_list << '\\n';\n    std::cout << j_list_of_pairs << '\\n';\n\n    // example for an exception\n    try\n    {\n        // can only create an object from a list of pairs\n        json j_invalid_object = json::object({{ \"one\", 1, 2 }});\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

{}\n{}\n{\"one\":1,\"two\":2}\n[json.exception.type_error.301] cannot create object from initializer list\n
"},{"location":"api/basic_json/object/#see-also","title":"See also","text":"
  • basic_json(initializer_list_t) - create a JSON value from an initializer list
  • array - create a JSON array value from an initializer list
"},{"location":"api/basic_json/object/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/object_comparator_t/","title":"nlohmann::basic_json::object_comparator_t","text":"
using object_comparator_t = typename object_t::key_compare;\n// or\nusing object_comparator_t = default_object_comparator_t;\n

The comparator used by object_t. Defined as typename object_t::key_compare if available, and default_object_comparator_t otherwise.

"},{"location":"api/basic_json/object_comparator_t/#examples","title":"Examples","text":"Example

The example below demonstrates the used object comparator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha\n              << \"json::object_comparator_t(\\\"one\\\", \\\"two\\\") = \" << json::object_comparator_t{}(\"one\", \"two\") << \"\\n\"\n              << \"json::object_comparator_t(\\\"three\\\", \\\"four\\\") = \" << json::object_comparator_t{}(\"three\", \"four\") << std::endl;\n}\n

Output:

json::object_comparator_t(\"one\", \"two\") = true\njson::object_comparator_t(\"three\", \"four\") = false\n
"},{"location":"api/basic_json/object_comparator_t/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Changed to be conditionally defined as typename object_t::key_compare or default_object_comparator_t in version 3.11.0.
"},{"location":"api/basic_json/object_t/","title":"nlohmann::basic_json::object_t","text":"
using object_t = ObjectType<StringType,\n                            basic_json,\n                            default_object_comparator_t,\n                            AllocatorType<std::pair<const StringType, basic_json>>>;\n

The type used to store JSON objects.

RFC 8259 describes JSON objects as follows:

An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.

To store objects in C++, a type is defined by the template parameters described below.

"},{"location":"api/basic_json/object_t/#template-parameters","title":"Template parameters","text":"ObjectType the container to store objects (e.g., std::map or std::unordered_map) StringType the type of the keys or names (e.g., std::string). The comparison function std::less<StringType> is used to order elements inside the container. AllocatorType the allocator to use for objects (e.g., std::allocator)"},{"location":"api/basic_json/object_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/object_t/#default-type","title":"Default type","text":"

With the default values for ObjectType (std::map), StringType (std::string), and AllocatorType (std::allocator), the default value for object_t is:

// until C++14\nstd::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<std::string>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n\n// since C++14\nstd::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n

See default_object_comparator_t for more information.

"},{"location":"api/basic_json/object_t/#behavior","title":"Behavior","text":"

The choice of object_t influences the behavior of the JSON class. With the default type, objects have the following behavior:

  • When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.
  • When the names within an object are not unique, it is unspecified which one of the values for a given key will be chosen. For instance, {\"key\": 2, \"key\": 1} could be equal to either {\"key\": 1} or {\"key\": 2}.
  • Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see dump) in this order. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be stored and serialized as {\"a\": 2, \"b\": 1}.
  • When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be treated as equal.
"},{"location":"api/basic_json/object_t/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the object's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON object.

"},{"location":"api/basic_json/object_t/#storage","title":"Storage","text":"

Objects are stored as pointers in a basic_json type. That is, for any access to object values, a pointer of type object_t* must be dereferenced.

"},{"location":"api/basic_json/object_t/#object-key-order","title":"Object key order","text":"

The order name/value pairs are added to the object is not preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as std::map with std::less is used by default. Please note this behavior conforms to RFC 8259, because any order implements the specified \"unordered\" nature of JSON objects.

"},{"location":"api/basic_json/object_t/#examples","title":"Examples","text":"Example

The following code shows that object_t is by default, a typedef to std::map<json::string_t, json>.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::map<json::string_t, json>, json::object_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/object_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/operator%2B%3D/","title":"nlohmann::basic_json::operator+=","text":"
// (1)\nreference operator+=(basic_json&& val);\nreference operator+=(const basic_json& val);\n\n// (2)\nreference operator+=(const typename object_t::value_type& val);\n\n// (3)\nreference operator+=(initializer_list_t init);\n
  1. Appends the given element val to the end of the JSON array. If the function is called on a JSON null value, an empty array is created before appending val.

  2. Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

  3. This function allows using operator+= with an initializer list. In case

    1. the current value is an object,
    2. the initializer list init contains only two elements, and
    3. the first element of init is a string,

    init is converted into an object element and added using operator+=(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using operator+=(basic_json&&).

"},{"location":"api/basic_json/operator%2B%3D/#parameters","title":"Parameters","text":"val (in) the value to add to the JSON array/object init (in) an initializer list"},{"location":"api/basic_json/operator%2B%3D/#return-value","title":"Return value","text":"

*this

"},{"location":"api/basic_json/operator%2B%3D/#exceptions","title":"Exceptions","text":"

All functions can throw the following exception: - Throws type_error.308 when called on a type other than JSON array or null; example: \"cannot use operator+=() with number\"

"},{"location":"api/basic_json/operator%2B%3D/#complexity","title":"Complexity","text":"
  1. Amortized constant.
  2. Logarithmic in the size of the container, O(log(size())).
  3. Linear in the size of the initializer list init.
"},{"location":"api/basic_json/operator%2B%3D/#notes","title":"Notes","text":"

(3) This function is required to resolve an ambiguous overload error, because pairs like {\"key\", \"value\"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see #235 for more information.

"},{"location":"api/basic_json/operator%2B%3D/#examples","title":"Examples","text":"Example: (1) add element to array

The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.push_back(6);\n    array += 7;\n    null += \"first\";\n    null += \"second\";\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6,7]\n[\"first\",\"second\"]\n
Example: (2) add element to object

The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    object.push_back(json::object_t::value_type(\"three\", 3));\n    object += json::object_t::value_type(\"four\", 4);\n    null += json::object_t::value_type(\"A\", \"a\");\n    null += json::object_t::value_type(\"B\", \"b\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n{\"A\":\"a\",\"B\":\"b\"}\n
Example: (3) add to object from initializer list

The example shows how initializer lists are treated as objects when possible.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values:\n    object.push_back({\"three\", 3});  // object is extended\n    object += {\"four\", 4};           // object is extended\n    null.push_back({\"five\", 5});     // null is converted to array\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // would throw:\n    //object.push_back({1, 2, 3});\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n[[\"five\",5]]\n
"},{"location":"api/basic_json/operator%2B%3D/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.0.0.
"},{"location":"api/basic_json/operator%3D/","title":"nlohmann::basic_json::operator=","text":"
basic_json& operator=(basic_json other) noexcept (\n    std::is_nothrow_move_constructible<value_t>::value &&\n    std::is_nothrow_move_assignable<value_t>::value &&\n    std::is_nothrow_move_constructible<json_value>::value &&\n    std::is_nothrow_move_assignable<json_value>::value\n);\n

Copy assignment operator. Copies a JSON value via the \"copy and swap\" strategy: It is expressed in terms of the copy constructor, destructor, and the swap() member function.

"},{"location":"api/basic_json/operator%3D/#parameters","title":"Parameters","text":"other (in) value to copy from"},{"location":"api/basic_json/operator%3D/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator%3D/#examples","title":"Examples","text":"Example

The code below shows and example for the copy assignment. It creates a copy of value a which is then swapped with b. Finally, the copy of a (which is the null value after the swap) is destroyed.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json a = 23;\n    json b = 42;\n\n    // copy-assign a to b\n    b = a;\n\n    // serialize the JSON arrays\n    std::cout << a << '\\n';\n    std::cout << b << '\\n';\n}\n

Output:

23\n23\n
"},{"location":"api/basic_json/operator%3D/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/operator%5B%5D/","title":"nlohmann::basic_json::operator[]","text":"
// (1)\nreference operator[](size_type idx);\nconst_reference operator[](size_type idx) const;\n\n// (2)\nreference operator[](typename object_t::key_type key);\nconst_reference operator[](const typename object_t::key_type& key) const;\n\n// (3)\ntemplate<typename KeyType>\nreference operator[](KeyType&& key);\ntemplate<typename KeyType>\nconst_reference operator[](KeyType&& key) const;\n\n// (4)\nreference operator[](const json_pointer& ptr);\nconst_reference operator[](const json_pointer& ptr) const;\n
  1. Returns a reference to the array element at specified location idx.
  2. Returns a reference to the object element with specified key key. The non-const qualified overload takes the key by value.
  3. See 2. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.
  4. Returns a reference to the element with specified JSON pointer ptr.
"},{"location":"api/basic_json/operator%5B%5D/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17)."},{"location":"api/basic_json/operator%5B%5D/#parameters","title":"Parameters","text":"idx (in) index of the element to access key (in) object key of the element to access ptr (in) JSON pointer to the desired element"},{"location":"api/basic_json/operator%5B%5D/#return-value","title":"Return value","text":"
  1. (const) reference to the element at index idx
  2. (const) reference to the element at key key
  3. (const) reference to the element at key key
  4. (const) reference to the element pointed to by ptr
"},{"location":"api/basic_json/operator%5B%5D/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/operator%5B%5D/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.305 if the JSON value is not an array or null; in that case, using the [] operator with an index makes no sense.
  2. The function can throw the following exceptions:
    • Throws type_error.305 if the JSON value is not an object or null; in that case, using the [] operator with a key makes no sense.
  3. See 2.
  4. The function can throw the following exceptions:
    • Throws parse_error.106 if an array index in the passed JSON pointer ptr begins with '0'.
    • Throws parse_error.109 if an array index in the passed JSON pointer ptr is not a number.
    • Throws out_of_range.402 if the array index '-' is used in the passed JSON pointer ptr for the const version.
    • Throws out_of_range.404 if the JSON pointer ptr can not be resolved.
"},{"location":"api/basic_json/operator%5B%5D/#complexity","title":"Complexity","text":"
  1. Constant if idx is in the range of the array. Otherwise, linear in idx - size().
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
  4. Logarithmic in the size of the container.
"},{"location":"api/basic_json/operator%5B%5D/#notes","title":"Notes","text":"

Undefined behavior and runtime assertions

  1. If the element with key idx does not exist, the behavior is undefined.
  2. If the element with key key does not exist, the behavior is undefined and is guarded by a runtime assertion!
  1. The non-const version may add values: If idx is beyond the range of the array (i.e., idx >= size()), then the array is silently filled up with null values to make idx a valid reference to the last stored element. In case the value was null before, it is converted to an array.

  2. If key is not found in the object, then it is silently added to the object and filled with a null value to make key a valid reference. In case the value was null before, it is converted to an object.

  3. See 2.

  4. null values are created in arrays and objects if necessary.

    In particular:

    • If the JSON pointer points to an object key that does not exist, it is created and filled with a null value before a reference to it is returned.
    • If the JSON pointer points to an array index that does not exist, it is created and filled with a null value before a reference to it is returned. All indices between the current maximum and the given index are also filled with null.
    • The special value - is treated as a synonym for the index past the end.
"},{"location":"api/basic_json/operator%5B%5D/#examples","title":"Examples","text":"Example: (1) access specified array element

The example below shows how array elements can be read and written using [] operator. Note the addition of null values.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON array\n    json array = {1, 2, 3, 4, 5};\n\n    // output element at index 3 (fourth element)\n    std::cout << array[3] << '\\n';\n\n    // change last element to 6\n    array[array.size() - 1] = 6;\n\n    // output changed array\n    std::cout << array << '\\n';\n\n    // write beyond array limit\n    array[10] = 11;\n\n    // output changed array\n    std::cout << array << '\\n';\n}\n

Output:

4\n[1,2,3,4,6]\n[1,2,3,4,6,null,null,null,null,null,11]\n
Example: (1) access specified array element (const)

The example below shows how array elements can be read using the [] operator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON array\n    const json array = {\"first\", \"2nd\", \"third\", \"fourth\"};\n\n    // output element at index 2 (third element)\n    std::cout << array.at(2) << '\\n';\n}\n

Output:

\"third\"\n
Example: (2) access specified object element

The example below shows how object elements can be read and written using the [] operator.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"] << \"\\n\\n\";\n\n    // change element with key \"three\"\n    object[\"three\"] = 3;\n\n    // output changed array\n    std::cout << std::setw(4) << object << \"\\n\\n\";\n\n    // mention nonexisting key\n    object[\"four\"];\n\n    // write to nonexisting key\n    object[\"five\"][\"really\"][\"nested\"] = true;\n\n    // output changed object\n    std::cout << std::setw(4) << object << '\\n';\n}\n

Output:

2\n\n{\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n\n{\n    \"five\": {\n        \"really\": {\n            \"nested\": true\n        }\n    },\n    \"four\": null,\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n
Example: (2) access specified object element (const)

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    const json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"] << '\\n';\n}\n

Output:

2\n
Example: (3) access specified object element using string_view

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <iomanip>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"sv] << \"\\n\\n\";\n\n    // change element with key \"three\"\n    object[\"three\"sv] = 3;\n\n    // output changed array\n    std::cout << std::setw(4) << object << \"\\n\\n\";\n\n    // mention nonexisting key\n    object[\"four\"sv];\n\n    // write to nonexisting key\n    object[\"five\"sv][\"really\"sv][\"nested\"sv] = true;\n\n    // output changed object\n    std::cout << std::setw(4) << object << '\\n';\n}\n

Output:

2\n\n{\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n\n{\n    \"five\": {\n        \"really\": {\n            \"nested\": true\n        }\n    },\n    \"four\": null,\n    \"one\": 1,\n    \"three\": 3,\n    \"two\": 2\n}\n
Example: (3) access specified object element using string_view (const)

The example below shows how object elements can be read using the [] operator.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object\n    const json object =\n    {\n        {\"one\", 1}, {\"two\", 2}, {\"three\", 2.9}\n    };\n\n    // output element with key \"two\"\n    std::cout << object[\"two\"sv] << '\\n';\n}\n

Output:

2\n
Example: (4) access specified element via JSON Pointer

The example below shows how values can be read and written using JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j[\"/number\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j[\"/string\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j[\"/array\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j[\"/array/1\"_json_pointer] << '\\n';\n\n    // writing access\n\n    // change the string\n    j[\"/string\"_json_pointer] = \"bar\";\n    // output the changed string\n    std::cout << j[\"string\"] << '\\n';\n\n    // \"change\" a nonexisting object entry\n    j[\"/boolean\"_json_pointer] = true;\n    // output the changed object\n    std::cout << j << '\\n';\n\n    // change an array element\n    j[\"/array/1\"_json_pointer] = 21;\n    // \"change\" an array element with nonexisting index\n    j[\"/array/4\"_json_pointer] = 44;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n\n    // \"change\" the array element past the end\n    j[\"/array/-\"_json_pointer] = 55;\n    // output the changed array\n    std::cout << j[\"array\"] << '\\n';\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n\"bar\"\n{\"array\":[1,2],\"boolean\":true,\"number\":1,\"string\":\"bar\"}\n[1,21,null,null,44]\n[1,21,null,null,44,55]\n
Example: (4) access specified element via JSON Pointer (const)

The example below shows how values can be read using JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    const json j =\n    {\n        {\"number\", 1}, {\"string\", \"foo\"}, {\"array\", {1, 2}}\n    };\n\n    // read-only access\n\n    // output element with JSON pointer \"/number\"\n    std::cout << j[\"/number\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/string\"\n    std::cout << j[\"/string\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array\"\n    std::cout << j[\"/array\"_json_pointer] << '\\n';\n    // output element with JSON pointer \"/array/1\"\n    std::cout << j[\"/array/1\"_json_pointer] << '\\n';\n}\n

Output:

1\n\"foo\"\n[1,2]\n2\n
"},{"location":"api/basic_json/operator%5B%5D/#see-also","title":"See also","text":"
  • documentation on unchecked access
  • documentation on runtime assertions
  • see at for access by reference with range checking
  • see value for access with default value
"},{"location":"api/basic_json/operator%5B%5D/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0.
  2. Added in version 1.0.0. Added overloads for T* key in version 1.1.0. Removed overloads for T* key (replaced by 3) in version 3.11.0.
  3. Added in version 3.11.0.
  4. Added in version 2.0.0.
"},{"location":"api/basic_json/operator_ValueType/","title":"nlohmann::basic_json::operator ValueType","text":"
template<typename ValueType>\nJSON_EXPLICIT operator ValueType() const;\n

Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get(). See Notes for the meaning of JSON_EXPLICIT.

"},{"location":"api/basic_json/operator_ValueType/#template-parameters","title":"Template parameters","text":"ValueType the value type to return"},{"location":"api/basic_json/operator_ValueType/#return-value","title":"Return value","text":"

copy of the JSON value, converted to ValueType

"},{"location":"api/basic_json/operator_ValueType/#exceptions","title":"Exceptions","text":"

Depends on what json_serializer<ValueType> from_json() method throws

"},{"location":"api/basic_json/operator_ValueType/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value.

"},{"location":"api/basic_json/operator_ValueType/#notes","title":"Notes","text":"

Definition of JSON_EXPLICIT

By default JSON_EXPLICIT is defined to the empty string, so the signature is:

template<typename ValueType>\noperator ValueType() const;\n

If JSON_USE_IMPLICIT_CONVERSIONS is set to 0, JSON_EXPLICIT is defined to explicit:

template<typename ValueType>\nexplicit operator ValueType() const;\n

That is, implicit conversions can be switched off by defining JSON_USE_IMPLICIT_CONVERSIONS to 0.

Future behavior change

Implicit conversions will be switched off by default in the next major release of the library. That is, JSON_EXPLICIT will be set to explicit by default.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

"},{"location":"api/basic_json/operator_ValueType/#examples","title":"Examples","text":"Example

The example below shows several conversions from JSON values to other types. There are a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard std::vector<short>, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string, json>.

#include <iostream>\n#include <unordered_map>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value with different types\n    json json_types =\n    {\n        {\"boolean\", true},\n        {\n            \"number\", {\n                {\"integer\", 42},\n                {\"floating-point\", 17.23}\n            }\n        },\n        {\"string\", \"Hello, world!\"},\n        {\"array\", {1, 2, 3, 4, 5}},\n        {\"null\", nullptr}\n    };\n\n    // use implicit conversions\n    bool v1 = json_types[\"boolean\"];\n    int v2 = json_types[\"number\"][\"integer\"];\n    short v3 = json_types[\"number\"][\"integer\"];\n    float v4 = json_types[\"number\"][\"floating-point\"];\n    int v5 = json_types[\"number\"][\"floating-point\"];\n    std::string v6 = json_types[\"string\"];\n    std::vector<short> v7 = json_types[\"array\"];\n    std::unordered_map<std::string, json> v8 = json_types;\n\n    // print the conversion results\n    std::cout << v1 << '\\n';\n    std::cout << v2 << ' ' << v3 << '\\n';\n    std::cout << v4 << ' ' << v5 << '\\n';\n    std::cout << v6 << '\\n';\n\n    for (auto i : v7)\n    {\n        std::cout << i << ' ';\n    }\n    std::cout << \"\\n\\n\";\n\n    for (auto i : v8)\n    {\n        std::cout << i.first << \": \" << i.second << '\\n';\n    }\n\n    // example for an exception\n    try\n    {\n        bool v1 = json_types[\"string\"];\n    }\n    catch (const json::type_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

1\n42 42\n17.23 17\nHello, world!\n1 2 3 4 5 \n\nstring: \"Hello, world!\"\nnumber: {\"floating-point\":17.23,\"integer\":42}\nnull: null\nboolean: true\narray: [1,2,3,4,5]\n[json.exception.type_error.302] type must be boolean, but is string\n
"},{"location":"api/basic_json/operator_ValueType/#version-history","title":"Version history","text":"
  • Since version 1.0.0.
  • Macros JSON_EXPLICIT/JSON_USE_IMPLICIT_CONVERSIONS added in version 3.9.0.
"},{"location":"api/basic_json/operator_eq/","title":"nlohmann::basic_json::operator==","text":"
// until C++20\nbool operator==(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator==(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator==(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n\n// since C++20\nclass basic_json {\n    bool operator==(const_reference rhs) const noexcept;              // (1)\n\n    template<typename ScalarType>\n    bool operator==(ScalarType rhs) const noexcept;                   // (2)\n};\n
  1. Compares two JSON values for equality according to the following rules:

    • Two JSON values are equal if (1) neither value is discarded, or (2) they are of the same type and their stored values are the same according to their respective operator==.
    • Integer and floating-point numbers are automatically converted before comparison.
  2. Compares a JSON value and a scalar or a scalar and a JSON value for equality by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_eq/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_eq/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_eq/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are equal

"},{"location":"api/basic_json/operator_eq/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_eq/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_eq/#notes","title":"Notes","text":"

Comparing special values

  • NaN values are unordered within the domain of numbers. The following comparisons all yield false:
    1. Comparing a NaN with itself.
    2. Comparing a NaN with another NaN.
    3. Comparing a NaN and any other number.
  • JSON null values are all equal.
  • Discarded values never compare equal to themselves.

Comparing floating-point numbers

Floating-point numbers inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default. To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance

template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>\ninline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept\n{\n    return std::abs(a - b) <= epsilon;\n}\n

Or you can self-defined operator equal function like this:

bool my_equal(const_reference lhs, const_reference rhs)\n{\n    const auto lhs_type lhs.type();\n    const auto rhs_type rhs.type();\n    if (lhs_type == rhs_type)\n    {\n        switch(lhs_type)\n            // self_defined case\n            case value_t::number_float:\n                return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();\n            // other cases remain the same with the original\n            ...\n    }\n...\n}\n

Comparing different basic_json specializations

Comparing different basic_json specializations can have surprising effects. For instance, the result of comparing the JSON objects

{\n   \"version\": 1,\n   \"type\": \"integer\"\n}\n

and

{\n   \"type\": \"integer\",\n   \"version\": 1\n}\n

depends on whether nlohmann::json or nlohmann::ordered_json is used:

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    nlohmann::json uj1 = {{\"version\", 1}, {\"type\", \"integer\"}};\n    nlohmann::json uj2 = {{\"type\", \"integer\"}, {\"version\", 1}};\n\n    nlohmann::ordered_json oj1 = {{\"version\", 1}, {\"type\", \"integer\"}};\n    nlohmann::ordered_json oj2 = {{\"type\", \"integer\"}, {\"version\", 1}};\n\n    std::cout << std::boolalpha << (uj1 == uj2) << '\\n' << (oj1 == oj2) << std::endl;\n}\n

Output:

true\nfalse\n
"},{"location":"api/basic_json/operator_eq/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.000000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" == \" << array_2 << \" \" << (array_1 == array_2) << '\\n';\n    std::cout << object_1 << \" == \" << object_2 << \" \" << (object_1 == object_2) << '\\n';\n    std::cout << number_1 << \" == \" << number_2 << \" \" << (number_1 == number_2) << '\\n';\n    std::cout << string_1 << \" == \" << string_2 << \" \" << (string_1 == string_2) << '\\n';\n}\n

Output:

[1,2,3] == [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} == {\"A\":\"a\",\"B\":\"b\"} true\n17 == 17.0 true\n\"foo\" == \"bar\" false\n
Example

The example demonstrates comparing several JSON types against the null pointer (JSON null).

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array = {1, 2, 3};\n    json object = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json number = 17;\n    json string = \"foo\";\n    json null;\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array << \" == nullptr \" << (array == nullptr) << '\\n';\n    std::cout << object << \" == nullptr \" << (object == nullptr) << '\\n';\n    std::cout << number << \" == nullptr \" << (number == nullptr) << '\\n';\n    std::cout << string << \" == nullptr \" << (string == nullptr) << '\\n';\n    std::cout << null << \" == nullptr \" << (null == nullptr) << '\\n';\n}\n

Output:

[1,2,3] == nullptr false\n{\"A\":\"a\",\"B\":\"b\"} == nullptr false\n17 == nullptr false\n\"foo\" == nullptr false\nnull == nullptr true\n
"},{"location":"api/basic_json/operator_eq/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
  2. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
"},{"location":"api/basic_json/operator_ge/","title":"nlohmann::basic_json::operator>=","text":"
// until C++20\nbool operator>=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator>=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator>=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is greater than or equal to another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs < rhs) (see operator<).
  2. Compares whether a JSON value is greater than or equal to a scalar or a scalar is greater than or equal to a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_ge/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_ge/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_ge/#return-value","title":"Return value","text":"

whether lhs is less than or equal to rhs

"},{"location":"api/basic_json/operator_ge/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_ge/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_ge/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_ge/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" >= \" << array_2 << \" \" << (array_1 >= array_2) << '\\n';\n    std::cout << object_1 << \" >= \" << object_2 << \" \" << (object_1 >= object_2) << '\\n';\n    std::cout << number_1 << \" >= \" << number_2 << \" \" << (number_1 >= number_2) << '\\n';\n    std::cout << string_1 << \" >= \" << string_2 << \" \" << (string_1 >= string_2) << '\\n';\n}\n

Output:

[1,2,3] >= [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} >= {\"A\":\"a\",\"B\":\"b\"} true\n17 >= 17.0000000000001 false\n\"foo\" >= \"bar\" true\n
"},{"location":"api/basic_json/operator_ge/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_ge/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_gt/","title":"nlohmann::basic_json::operator>","text":"
// until C++20\nbool operator>(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator>(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator>(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is greater than another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs <= rhs) (see operator<=).
  2. Compares wether a JSON value is greater than a scalar or a scalar is greater than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_gt/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_gt/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_gt/#return-value","title":"Return value","text":"

whether lhs is greater than rhs

"},{"location":"api/basic_json/operator_gt/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_gt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_gt/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_gt/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" > \" << array_2 << \" \" << (array_1 > array_2) << '\\n';\n    std::cout << object_1 << \" > \" << object_2 << \" \" << (object_1 > object_2) << '\\n';\n    std::cout << number_1 << \" > \" << number_2 << \" \" << (number_1 > number_2) << '\\n';\n    std::cout << string_1 << \" > \" << string_2 << \" \" << (string_1 > string_2) << '\\n';\n}\n

Output:

[1,2,3] > [1,2,4] false\n{\"A\":\"a\",\"B\":\"b\"} > {\"A\":\"a\",\"B\":\"b\"} false\n17 > 17.0000000000001 false\n\"foo\" > \"bar\" true\n
"},{"location":"api/basic_json/operator_gt/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_gt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_le/","title":"nlohmann::basic_json::operator<=","text":"
// until C++20\nbool operator<=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator<=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator<=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is less than or equal to another JSON value rhs according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(rhs < lhs) (see operator<).
  2. Compares wether a JSON value is less than or equal to a scalar or a scalar is less than or equal to a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_le/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_le/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_le/#return-value","title":"Return value","text":"

whether lhs is less than or equal to rhs

"},{"location":"api/basic_json/operator_le/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_le/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_le/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_le/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" <= \" << array_2 << \" \" << (array_1 <= array_2) << '\\n';\n    std::cout << object_1 << \" <= \" << object_2 << \" \" << (object_1 <= object_2) << '\\n';\n    std::cout << number_1 << \" <= \" << number_2 << \" \" << (number_1 <= number_2) << '\\n';\n    std::cout << string_1 << \" <= \" << string_2 << \" \" << (string_1 <= string_2) << '\\n';\n}\n

Output:

[1,2,3] <= [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} <= {\"A\":\"a\",\"B\":\"b\"} true\n17 <= 17.0000000000001 true\n\"foo\" <= \"bar\" false\n
"},{"location":"api/basic_json/operator_le/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_le/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_lt/","title":"nlohmann::basic_json::operator<","text":"
// until C++20\nbool operator<(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator<(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator<(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n
  1. Compares whether one JSON value lhs is less than another JSON value rhs according to the following rules:

    • If either operand is discarded, the comparison yields false.
    • If both operands have the same type, the values are compared using their respective operator<.
    • Integer and floating-point numbers are automatically converted before comparison.
    • In case lhs and rhs have different types, the values are ignored and the order of the types is considered, which is:
      1. null
      2. boolean
      3. number (all types)
      4. object
      5. array
      6. string
      7. binary For instance, any boolean value is considered less than any string.
  2. Compares wether a JSON value is less than a scalar or a scalar is less than a JSON value by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_lt/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_lt/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_lt/#return-value","title":"Return value","text":"

whether lhs is less than rhs

"},{"location":"api/basic_json/operator_lt/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_lt/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_lt/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator<=>.

"},{"location":"api/basic_json/operator_lt/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.0000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" == \" << array_2 << \" \" << (array_1 < array_2) << '\\n';\n    std::cout << object_1 << \" == \" << object_2 << \" \" << (object_1 < object_2) << '\\n';\n    std::cout << number_1 << \" == \" << number_2 << \" \" << (number_1 < number_2) << '\\n';\n    std::cout << string_1 << \" == \" << string_2 << \" \" << (string_1 < string_2) << '\\n';\n}\n

Output:

[1,2,3] == [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} == {\"A\":\"a\",\"B\":\"b\"} false\n17 == 17.0000000000001 true\n\"foo\" == \"bar\" false\n
"},{"location":"api/basic_json/operator_lt/#see-also","title":"See also","text":"
  • operator<=> comparison: 3-way
"},{"location":"api/basic_json/operator_lt/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
  2. Added in version 1.0.0. Conditionally removed since C++20 in version 3.11.0.
"},{"location":"api/basic_json/operator_ne/","title":"nlohmann::basic_json::operator!=","text":"
// until C++20\nbool operator!=(const_reference lhs, const_reference rhs) noexcept;   // (1)\n\ntemplate<typename ScalarType>\nbool operator!=(const_reference lhs, const ScalarType rhs) noexcept;  // (2)\n\ntemplate<typename ScalarType>\nbool operator!=(ScalarType lhs, const const_reference rhs) noexcept;  // (2)\n\n// since C++20\nclass basic_json {\n    bool operator!=(const_reference rhs) const noexcept;              // (1)\n\n    template<typename ScalarType>\n    bool operator!=(ScalarType rhs) const noexcept;                   // (2)\n};\n
  1. Compares two JSON values for inequality according to the following rules:

    • The comparison always yields false if (1) either operand is discarded, or (2) either operand is NaN and the other operand is either NaN or any other number.
    • Otherwise, returns the result of !(lhs == rhs) (until C++20) or !(*this == rhs) (since C++20).
  2. Compares a JSON value and a scalar or a scalar and a JSON value for inequality by converting the scalar to a JSON value and comparing both JSON values according to 1.

"},{"location":"api/basic_json/operator_ne/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_ne/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/basic_json/operator_ne/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are not equal

"},{"location":"api/basic_json/operator_ne/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_ne/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_ne/#notes","title":"Notes","text":"

Comparing NaN

NaN values are unordered within the domain of numbers. The following comparisons all yield false: 1. Comparing a NaN with itself. 2. Comparing a NaN with another NaN. 3. Comparing a NaN and any other number.

"},{"location":"api/basic_json/operator_ne/#examples","title":"Examples","text":"Example

The example demonstrates comparing several JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number_1 = 17;\n    json number_2 = 17.000000000000001L;\n    json string_1 = \"foo\";\n    json string_2 = \"bar\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array_1 << \" != \" << array_2 << \" \" << (array_1 != array_2) << '\\n';\n    std::cout << object_1 << \" != \" << object_2 << \" \" << (object_1 != object_2) << '\\n';\n    std::cout << number_1 << \" != \" << number_2 << \" \" << (number_1 != number_2) << '\\n';\n    std::cout << string_1 << \" != \" << string_2 << \" \" << (string_1 != string_2) << '\\n';\n}\n

Output:

[1,2,3] != [1,2,4] true\n{\"A\":\"a\",\"B\":\"b\"} != {\"A\":\"a\",\"B\":\"b\"} false\n17 != 17.0 false\n\"foo\" != \"bar\" true\n
Example

The example demonstrates comparing several JSON types against the null pointer (JSON null).

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create several JSON values\n    json array = {1, 2, 3};\n    json object = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json number = 17;\n    json string = \"foo\";\n    json null;\n\n    // output values and comparisons\n    std::cout << std::boolalpha;\n    std::cout << array << \" != nullptr \" << (array != nullptr) << '\\n';\n    std::cout << object << \" != nullptr \" << (object != nullptr) << '\\n';\n    std::cout << number << \" != nullptr \" << (number != nullptr) << '\\n';\n    std::cout << string << \" != nullptr \" << (string != nullptr) << '\\n';\n    std::cout << null << \" != nullptr \" << (null != nullptr) << '\\n';\n}\n

Output:

[1,2,3] != nullptr true\n{\"A\":\"a\",\"B\":\"b\"} != nullptr true\n17 != nullptr true\n\"foo\" != nullptr true\nnull != nullptr false\n
"},{"location":"api/basic_json/operator_ne/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
  2. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
"},{"location":"api/basic_json/operator_spaceship/","title":"nlohmann::basic_json::operator<=>","text":"
// since C++20\nclass basic_json {\n    std::partial_ordering operator<=>(const_reference rhs) const noexcept;  // (1)\n\n    template<typename ScalarType>\n    std::partial_ordering operator<=>(const ScalarType rhs) const noexcept; // (2)\n};\n
  1. 3-way compares two JSON values producing a result of type std::partial_ordering according to the following rules:

    • Two JSON values compare with a result of std::partial_ordering::unordered if either value is discarded.
    • If both JSON values are of the same type, the result is produced by 3-way comparing their stored values using their respective operator<=>.
    • Integer and floating-point numbers are converted to their common type and then 3-way compared using their respective operator<=>. For instance, comparing an integer and a floating-point value will 3-way compare the first value converted to floating-point with the second value.
    • Otherwise, yields a result by comparing the type (see value_t).
  2. 3-way compares a JSON value and a scalar or a scalar and a JSON value by converting the scalar to a JSON value and 3-way comparing both JSON values (see 1).

"},{"location":"api/basic_json/operator_spaceship/#template-parameters","title":"Template parameters","text":"ScalarType a scalar type according to std::is_scalar<ScalarType>::value"},{"location":"api/basic_json/operator_spaceship/#parameters","title":"Parameters","text":"rhs (in) second value to consider"},{"location":"api/basic_json/operator_spaceship/#return-value","title":"Return value","text":"

the std::partial_ordering of the 3-way comparison of *this and rhs

"},{"location":"api/basic_json/operator_spaceship/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/operator_spaceship/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/operator_spaceship/#notes","title":"Notes","text":"

Comparing NaN

  • NaN values are unordered within the domain of numbers. The following comparisons all yield std::partial_ordering::unordered:
    1. Comparing a NaN with itself.
    2. Comparing a NaN with another NaN.
    3. Comparing a NaN and any other number.
"},{"location":"api/basic_json/operator_spaceship/#examples","title":"Examples","text":"Example: (1) comparing JSON values

The example demonstrates comparing several JSON values.

#include <compare>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nconst char* to_string(const std::partial_ordering& po)\n{\n    if (std::is_lt(po))\n    {\n        return \"less\";\n    }\n    else if (std::is_gt(po))\n    {\n        return \"greater\";\n    }\n    else if (std::is_eq(po))\n    {\n        return \"equivalent\";\n    }\n    return \"unordered\";\n}\n\nint main()\n{\n    // create several JSON values\n    json array_1 = {1, 2, 3};\n    json array_2 = {1, 2, 4};\n    json object_1 = {{\"A\", \"a\"}, {\"B\", \"b\"}};\n    json object_2 = {{\"B\", \"b\"}, {\"A\", \"a\"}};\n    json number = 17;\n    json string = \"foo\";\n    json discarded = json(json::value_t::discarded);\n\n    // output values and comparisons\n    std::cout << array_1 << \" <=> \" << array_2 << \" := \" << to_string(array_1 <=> array_2) << '\\n'; // *NOPAD*\n    std::cout << object_1 << \" <=> \" << object_2 << \" := \" << to_string(object_1 <=> object_2) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << number << \" := \" << to_string(string <=> number) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << discarded << \" := \" << to_string(string <=> discarded) << '\\n'; // *NOPAD*\n}\n

Output:

[1,2,3] <=> [1,2,4] := less\n{\"A\":\"a\",\"B\":\"b\"} <=> {\"A\":\"a\",\"B\":\"b\"} := equivalent\n\"foo\" <=> 17 := greater\n\"foo\" <=> <discarded> := unordered\n
Example: (2) comparing JSON values and scalars

The example demonstrates comparing several JSON values and scalars.

#include <compare>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nconst char* to_string(const std::partial_ordering& po)\n{\n    if (std::is_lt(po))\n    {\n        return \"less\";\n    }\n    else if (std::is_gt(po))\n    {\n        return \"greater\";\n    }\n    else if (std::is_eq(po))\n    {\n        return \"equivalent\";\n    }\n    return \"unordered\";\n}\n\nint main()\n{\n    using float_limits = std::numeric_limits<json::number_float_t>;\n    constexpr auto nan = float_limits::quiet_NaN();\n\n    // create several JSON values\n    json boolean = false;\n    json number = 17;\n    json string = \"17\";\n\n    // output values and comparisons\n    std::cout << std::boolalpha << std::fixed;\n    std::cout << boolean << \" <=> \" << true << \" := \" << to_string(boolean <=> true) << '\\n'; // *NOPAD*\n    std::cout << number << \" <=> \" << 17.0 << \" := \" << to_string(number <=> 17.0) << '\\n'; // *NOPAD*\n    std::cout << number << \" <=> \" << nan << \" := \" << to_string(number <=> nan) << '\\n'; // *NOPAD*\n    std::cout << string << \" <=> \" << 17 << \" := \" << to_string(string <=> 17) << '\\n'; // *NOPAD*\n}\n

Output:

false <=> true := less\n17 <=> 17.000000 := equivalent\n17 <=> nan := unordered\n\"17\" <=> 17 := greater\n
"},{"location":"api/basic_json/operator_spaceship/#see-also","title":"See also","text":"
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • operator< - comparison: less than
  • operator<= - comparison: less than or equal
  • operator> - comparison: greater than
  • operator>= - comparison: greater than or equal
"},{"location":"api/basic_json/operator_spaceship/#version-history","title":"Version history","text":"
  1. Added in version 3.11.0.
  2. Added in version 3.11.0.
"},{"location":"api/basic_json/operator_value_t/","title":"nlohmann::basic_json::operator value_t","text":"
constexpr operator value_t() const noexcept;\n

Return the type of the JSON value as a value from the value_t enumeration.

"},{"location":"api/basic_json/operator_value_t/#return-value","title":"Return value","text":"

the type of the JSON value

Value type return value null value_t::null boolean value_t::boolean string value_t::string number (integer) value_t::number_integer number (unsigned integer) value_t::number_unsigned number (floating-point) value_t::number_float object value_t::object array value_t::array binary value_t::binary discarded value_t::discarded"},{"location":"api/basic_json/operator_value_t/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/operator_value_t/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/operator_value_t/#examples","title":"Examples","text":"Example

The following code exemplifies operator value_t() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call operator value_t()\n    json::value_t t_null = j_null;\n    json::value_t t_boolean = j_boolean;\n    json::value_t t_number_integer = j_number_integer;\n    json::value_t t_number_unsigned = j_number_unsigned;\n    json::value_t t_number_float = j_number_float;\n    json::value_t t_object = j_object;\n    json::value_t t_array = j_array;\n    json::value_t t_string = j_string;\n\n    // print types\n    std::cout << std::boolalpha;\n    std::cout << (t_null == json::value_t::null) << '\\n';\n    std::cout << (t_boolean == json::value_t::boolean) << '\\n';\n    std::cout << (t_number_integer == json::value_t::number_integer) << '\\n';\n    std::cout << (t_number_unsigned == json::value_t::number_unsigned) << '\\n';\n    std::cout << (t_number_float == json::value_t::number_float) << '\\n';\n    std::cout << (t_object == json::value_t::object) << '\\n';\n    std::cout << (t_array == json::value_t::array) << '\\n';\n    std::cout << (t_string == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/operator_value_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/other_error/","title":"nlohmann::basic_json::other_error","text":"
class other_error : public exception;\n

This exception is thrown in case of errors that cannot be classified with the other exception types.

Exceptions have ids 5xx (see list of other errors).

"},{"location":"api/basic_json/other_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/other_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/other_error/#examples","title":"Examples","text":"Example

The following code shows how a other_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    try\n    {\n        // executing a failing JSON Patch operation\n        json value = R\"({\n            \"best_biscuit\": {\n                \"name\": \"Oreo\"\n            }\n        })\"_json;\n        json patch = R\"([{\n            \"op\": \"test\",\n            \"path\": \"/best_biscuit/name\",\n            \"value\": \"Choco Leibniz\"\n        }])\"_json;\n        value.patch(patch);\n    }\n    catch (const json::other_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/best_biscuit/name\",\"value\":\"Choco Leibniz\"}\nexception id: 501\n
"},{"location":"api/basic_json/other_error/#see-also","title":"See also","text":"
  • List of other errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
"},{"location":"api/basic_json/other_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/out_of_range/","title":"nlohmann::basic_json::out_of_range","text":"
class out_of_range : public exception;\n

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

Exceptions have ids 4xx (see list of out-of-range errors).

"},{"location":"api/basic_json/out_of_range/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/out_of_range/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/out_of_range/#examples","title":"Examples","text":"Example

The following code shows how a out_of_range exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for an invalid index\n        json j = {1, 2, 3, 4};\n        j.at(4) = 10;\n    }\n    catch (const json::out_of_range& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.401] array index 4 is out of range\nexception id: 401\n
"},{"location":"api/basic_json/out_of_range/#see-also","title":"See also","text":"
  • List of out-of-range errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/out_of_range/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/parse/","title":"nlohmann::basic_json::parse","text":"
// (1)\ntemplate<typename InputType>\nstatic basic_json parse(InputType&& i,\n                        const parser_callback_t cb = nullptr,\n                        const bool allow_exceptions = true,\n                        const bool ignore_comments = false);\n\n// (2)\ntemplate<typename IteratorType>\nstatic basic_json parse(IteratorType first, IteratorType last,\n                        const parser_callback_t cb = nullptr,\n                        const bool allow_exceptions = true,\n                        const bool ignore_comments = false);\n
  1. Deserialize from a compatible input.
  2. Deserialize from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

"},{"location":"api/basic_json/parse/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer (must not be null)
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • a std::string
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType

a compatible iterator type, for instance.

  • a pair of std::string::iterator or std::vector<std::uint8_t>::iterator
  • a pair of pointers such as ptr and ptr + len
"},{"location":"api/basic_json/parse/#parameters","title":"Parameters","text":"i (in) Input to parse from. cb (in) a parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) allow_exceptions (in) whether to throw exceptions in case of a parse error (optional, true by default) ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/parse/#return-value","title":"Return value","text":"

Deserialized JSON value; in case of a parse error and allow_exceptions set to false, the return value will be value_t::discarded. The latter can be checked with is_discarded.

"},{"location":"api/basic_json/parse/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/parse/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.101 in case of an unexpected token.
  • Throws parse_error.102 if to_unicode fails or surrogate error.
  • Throws parse_error.103 if to_unicode fails.
"},{"location":"api/basic_json/parse/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the parser callback function cb or reading from (1) the input i or (2) the iterator range [first, last] has a super-linear complexity.

"},{"location":"api/basic_json/parse/#notes","title":"Notes","text":"

(1) A UTF-8 byte order mark is silently ignored.

Runtime assertion

The precondition that a passed FILE pointer must not be null is enforced with a runtime assertion.

"},{"location":"api/basic_json/parse/#examples","title":"Examples","text":"Parsing from a character array

The example below demonstrates the parse() function reading from an array.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    char text[] = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from a string

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from an input stream

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // fill a stream with JSON text\n    std::stringstream ss;\n    ss << text;\n\n    // parse and serialize JSON\n    json j_complete = json::parse(ss);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // fill a stream with JSON text\n    ss.clear();\n    ss << text;\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(ss, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
Parsing from a contiguous container

The example below demonstrates the parse() function reading from a contiguous container.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given as std::vector\n    std::vector<std::uint8_t> text = {'[', '1', ',', '2', ',', '3', ']', '\\0'};\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Parsing from a non null-terminated string

The example below demonstrates the parse() function reading from a string that is not null-terminated.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given as string that is not null-terminated\n    const char* ptr = \"[1,2,3]another value\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(ptr, ptr + 7);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Parsing from an iterator pair

The example below demonstrates the parse() function reading from an iterator pair.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text given an input with other values\n    std::vector<std::uint8_t> input = {'[', '1', ',', '2', ',', '3', ']', 'o', 't', 'h', 'e', 'r'};\n\n    // parse and serialize JSON\n    json j_complete = json::parse(input.begin(), input.begin() + 7);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n}\n

Output:

[\n    1,\n    2,\n    3\n]\n
Effect of allow_exceptions parameter

The example below demonstrates the effect of the allow_exceptions parameter in the \u00b4parse()` function.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // an invalid JSON text\n    std::string text = R\"(\n    {\n        \"key\": \"value without closing quotes\n    }\n    )\";\n\n    // parse with exceptions\n    try\n    {\n        json j = json::parse(text);\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    // parse without exceptions\n    json j = json::parse(text, nullptr, false);\n\n    if (j.is_discarded())\n    {\n        std::cout << \"the input is invalid JSON\" << std::endl;\n    }\n    else\n    {\n        std::cout << \"the input is valid JSON: \" << j << std::endl;\n    }\n}\n

Output:

[json.exception.parse_error.101] parse error at line 4, column 0: syntax error while parsing value - invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n; last read: '\"value without closing quotes<U+000A>'\nthe input is invalid JSON\n
"},{"location":"api/basic_json/parse/#see-also","title":"See also","text":"
  • accept - check if the input is valid JSON
  • operator>> - deserialize from stream
"},{"location":"api/basic_json/parse/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Overload for contiguous containers (1) added in version 2.0.3.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to parse with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like parse({ptr, ptr+len}, ...); with parse(ptr, ptr+len, ...);.

You should be warned by your compiler with a -Wdeprecated-declarations warning if you are using a deprecated function.

"},{"location":"api/basic_json/parse_error/","title":"nlohmann::basic_json::parse_error","text":"
class parse_error : public exception;\n

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, BSON, CBOR, MessagePack, UBJSON, as well as when using JSON Patch.

Member byte holds the byte index of the last read character in the input file (see note below).

Exceptions have ids 1xx (see list of parse errors).

"},{"location":"api/basic_json/parse_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/parse_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
  • byte - byte index of the parse error
"},{"location":"api/basic_json/parse_error/#notes","title":"Notes","text":"

For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector for binary formats.

"},{"location":"api/basic_json/parse_error/#examples","title":"Examples","text":"Example

The following code shows how a parse_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // parsing input with a syntax error\n        json::parse(\"[1,2,3,]\");\n    }\n    catch (const json::parse_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << '\\n'\n                  << \"byte position of error: \" << e.byte << std::endl;\n    }\n}\n

Output:

message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nexception id: 101\nbyte position of error: 8\n
"},{"location":"api/basic_json/parse_error/#see-also","title":"See also","text":"
  • List of parse errors
  • invalid_iterator for exceptions indicating errors with iterators
  • type_error for exceptions indicating executing a member function with a wrong type
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/parse_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/parse_event_t/","title":"nlohmann::basic_json::parse_event_t","text":"
enum class parse_event_t : std::uint8_t {\n    object_start,\n    object_end,\n    array_start,\n    array_end,\n    key,\n    value\n};\n

The parser callback distinguishes the following events:

  • object_start: the parser read { and started to process a JSON object
  • key: the parser read a key of a value in an object
  • object_end: the parser read } and finished processing a JSON object
  • array_start: the parser read [ and started to process a JSON array
  • array_end: the parser read ] and finished processing a JSON array
  • value: the parser finished reading a JSON value
"},{"location":"api/basic_json/parse_event_t/#examples","title":"Examples","text":""},{"location":"api/basic_json/parse_event_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/parser_callback_t/","title":"nlohmann::basic_json::parser_callback_t","text":"
template<typename BasicJsonType>\nusing parser_callback_t =\n    std::function<bool(int depth, parse_event_t event, BasicJsonType& parsed)>;\n

With a parser callback function, the result of parsing a JSON text can be influenced. When passed to parse, it is called on certain events (passed as parse_event_t via parameter event) with a set recursion depth depth and context JSON value parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.

We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters depth, event, and parsed.

parameter event description parameter depth parameter parsed parse_event_t::object_start the parser read { and started to process a JSON object depth of the parent of the JSON object a JSON value with type discarded parse_event_t::key the parser read a key of a value in an object depth of the currently parsed JSON object a JSON string containing the key parse_event_t::object_end the parser read } and finished processing a JSON object depth of the parent of the JSON object the parsed JSON object parse_event_t::array_start the parser read [ and started to process a JSON array depth of the parent of the JSON array a JSON value with type discarded parse_event_t::array_end the parser read ] and finished processing a JSON array depth of the parent of the JSON array the parsed JSON array parse_event_t::value the parser finished reading a JSON value depth of the value the parsed JSON value

Discarding a value (i.e., returning false) has different effects depending on the context in which function was called:

  • Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.
  • In case a value outside a structured type is skipped, it is replaced with null. This case happens if the top-level element is skipped.
"},{"location":"api/basic_json/parser_callback_t/#parameters","title":"Parameters","text":"depth (in) the depth of the recursion during parsing event (in) an event of type parse_event_t indicating the context in the callback function has been called parsed (in, out) the current intermediate parse result; note that writing to this value has no effect for parse_event_t::key events"},{"location":"api/basic_json/parser_callback_t/#return-value","title":"Return value","text":"

Whether the JSON value which called the function during parsing should be kept (true) or not (false). In the latter case, it is either skipped completely or replaced by an empty discarded object.

"},{"location":"api/basic_json/parser_callback_t/#examples","title":"Examples","text":"Example

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
"},{"location":"api/basic_json/parser_callback_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/patch/","title":"nlohmann::basic_json::patch","text":"
basic_json patch(const basic_json& json_patch) const;\n

JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.

"},{"location":"api/basic_json/patch/#parameters","title":"Parameters","text":"json_patch (in) JSON patch document"},{"location":"api/basic_json/patch/#return-value","title":"Return value","text":"

patched document

"},{"location":"api/basic_json/patch/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/patch/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.104 if the JSON patch does not consist of an array of objects.
  • Throws parse_error.105 if the JSON patch is malformed (e.g., mandatory attributes are missing); example: \"operation add must have member path\".
  • Throws out_of_range.401 if an array index is out of range.
  • Throws out_of_range.403 if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: \"key baz not found\".
  • Throws out_of_range.405 if JSON pointer has no parent (\"add\", \"remove\", \"move\")
  • Throws out_of_range.501 if \"test\" operation was unsuccessful.
"},{"location":"api/basic_json/patch/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.

"},{"location":"api/basic_json/patch/#notes","title":"Notes","text":"

The application of a patch is atomic: Either all operations succeed and the patched document is returned or an exception is thrown. In any case, the original value is not changed: the patch is applied to a copy of the value.

"},{"location":"api/basic_json/patch/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // apply the patch\n    json patched_doc = doc.patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << doc << \"\\n\\n\"\n              << std::setw(4) << patched_doc << std::endl;\n}\n

Output:

{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/patch/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
  • RFC 6901 (JSON Pointer)
  • patch_inplace applies a JSON Patch without creating a copy of the document
  • merge_patch applies a JSON Merge Patch
"},{"location":"api/basic_json/patch/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/patch_inplace/","title":"nlohmann::basic_json::patch_inplace","text":"
void patch_inplace(const basic_json& json_patch) const;\n

JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With this function, a JSON Patch is applied to the current JSON value by executing all operations from the patch. This function applies a JSON patch in place and returns void.

"},{"location":"api/basic_json/patch_inplace/#parameters","title":"Parameters","text":"json_patch (in) JSON patch document"},{"location":"api/basic_json/patch_inplace/#exception-safety","title":"Exception safety","text":"

No guarantees, value may be corrupted by an unsuccessful patch operation.

"},{"location":"api/basic_json/patch_inplace/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.104 if the JSON patch does not consist of an array of objects.
  • Throws parse_error.105 if the JSON patch is malformed (e.g., mandatory attributes are missing); example: \"operation add must have member path\".
  • Throws out_of_range.401 if an array index is out of range.
  • Throws out_of_range.403 if a JSON pointer inside the patch could not be resolved successfully in the current JSON value; example: \"key baz not found\".
  • Throws out_of_range.405 if JSON pointer has no parent (\"add\", \"remove\", \"move\")
  • Throws out_of_range.501 if \"test\" operation was unsuccessful.
"},{"location":"api/basic_json/patch_inplace/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value and the length of the JSON patch. As usually only a fraction of the JSON value is affected by the patch, the complexity can usually be neglected.

"},{"location":"api/basic_json/patch_inplace/#notes","title":"Notes","text":"

Unlike patch, patch_inplace applies the operation \"in place\" and no copy of the JSON value is created. That makes it faster for large documents by avoiding the copy. However, the JSON value might be corrupted if the function throws an exception.

"},{"location":"api/basic_json/patch_inplace/#examples","title":"Examples","text":"Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // output original document\n    std::cout << \"Before\\n\" << std::setw(4) << doc << std::endl;\n\n    // apply the patch\n    doc.patch_inplace(patch);\n\n    // output patched document\n    std::cout << \"\\nAfter\\n\" << std::setw(4) << doc << std::endl;\n}\n

Output:

Before\n{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\nAfter\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"api/basic_json/patch_inplace/#see-also","title":"See also","text":"
  • RFC 6902 (JSON Patch)
  • RFC 6901 (JSON Pointer)
  • patch applies a JSON Merge Patch
  • merge_patch applies a JSON Merge Patch
"},{"location":"api/basic_json/patch_inplace/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/push_back/","title":"nlohmann::basic_json::push_back","text":"
// (1)\nvoid push_back(basic_json&& val);\nvoid push_back(const basic_json& val);\n\n// (2)\nvoid push_back(const typename object_t::value_type& val);\n\n// (3)\nvoid push_back(initializer_list_t init);\n
  1. Appends the given element val to the end of the JSON array. If the function is called on a JSON null value, an empty array is created before appending val.

  2. Inserts the given element val to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val.

  3. This function allows using push_back with an initializer list. In case

    1. the current value is an object,
    2. the initializer list init contains only two elements, and
    3. the first element of init is a string,

    init is converted into an object element and added using push_back(const typename object_t::value_type&). Otherwise, init is converted to a JSON value and added using push_back(basic_json&&).

"},{"location":"api/basic_json/push_back/#parameters","title":"Parameters","text":"val (in) the value to add to the JSON array/object init (in) an initializer list"},{"location":"api/basic_json/push_back/#exceptions","title":"Exceptions","text":"

All functions can throw the following exception: - Throws type_error.308 when called on a type other than JSON array or null; example: \"cannot use push_back() with number\"

"},{"location":"api/basic_json/push_back/#complexity","title":"Complexity","text":"
  1. Amortized constant.
  2. Logarithmic in the size of the container, O(log(size())).
  3. Linear in the size of the initializer list init.
"},{"location":"api/basic_json/push_back/#notes","title":"Notes","text":"

(3) This function is required to resolve an ambiguous overload error, because pairs like {\"key\", \"value\"} can be both interpreted as object_t::value_type or std::initializer_list<basic_json>, see #235 for more information.

"},{"location":"api/basic_json/push_back/#examples","title":"Examples","text":"Example: (1) add element to array

The example shows how push_back() and += can be used to add elements to a JSON array. Note how the null value was silently converted to a JSON array.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json array = {1, 2, 3, 4, 5};\n    json null;\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    array.push_back(6);\n    array += 7;\n    null += \"first\";\n    null += \"second\";\n\n    // print values\n    std::cout << array << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

[1,2,3,4,5]\nnull\n[1,2,3,4,5,6,7]\n[\"first\",\"second\"]\n
Example: (2) add element to object

The example shows how push_back() and += can be used to add elements to a JSON object. Note how the null value was silently converted to a JSON object.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values\n    object.push_back(json::object_t::value_type(\"three\", 3));\n    object += json::object_t::value_type(\"four\", 4);\n    null += json::object_t::value_type(\"A\", \"a\");\n    null += json::object_t::value_type(\"B\", \"b\");\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n{\"A\":\"a\",\"B\":\"b\"}\n
Example: (3) add to object from initializer list

The example shows how initializer lists are treated as objects when possible.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json object = {{\"one\", 1}, {\"two\", 2}};\n    json null;\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // add values:\n    object.push_back({\"three\", 3});  // object is extended\n    object += {\"four\", 4};           // object is extended\n    null.push_back({\"five\", 5});     // null is converted to array\n\n    // print values\n    std::cout << object << '\\n';\n    std::cout << null << '\\n';\n\n    // would throw:\n    //object.push_back({1, 2, 3});\n}\n

Output:

{\"one\":1,\"two\":2}\nnull\n{\"four\":4,\"one\":1,\"three\":3,\"two\":2}\n[[\"five\",5]]\n
"},{"location":"api/basic_json/push_back/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 2.0.0.
"},{"location":"api/basic_json/rbegin/","title":"nlohmann::basic_json::rbegin","text":"
reverse_iterator rbegin() noexcept;\nconst_reverse_iterator rbegin() const noexcept;\n

Returns an iterator to the reverse-beginning; that is, the last element.

"},{"location":"api/basic_json/rbegin/#return-value","title":"Return value","text":"

reverse iterator to the first element

"},{"location":"api/basic_json/rbegin/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/rbegin/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/rbegin/#examples","title":"Examples","text":"Example

The following code shows an example for rbegin().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-beginning\n    json::reverse_iterator it = array.rbegin();\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

5\n
"},{"location":"api/basic_json/rbegin/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/rend/","title":"nlohmann::basic_json::rend","text":"
reverse_iterator rend() noexcept;\nconst_reverse_iterator rend() const noexcept;\n

Returns an iterator to the reverse-end; that is, one before the first element. This element acts as a placeholder, attempting to access it results in undefined behavior.

"},{"location":"api/basic_json/rend/#return-value","title":"Return value","text":"

reverse iterator to the element following the last element

"},{"location":"api/basic_json/rend/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/rend/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/rend/#examples","title":"Examples","text":"Example

The following code shows an example for eend().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create an array value\n    json array = {1, 2, 3, 4, 5};\n\n    // get an iterator to the reverse-end\n    json::reverse_iterator it = array.rend();\n\n    // increment the iterator to point to the first element\n    --it;\n\n    // serialize the element that the iterator points to\n    std::cout << *it << '\\n';\n}\n

Output:

1\n
"},{"location":"api/basic_json/rend/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/sax_parse/","title":"nlohmann::basic_json::sax_parse","text":"
// (1)\ntemplate <typename InputType, typename SAX>\nstatic bool sax_parse(InputType&& i,\n                      SAX* sax,\n                      input_format_t format = input_format_t::json,\n                      const bool strict = true,\n                      const bool ignore_comments = false);\n\n// (2)\ntemplate<class IteratorType, class SAX>\nstatic bool sax_parse(IteratorType first, IteratorType last,\n                      SAX* sax,\n                      input_format_t format = input_format_t::json,\n                      const bool strict = true,\n                      const bool ignore_comments = false);\n

Read from input and generate SAX events

  1. Read from a compatible input.
  2. Read from a pair of character iterators

    The value_type of the iterator must be an integral type with size of 1, 2 or 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32.

The SAX event lister must follow the interface of json_sax.

"},{"location":"api/basic_json/sax_parse/#template-parameters","title":"Template parameters","text":"InputType

A compatible input, for instance:

  • an std::istream object
  • a FILE pointer
  • a C-style array of characters
  • a pointer to a null-terminated string of single byte characters
  • an object obj for which begin(obj) and end(obj) produces a valid pair of iterators.
IteratorType Description SAX Description"},{"location":"api/basic_json/sax_parse/#parameters","title":"Parameters","text":"i (in) Input to parse from. sax (in) SAX event listener format (in) the format to parse (JSON, CBOR, MessagePack, or UBJSON) (optional, input_format_t::json by default), see input_format_t for more information strict (in) whether the input has to be consumed completely (optional, true by default) ignore_comments (in) whether comments should be ignored and treated like whitespace (true) or yield a parse error (false); (optional, false by default) first (in) iterator to start of character range last (in) iterator to end of character range"},{"location":"api/basic_json/sax_parse/#return-value","title":"Return value","text":"

return value of the last processed SAX event

"},{"location":"api/basic_json/sax_parse/#exception-safety","title":"Exception safety","text":""},{"location":"api/basic_json/sax_parse/#complexity","title":"Complexity","text":"

Linear in the length of the input. The parser is a predictive LL(1) parser. The complexity can be higher if the SAX consumer sax has a super-linear complexity.

"},{"location":"api/basic_json/sax_parse/#notes","title":"Notes","text":"

A UTF-8 byte order mark is silently ignored.

"},{"location":"api/basic_json/sax_parse/#examples","title":"Examples","text":"Example

The example below demonstrates the sax_parse() function reading from string and processing the events with a user-defined SAX event consumer.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/basic_json/sax_parse/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
  • Ignoring comments via ignore_comments added in version 3.9.0.

Deprecation

Overload (2) replaces calls to sax_parse with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like sax_parse({ptr, ptr+len}); with sax_parse(ptr, ptr+len);.

"},{"location":"api/basic_json/size/","title":"nlohmann::basic_json::size","text":"
size_type size() const noexcept;\n

Returns the number of elements in a JSON value.

"},{"location":"api/basic_json/size/#return-value","title":"Return value","text":"

The return value depends on the different types and is defined as follows:

Value type return value null 0 boolean 1 string 1 number 1 binary 1 object result of function object_t::size() array result of function array_t::size()"},{"location":"api/basic_json/size/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/basic_json/size/#complexity","title":"Complexity","text":"

Constant, as long as array_t and object_t satisfy the Container concept; that is, their size() functions have constant complexity.

"},{"location":"api/basic_json/size/#notes","title":"Notes","text":"

This function does not return the length of a string stored as JSON value -- it returns the number of elements in the JSON value which is 1 in the case of a string.

"},{"location":"api/basic_json/size/#examples","title":"Examples","text":"Example

The following code calls size() on the different value types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = 17;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_object_empty(json::value_t::object);\n    json j_array = {1, 2, 4, 8, 16};\n    json j_array_empty(json::value_t::array);\n    json j_string = \"Hello, world\";\n\n    // call size()\n    std::cout << j_null.size() << '\\n';\n    std::cout << j_boolean.size() << '\\n';\n    std::cout << j_number_integer.size() << '\\n';\n    std::cout << j_number_float.size() << '\\n';\n    std::cout << j_object.size() << '\\n';\n    std::cout << j_object_empty.size() << '\\n';\n    std::cout << j_array.size() << '\\n';\n    std::cout << j_array_empty.size() << '\\n';\n    std::cout << j_string.size() << '\\n';\n}\n

Output:

0\n1\n1\n1\n2\n0\n5\n0\n1\n
"},{"location":"api/basic_json/size/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended to return 1 for binary types in version 3.8.0.
"},{"location":"api/basic_json/std_hash/","title":"std::hash<nlohmann::basic_json>","text":"
namespace std {\n    struct hash<nlohmann::basic_json>;\n}\n

Return a hash value for a JSON object. The hash function tries to rely on std::hash where possible. Furthermore, the type of the JSON value is taken into account to have different hash values for null, 0, 0U, and false, etc.

"},{"location":"api/basic_json/std_hash/#examples","title":"Examples","text":"Example

The example shows how to calculate hash values for different JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    std::cout << \"hash(null) = \" << std::hash<json> {}(json(nullptr)) << '\\n'\n              << \"hash(false) = \" << std::hash<json> {}(json(false)) << '\\n'\n              << \"hash(0) = \" << std::hash<json> {}(json(0)) << '\\n'\n              << \"hash(0U) = \" << std::hash<json> {}(json(0U)) << '\\n'\n              << \"hash(\\\"\\\") = \" << std::hash<json> {}(json(\"\")) << '\\n'\n              << \"hash({}) = \" << std::hash<json> {}(json::object()) << '\\n'\n              << \"hash([]) = \" << std::hash<json> {}(json::array()) << '\\n'\n              << \"hash({\\\"hello\\\": \\\"world\\\"}) = \" << std::hash<json> {}(\"{\\\"hello\\\": \\\"world\\\"}\"_json)\n              << std::endl;\n}\n

Output:

hash(null) = 2654435769\nhash(false) = 2654436030\nhash(0) = 2654436095\nhash(0U) = 2654436156\nhash(\"\") = 6142509191626859748\nhash({}) = 2654435832\nhash([]) = 2654435899\nhash({\"hello\": \"world\"}) = 4469488738203676328\n

Note the output is platform-dependent.

"},{"location":"api/basic_json/std_hash/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended for arbitrary basic_json types in version 3.10.5.
"},{"location":"api/basic_json/std_swap/","title":"std::swap<basic_json>","text":"
namespace std {\n    void swap(nlohmann::basic_json& j1, nlohmann::basic_json& j2);\n}\n

Exchanges the values of two JSON objects.

"},{"location":"api/basic_json/std_swap/#parameters","title":"Parameters","text":"j1 (in, out) value to be replaced by j2 j2 (in, out) value to be replaced by j1"},{"location":"api/basic_json/std_swap/#possible-implementation","title":"Possible implementation","text":"
void swap(nlohmann::basic_json& j1, nlohmann::basic_json& j2)\n{\n    j1.swap(j2);\n}\n
"},{"location":"api/basic_json/std_swap/#examples","title":"Examples","text":"Example

The following code shows how two values are swapped with std::swap.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j1 = {{\"one\", 1}, {\"two\", 2}};\n    json j2 = {1, 2, 4, 8, 16};\n\n    std::cout << \"j1 = \" << j1 << \" | j2 = \" << j2 << '\\n';\n\n    // swap values\n    std::swap(j1, j2);\n\n    std::cout << \"j1 = \" << j1 << \" | j2 = \" << j2 << std::endl;\n}\n

Output:

j1 = {\"one\":1,\"two\":2} | j2 = [1,2,4,8,16]\nj1 = [1,2,4,8,16] | j2 = {\"one\":1,\"two\":2}\n
"},{"location":"api/basic_json/std_swap/#see-also","title":"See also","text":"
  • swap
"},{"location":"api/basic_json/std_swap/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Extended for arbitrary basic_json types in version 3.10.5.
"},{"location":"api/basic_json/string_t/","title":"nlohmann::basic_json::string_t","text":"
using string_t = StringType;\n

The type used to store JSON strings.

RFC 8259 describes JSON strings as follows:

A string is a sequence of zero or more Unicode characters.

To store objects in C++, a type is defined by the template parameter described below. Unicode values are split by the JSON class into byte-sized characters during deserialization.

"},{"location":"api/basic_json/string_t/#template-parameters","title":"Template parameters","text":"StringType the container to store strings (e.g., std::string). Note this container is used for keys/names in objects, see object_t."},{"location":"api/basic_json/string_t/#notes","title":"Notes","text":""},{"location":"api/basic_json/string_t/#default-type","title":"Default type","text":"

With the default values for StringType (std::string), the default value for string_t is std::string.

"},{"location":"api/basic_json/string_t/#encoding","title":"Encoding","text":"

Strings are stored in UTF-8 encoding. Therefore, functions like std::string::size() or std::string::length() return the number of bytes in the string rather than the number of characters or glyphs.

"},{"location":"api/basic_json/string_t/#string-comparison","title":"String comparison","text":"

RFC 8259 states:

Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that \"a\\\\b\" and \"a\\u005Cb\" are not equal.

This implementation is interoperable as it does compare strings code unit by code unit.

"},{"location":"api/basic_json/string_t/#storage","title":"Storage","text":"

String values are stored as pointers in a basic_json type. That is, for any access to string values, a pointer of type string_t* must be dereferenced.

"},{"location":"api/basic_json/string_t/#examples","title":"Examples","text":"Example

The following code shows that string_t is by default, a typedef to std::string.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::boolalpha << std::is_same<std::string, json::string_t>::value << std::endl;\n}\n

Output:

true\n
"},{"location":"api/basic_json/string_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/basic_json/swap/","title":"nlohmann::basic_json::swap","text":"
// (1)\nvoid swap(reference other) noexcept;\n\n// (2)\nvoid swap(reference left, reference right) noexcept;\n\n// (3)\nvoid swap(array_t& other);\n\n// (4)\nvoid swap(object_t& other);\n\n// (5)\nvoid swap(string_t& other);\n\n// (6)\nvoid swap(binary_t& other);\n\n// (7)\nvoid swap(typename binary_t::container_type& other);\n
  1. Exchanges the contents of the JSON value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  2. Exchanges the contents of the JSON value from left with those of right. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Implemented as a friend function callable via ADL.
  3. Exchanges the contents of a JSON array with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  4. Exchanges the contents of a JSON object with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  5. Exchanges the contents of a JSON string with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  6. Exchanges the contents of a binary value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated.
  7. Exchanges the contents of a binary value with those of other. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Unlike version (6), no binary subtype is involved.
"},{"location":"api/basic_json/swap/#parameters","title":"Parameters","text":"other (in, out) value to exchange the contents with left (in, out) value to exchange the contents with right (in, out) value to exchange the contents with"},{"location":"api/basic_json/swap/#exceptions","title":"Exceptions","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. No-throw guarantee: this function never throws exceptions.
  3. Throws type_error.310 if called on JSON values other than arrays; example: \"cannot use swap() with boolean\"
  4. Throws type_error.310 if called on JSON values other than objects; example: \"cannot use swap() with boolean\"
  5. Throws type_error.310 if called on JSON values other than strings; example: \"cannot use swap() with boolean\"
  6. Throws type_error.310 if called on JSON values other than binaries; example: \"cannot use swap() with boolean\"
  7. Throws type_error.310 if called on JSON values other than binaries; example: \"cannot use swap() with boolean\"
"},{"location":"api/basic_json/swap/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/swap/#examples","title":"Examples","text":"Example: Swap JSON value (1, 2)

The example below shows how JSON values can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create two JSON values\n    json j1 = {1, 2, 3, 4, 5};\n    json j2 = {{\"pi\", 3.141592653589793}, {\"e\", 2.718281828459045}};\n\n    // swap the values\n    j1.swap(j2);\n\n    // output the values\n    std::cout << \"j1 = \" << j1 << '\\n';\n    std::cout << \"j2 = \" << j2 << '\\n';\n}\n

Output:

j1 = {\"e\":2.718281828459045,\"pi\":3.141592653589793}\nj2 = [1,2,3,4,5]\n
Example: Swap array (3)

The example below shows how arrays can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = {{\"array\", {1, 2, 3, 4}}};\n\n    // create an array_t\n    json::array_t array = {\"Snap\", \"Crackle\", \"Pop\"};\n\n    // swap the array stored in the JSON value\n    value[\"array\"].swap(array);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"array = \" << array << '\\n';\n}\n

Output:

value = {\"array\":[\"Snap\",\"Crackle\",\"Pop\"]}\narray = [1,2,3,4]\n
Example: Swap object (4)

The example below shows how objects can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = { {\"translation\", {{\"one\", \"eins\"}, {\"two\", \"zwei\"}}} };\n\n    // create an object_t\n    json::object_t object = {{\"cow\", \"Kuh\"}, {\"dog\", \"Hund\"}};\n\n    // swap the object stored in the JSON value\n    value[\"translation\"].swap(object);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"object = \" << object << '\\n';\n}\n

Output:

value = {\"translation\":{\"cow\":\"Kuh\",\"dog\":\"Hund\"}}\nobject = {\"one\":\"eins\",\"two\":\"zwei\"}\n
Example: Swap string (5)

The example below shows how strings can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON value\n    json value = { \"the good\", \"the bad\", \"the ugly\" };\n\n    // create string_t\n    json::string_t string = \"the fast\";\n\n    // swap the object stored in the JSON value\n    value[1].swap(string);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"string = \" << string << '\\n';\n}\n

Output:

value = [\"the good\",\"the fast\",\"the ugly\"]\nstring = the bad\n
Example: Swap string (6)

The example below shows how binary values can be swapped with swap().

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a binary value\n    json value = json::binary({1, 2, 3});\n\n    // create a binary_t\n    json::binary_t binary = {{4, 5, 6}};\n\n    // swap the object stored in the JSON value\n    value.swap(binary);\n\n    // output the values\n    std::cout << \"value = \" << value << '\\n';\n    std::cout << \"binary = \" << json(binary) << '\\n';\n}\n

Output:

value = {\"bytes\":[4,5,6],\"subtype\":null}\nbinary = {\"bytes\":[1,2,3],\"subtype\":null}\n
"},{"location":"api/basic_json/swap/#see-also","title":"See also","text":"
  • std::swap<basic_json>
"},{"location":"api/basic_json/swap/#version-history","title":"Version history","text":"
  1. Since version 1.0.0.
  2. Since version 1.0.0.
  3. Since version 1.0.0.
  4. Since version 1.0.0.
  5. Since version 1.0.0.
  6. Since version 3.8.0.
  7. Since version 3.8.0.
"},{"location":"api/basic_json/to_bjdata/","title":"nlohmann::basic_json::to_bjdata","text":"
// (1)\nstatic std::vector<std::uint8_t> to_bjdata(const basic_json& j,\n                                           const bool use_size = false,\n                                           const bool use_type = false);\n\n// (2)\nstatic void to_bjdata(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                      const bool use_size = false, const bool use_type = false);\nstatic void to_bjdata(const basic_json& j, detail::output_adapter<char> o,\n                      const bool use_size = false, const bool use_type = false);\n

Serializes a given JSON value j to a byte vector using the BJData (Binary JData) serialization format. BJData aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the BJData serialization.
  2. Writes the BJData serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_bjdata/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to use_size (in) whether to add size annotations to container types; optional, false by default. use_type (in) whether to add type annotations to container types (must be combined with use_size = true); optional, false by default."},{"location":"api/basic_json/to_bjdata/#return-value","title":"Return value","text":"
  1. BJData serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_bjdata/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_bjdata/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_bjdata/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in BJData format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print BJData's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to BJData\n    std::vector<std::uint8_t> v = json::to_bjdata(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to BJData using default representation\n    std::vector<std::uint8_t> v_array = json::to_bjdata(array);\n    // serialize it to BJData using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_bjdata(array, true);\n    // serialize it to BJData using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_bjdata(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"api/basic_json/to_bjdata/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/basic_json/to_bson/","title":"nlohmann::basic_json::to_bson","text":"
// (1)\nstatic std::vector<std::uint8_t> to_bson(const basic_json& j);\n\n// (2)\nstatic void to_bson(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_bson(const basic_json& j, detail::output_adapter<char> o);\n

BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are stored as a single entity (a so-called document).

  1. Returns a byte vector containing the BSON serialization.
  2. Writes the BSON serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_bson/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_bson/#return-value","title":"Return value","text":"
  1. BSON serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_bson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_bson/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_bson/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in BSON format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to BSON\n    std::vector<std::uint8_t> v = json::to_bson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x1b 0x00 0x00 0x00 0x08 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0x00 0x01 0x10 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 0x00 0x00 0x00 0x00 0x00 \n
"},{"location":"api/basic_json/to_bson/#version-history","title":"Version history","text":"
  • Added in version 3.4.0.
"},{"location":"api/basic_json/to_cbor/","title":"nlohmann::basic_json::to_cbor","text":"
// (1)\nstatic std::vector<std::uint8_t> to_cbor(const basic_json& j);\n\n// (2)\nstatic void to_cbor(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_cbor(const basic_json& j, detail::output_adapter<char> o);\n

Serializes a given JSON value j to a byte vector using the CBOR (Concise Binary Object Representation) serialization format. CBOR is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the CBOR serialization.
  2. Writes the CBOR serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_cbor/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_cbor/#return-value","title":"Return value","text":"
  1. CBOR serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_cbor/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_cbor/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_cbor/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in CBOR format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to CBOR\n    std::vector<std::uint8_t> v = json::to_cbor(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0xa2 0x67 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xf5 0x66 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"api/basic_json/to_cbor/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
  • Compact representation of floating-point numbers added in version 3.8.0.
"},{"location":"api/basic_json/to_msgpack/","title":"nlohmann::basic_json::to_msgpack","text":"
// (1)\nstatic std::vector<std::uint8_t> to_msgpack(const basic_json& j);\n\n// (2)\nstatic void to_msgpack(const basic_json& j, detail::output_adapter<std::uint8_t> o);\nstatic void to_msgpack(const basic_json& j, detail::output_adapter<char> o);\n

Serializes a given JSON value j to a byte vector using the MessagePack serialization format. MessagePack is a binary serialization format which aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the MessagePack serialization.
  2. Writes the MessagePack serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_msgpack/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to"},{"location":"api/basic_json/to_msgpack/#return-value","title":"Return value","text":"
  1. MessagePack serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_msgpack/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_msgpack/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_msgpack/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in MessagePack format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to MessagePack\n    std::vector<std::uint8_t> v = json::to_msgpack(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x82 0xa7 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xc3 0xa6 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"api/basic_json/to_msgpack/#version-history","title":"Version history","text":"
  • Added in version 2.0.9.
"},{"location":"api/basic_json/to_string/","title":"to_string(basic_json)","text":"
template <typename BasicJsonType>\nstd::string to_string(const BasicJsonType& j);\n

This function implements a user-defined to_string for JSON objects.

"},{"location":"api/basic_json/to_string/#template-parameters","title":"Template parameters","text":"BasicJsonType a specialization of basic_json"},{"location":"api/basic_json/to_string/#return-value","title":"Return value","text":"

string containing the serialization of the JSON value

"},{"location":"api/basic_json/to_string/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/to_string/#exceptions","title":"Exceptions","text":"

Throws type_error.316 if a string stored inside the JSON value is not UTF-8 encoded

"},{"location":"api/basic_json/to_string/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/to_string/#possible-implementation","title":"Possible implementation","text":"
template <typename BasicJsonType>\nstd::string to_string(const BasicJsonType& j)\n{\n    return j.dump();\n}\n
"},{"location":"api/basic_json/to_string/#examples","title":"Examples","text":"Example

The following code shows how the library's to_string() function integrates with others, allowing argument-dependent lookup.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing std::to_string;\n\nint main()\n{\n    // create values\n    json j = {{\"one\", 1}, {\"two\", 2}};\n    int i = 42;\n\n    // use ADL to select best to_string function\n    auto j_str = to_string(j);  // calling nlohmann::to_string\n    auto i_str = to_string(i);  // calling std::to_string\n\n    // serialize without indentation\n    std::cout << j_str << \"\\n\\n\"\n              << i_str << std::endl;\n}\n

Output:

{\"one\":1,\"two\":2}\n\n42\n
"},{"location":"api/basic_json/to_string/#see-also","title":"See also","text":"
  • dump
"},{"location":"api/basic_json/to_string/#version-history","title":"Version history","text":"

Added in version 3.7.0.

"},{"location":"api/basic_json/to_ubjson/","title":"nlohmann::basic_json::to_ubjson","text":"
// (1)\nstatic std::vector<std::uint8_t> to_ubjson(const basic_json& j,\n                                           const bool use_size = false,\n                                           const bool use_type = false);\n\n// (2)\nstatic void to_ubjson(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                      const bool use_size = false, const bool use_type = false);\nstatic void to_ubjson(const basic_json& j, detail::output_adapter<char> o,\n                      const bool use_size = false, const bool use_type = false);\n

Serializes a given JSON value j to a byte vector using the UBJSON (Universal Binary JSON) serialization format. UBJSON aims to be more compact than JSON itself, yet more efficient to parse.

  1. Returns a byte vector containing the UBJSON serialization.
  2. Writes the UBJSON serialization to an output adapter.

The exact mapping and its limitations is described on a dedicated page.

"},{"location":"api/basic_json/to_ubjson/#parameters","title":"Parameters","text":"j (in) JSON value to serialize o (in) output adapter to write serialization to use_size (in) whether to add size annotations to container types; optional, false by default. use_type (in) whether to add type annotations to container types (must be combined with use_size = true); optional, false by default."},{"location":"api/basic_json/to_ubjson/#return-value","title":"Return value","text":"
  1. UBJSON serialization as byte vector
  2. (none)
"},{"location":"api/basic_json/to_ubjson/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

"},{"location":"api/basic_json/to_ubjson/#complexity","title":"Complexity","text":"

Linear in the size of the JSON value j.

"},{"location":"api/basic_json/to_ubjson/#examples","title":"Examples","text":"Example

The example shows the serialization of a JSON value to a byte vector in UBJSON format.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print UBJSON's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to UBJSON\n    std::vector<std::uint8_t> v = json::to_ubjson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to UBJSON using default representation\n    std::vector<std::uint8_t> v_array = json::to_ubjson(array);\n    // serialize it to UBJSON using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_ubjson(array, true);\n    // serialize it to UBJSON using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_ubjson(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"api/basic_json/to_ubjson/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"api/basic_json/type/","title":"nlohmann::basic_json::type","text":"
constexpr value_t type() const noexcept;\n

Return the type of the JSON value as a value from the value_t enumeration.

"},{"location":"api/basic_json/type/#return-value","title":"Return value","text":"

the type of the JSON value

Value type return value null value_t::null boolean value_t::boolean string value_t::string number (integer) value_t::number_integer number (unsigned integer) value_t::number_unsigned number (floating-point) value_t::number_float object value_t::object array value_t::array binary value_t::binary discarded value_t::discarded"},{"location":"api/basic_json/type/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/type/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/type/#examples","title":"Examples","text":"Example

The following code exemplifies type() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type()\n    std::cout << std::boolalpha;\n    std::cout << (j_null.type() == json::value_t::null) << '\\n';\n    std::cout << (j_boolean.type() == json::value_t::boolean) << '\\n';\n    std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\\n';\n    std::cout << (j_number_unsigned.type() == json::value_t::number_unsigned) << '\\n';\n    std::cout << (j_number_float.type() == json::value_t::number_float) << '\\n';\n    std::cout << (j_object.type() == json::value_t::object) << '\\n';\n    std::cout << (j_array.type() == json::value_t::array) << '\\n';\n    std::cout << (j_string.type() == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/type/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/type_error/","title":"nlohmann::basic_json::type_error","text":"
class type_error : public exception;\n

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

Exceptions have ids 3xx (see list of type errors).

"},{"location":"api/basic_json/type_error/#member-functions","title":"Member functions","text":"
  • what - returns explanatory string
"},{"location":"api/basic_json/type_error/#member-variables","title":"Member variables","text":"
  • id - the id of the exception
"},{"location":"api/basic_json/type_error/#examples","title":"Examples","text":"Example

The following code shows how a type_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling push_back() on a string value\n        json j = \"string\";\n        j.push_back(\"another string\");\n    }\n    catch (const json::type_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.type_error.308] cannot use push_back() with string\nexception id: 308\n
"},{"location":"api/basic_json/type_error/#see-also","title":"See also","text":"
  • List of type errors
  • parse_error for exceptions indicating a parse error
  • invalid_iterator for exceptions indicating errors with iterators
  • out_of_range for exceptions indicating access out of the defined range
  • other_error for exceptions indicating other library errors
"},{"location":"api/basic_json/type_error/#version-history","title":"Version history","text":"
  • Since version 3.0.0.
"},{"location":"api/basic_json/type_name/","title":"nlohmann::basic_json::type_name","text":"
const char* type_name() const noexcept;\n

Returns the type name as string to be used in error messages -- usually to indicate that a function was called on a wrong JSON type.

"},{"location":"api/basic_json/type_name/#return-value","title":"Return value","text":"

a string representation of the type (value_t):

Value type return value null \"null\" boolean \"boolean\" string \"string\" number (integer, unsigned integer, floating-point) \"number\" object \"object\" array \"array\" binary \"binary\" discarded \"discarded\""},{"location":"api/basic_json/type_name/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/type_name/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/basic_json/type_name/#examples","title":"Examples","text":"Example

The following code exemplifies type_name() for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type_name()\n    std::cout << j_null << \" is a \" << j_null.type_name() << '\\n';\n    std::cout << j_boolean << \" is a \" << j_boolean.type_name() << '\\n';\n    std::cout << j_number_integer << \" is a \" << j_number_integer.type_name() << '\\n';\n    std::cout << j_number_unsigned << \" is a \" << j_number_unsigned.type_name() << '\\n';\n    std::cout << j_number_float << \" is a \" << j_number_float.type_name() << '\\n';\n    std::cout << j_object << \" is an \" << j_object.type_name() << '\\n';\n    std::cout << j_array << \" is an \" << j_array.type_name() << '\\n';\n    std::cout << j_string << \" is a \" << j_string.type_name() << '\\n';\n}\n

Output:

null is a null\ntrue is a boolean\n-17 is a number\n42 is a number\n23.42 is a number\n{\"one\":1,\"two\":2} is an object\n[1,2,4,8,16] is an array\n\"Hello, world\" is a string\n
"},{"location":"api/basic_json/type_name/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Part of the public API version since 2.1.0.
  • Changed return value to const char* and added noexcept in version 3.0.0.
  • Added support for binary type in version 3.8.0.
"},{"location":"api/basic_json/unflatten/","title":"nlohmann::basic_json::unflatten","text":"
basic_json unflatten() const;\n

The function restores the arbitrary nesting of a JSON value that has been flattened before using the flatten() function. The JSON value must meet certain constraints:

  1. The value must be an object.
  2. The keys must be JSON pointers (see RFC 6901)
  3. The mapped values must be primitive JSON types.
"},{"location":"api/basic_json/unflatten/#return-value","title":"Return value","text":"

the original JSON from a flattened version

"},{"location":"api/basic_json/unflatten/#exception-safety","title":"Exception safety","text":"

Strong exception safety: if an exception occurs, the original value stays intact.

"},{"location":"api/basic_json/unflatten/#exceptions","title":"Exceptions","text":"

The function can throw the following exceptions:

  • Throws type_error.314 if value is not an object
  • Throws type_error.315 if object values are not primitive
"},{"location":"api/basic_json/unflatten/#complexity","title":"Complexity","text":"

Linear in the size the JSON value.

"},{"location":"api/basic_json/unflatten/#notes","title":"Notes","text":"

Empty objects and arrays are flattened by flatten() to null values and can not unflattened to their original type. Apart from this example, for a JSON value j, the following is always true: j == j.flatten().unflatten().

"},{"location":"api/basic_json/unflatten/#examples","title":"Examples","text":"Example

The following code shows how a flattened JSON object is unflattened into the original nested JSON object.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON value\n    json j_flattened =\n    {\n        {\"/answer/everything\", 42},\n        {\"/happy\", true},\n        {\"/list/0\", 1},\n        {\"/list/1\", 0},\n        {\"/list/2\", 2},\n        {\"/name\", \"Niels\"},\n        {\"/nothing\", nullptr},\n        {\"/object/currency\", \"USD\"},\n        {\"/object/value\", 42.99},\n        {\"/pi\", 3.141}\n    };\n\n    // call unflatten()\n    std::cout << std::setw(4) << j_flattened.unflatten() << '\\n';\n}\n

Output:

{\n    \"answer\": {\n        \"everything\": 42\n    },\n    \"happy\": true,\n    \"list\": [\n        1,\n        0,\n        2\n    ],\n    \"name\": \"Niels\",\n    \"nothing\": null,\n    \"object\": {\n        \"currency\": \"USD\",\n        \"value\": 42.99\n    },\n    \"pi\": 3.141\n}\n
"},{"location":"api/basic_json/unflatten/#see-also","title":"See also","text":"
  • flatten the reverse function
"},{"location":"api/basic_json/unflatten/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
"},{"location":"api/basic_json/update/","title":"nlohmann::basic_json::update","text":"
// (1)\nvoid update(const_reference j, bool merge_objects = false);\n\n// (2)\nvoid update(const_iterator first, const_iterator last, bool merge_objects = false);\n
  1. Inserts all values from JSON object j.
  2. Inserts all values from range [first, last)

When merge_objects is false (default), existing keys are overwritten. When merge_objects is true, recursively merges objects with common keys.

The function is motivated by Python's dict.update function.

"},{"location":"api/basic_json/update/#parameters","title":"Parameters","text":"j (in) JSON object to read values from merge_objects (in) when true, existing keys are not overwritten, but contents of objects are merged recursively (default: false) first (in) begin of the range of elements to insert last (in) end of the range of elements to insert"},{"location":"api/basic_json/update/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: \"cannot use update() with string\"
  2. The function can throw the following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: \"cannot use update() with string\"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: \"iterator does not fit current value\"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: \"iterators do not fit\"
"},{"location":"api/basic_json/update/#complexity","title":"Complexity","text":"
  1. O(N*log(size() + N)), where N is the number of elements to insert.
  2. O(N*log(size() + N)), where N is the number of elements to insert.
"},{"location":"api/basic_json/update/#examples","title":"Examples","text":"Example

The example shows how update() is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create two JSON objects\n    json o1 = R\"( {\"color\": \"red\", \"price\": 17.99, \"names\": {\"de\": \"Flugzeug\"}} )\"_json;\n    json o2 = R\"( {\"color\": \"blue\", \"speed\": 100, \"names\": {\"en\": \"plane\"}} )\"_json;\n    json o3 = o1;\n\n    // add all keys from o2 to o1 (updating \"color\", replacing \"names\")\n    o1.update(o2);\n\n    // add all keys from o2 to o1 (updating \"color\", merging \"names\")\n    o3.update(o2, true);\n\n    // output updated object o1 and o3\n    std::cout << std::setw(2) << o1 << '\\n';\n    std::cout << std::setw(2) << o3 << '\\n';\n}\n

Output:

{\n  \"color\": \"blue\",\n  \"names\": {\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n{\n  \"color\": \"blue\",\n  \"names\": {\n    \"de\": \"Flugzeug\",\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n
Example

The example shows how update() is used.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create two JSON objects\n    json o1 = R\"( {\"color\": \"red\", \"price\": 17.99, \"names\": {\"de\": \"Flugzeug\"}} )\"_json;\n    json o2 = R\"( {\"color\": \"blue\", \"speed\": 100, \"names\": {\"en\": \"plane\"}} )\"_json;\n    json o3 = o1;\n\n    // add all keys from o2 to o1 (updating \"color\", replacing \"names\")\n    o1.update(o2.begin(), o2.end());\n\n    // add all keys from o2 to o1 (updating \"color\", merging \"names\")\n    o3.update(o2.begin(), o2.end(), true);\n\n    // output updated object o1 and o3\n    std::cout << std::setw(2) << o1 << '\\n';\n    std::cout << std::setw(2) << o3 << '\\n';\n}\n

Output:

{\n  \"color\": \"blue\",\n  \"names\": {\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n{\n  \"color\": \"blue\",\n  \"names\": {\n    \"de\": \"Flugzeug\",\n    \"en\": \"plane\"\n  },\n  \"price\": 17.99,\n  \"speed\": 100\n}\n
Example

One common use case for this function is the handling of user settings. Assume your application can be configured in some aspects:

{\n    \"color\": \"red\",\n    \"active\": true,\n    \"name\": {\"de\": \"Maus\", \"en\": \"mouse\"}\n}\n

The user may override the default settings selectively:

{\n    \"color\": \"blue\",\n    \"name\": {\"es\": \"rat\u00f3n\"},\n}\n

Then update manages the merging of default settings and user settings:

auto user_settings = json::parse(\"config.json\");\nauto effective_settings = get_default_settings();\neffective_settings.update(user_settings);\n

Now effective_settings contains the default settings, but those keys set by the user are overwritten:

{\n    \"color\": \"blue\",\n    \"active\": true,\n    \"name\": {\"es\": \"rat\u00f3n\"}\n}\n

Note existing keys were just overwritten. To merge objects, merge_objects setting should be set to true:

auto user_settings = json::parse(\"config.json\");\nauto effective_settings = get_default_settings();\neffective_settings.update(user_settings, true);\n
{\n    \"color\": \"blue\",\n    \"active\": true,\n    \"name\": {\"de\": \"Maus\", \"en\": \"mouse\", \"es\": \"rat\u00f3n\"}\n}\n
"},{"location":"api/basic_json/update/#version-history","title":"Version history","text":"
  • Added in version 3.0.0.
  • Added merge_objects parameter in 3.10.4.
"},{"location":"api/basic_json/value/","title":"nlohmann::basic_json::value","text":"
// (1)\ntemplate<class ValueType>\nValueType value(const typename object_t::key_type& key,\n                ValueType&& default_value) const;\n\n// (2)\ntemplate<class ValueType, class KeyType>\nValueType value(KeyType&& key,\n                ValueType&& default_value) const;\n\n// (3)\ntemplate<class ValueType>\nValueType value(const json_pointer& ptr,\n                const ValueType& default_value) const;\n
  1. Returns either a copy of an object's element at the specified key key or a given default value if no element with key key exists.

    The function is basically equivalent to executing

    try {\n   return at(key);\n} catch(out_of_range) {\n   return default_value;\n}\n

  2. See 1. This overload is only available if KeyType is comparable with typename object_t::key_type and typename object_comparator_t::is_transparent denotes a type.

  3. Returns either a copy of an object's element at the specified JSON pointer ptr or a given default value if no value at ptr exists.

    The function is basically equivalent to executing

    try {\n   return at(ptr);\n} catch(out_of_range) {\n   return default_value;\n}\n

Differences to at and operator[]

  • Unlike at, this function does not throw if the given key/ptr was not found.
  • Unlike operator[], this function does not implicitly add an element to the position defined by key/ptr key. This function is furthermore also applicable to const objects.
"},{"location":"api/basic_json/value/#template-parameters","title":"Template parameters","text":"KeyType A type for an object key other than json_pointer that is comparable with string_t using object_comparator_t. This can also be a string view (C++17). ValueType type compatible to JSON values, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. Note the type of the expected value at key/ptr and the default value default_value must be compatible."},{"location":"api/basic_json/value/#parameters","title":"Parameters","text":"key (in) key of the element to access default_value (in) the value to return if key/ptr found no value ptr (in) a JSON pointer to the element to access"},{"location":"api/basic_json/value/#return-value","title":"Return value","text":"
  1. copy of the element at key key or default_value if key is not found
  2. copy of the element at key key or default_value if key is not found
  3. copy of the element at JSON Pointer ptr or default_value if no value for ptr is found
"},{"location":"api/basic_json/value/#exception-safety","title":"Exception safety","text":"

Strong guarantee: if an exception is thrown, there are no changes to any JSON value.

"},{"location":"api/basic_json/value/#exceptions","title":"Exceptions","text":"
  1. The function can throw the following exceptions:
    • Throws type_error.302 if default_value does not match the type of the value at key
    • Throws type_error.306 if the JSON value is not an object; in that case, using value() with a key makes no sense.
  2. See 1.
  3. The function can throw the following exceptions:
    • Throws type_error.302 if default_value does not match the type of the value at ptr
    • Throws type_error.306 if the JSON value is not an object; in that case, using value() with a key makes no sense.
"},{"location":"api/basic_json/value/#complexity","title":"Complexity","text":"
  1. Logarithmic in the size of the container.
  2. Logarithmic in the size of the container.
  3. Logarithmic in the size of the container.
"},{"location":"api/basic_json/value/#examples","title":"Examples","text":"Example: (1) access specified object element with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"integer\", 0);\n    double v_floating = j.value(\"floating\", 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"nonexisting\", \"oops\");\n    bool v_boolean = j.value(\"nonexisting\", false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
Example: (2) access specified object element using string_view with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <string_view>\n#include <nlohmann/json.hpp>\n\nusing namespace std::string_view_literals;\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"integer\"sv, 0);\n    double v_floating = j.value(\"floating\"sv, 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"nonexisting\"sv, \"oops\");\n    bool v_boolean = j.value(\"nonexisting\"sv, false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
Example: (3) access specified object element via JSON Pointer with default value

The example below shows how object elements can be queried with a default value.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON object with different entry types\n    json j =\n    {\n        {\"integer\", 1},\n        {\"floating\", 42.23},\n        {\"string\", \"hello world\"},\n        {\"boolean\", true},\n        {\"object\", {{\"key1\", 1}, {\"key2\", 2}}},\n        {\"array\", {1, 2, 3}}\n    };\n\n    // access existing values\n    int v_integer = j.value(\"/integer\"_json_pointer, 0);\n    double v_floating = j.value(\"/floating\"_json_pointer, 47.11);\n\n    // access nonexisting values and rely on default value\n    std::string v_string = j.value(\"/nonexisting\"_json_pointer, \"oops\");\n    bool v_boolean = j.value(\"/nonexisting\"_json_pointer, false);\n\n    // output values\n    std::cout << std::boolalpha << v_integer << \" \" << v_floating\n              << \" \" << v_string << \" \" << v_boolean << \"\\n\";\n}\n

Output:

1 42.23 oops false\n
"},{"location":"api/basic_json/value/#see-also","title":"See also","text":"
  • see at for access by reference with range checking
  • see operator[] for unchecked access by reference
"},{"location":"api/basic_json/value/#version-history","title":"Version history","text":"
  1. Added in version 1.0.0. Changed parameter default_value type from const ValueType& to ValueType&& in version 3.11.0.
  2. Added in version 3.11.0. Made ValueType the first template parameter in version 3.11.2.
  3. Added in version 2.0.2.
"},{"location":"api/basic_json/value_t/","title":"nlohmann::basic_json::value_t","text":"
enum class value_t : std::uint8_t {\n    null,\n    object,\n    array,\n    string,\n    boolean,\n    number_integer,\n    number_unsigned,\n    number_float,\n    binary,\n    discarded\n};\n

This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions is_null, is_object, is_array, is_string, is_boolean, is_number (with is_number_integer, is_number_unsigned, and is_number_float), is_discarded, is_binary, is_primitive, and is_structured rely on it.

"},{"location":"api/basic_json/value_t/#notes","title":"Notes","text":"

Ordering

The order of types is as follows:

  1. null
  2. boolean
  3. number_integer, number_unsigned, number_float
  4. object
  5. array
  6. string
  7. binary

discarded is unordered.

Types of numbers

There are three enumerators for numbers (number_integer, number_unsigned, and number_float) to distinguish between different types of numbers:

  • number_unsigned_t for unsigned integers
  • number_integer_t for signed integers
  • number_float_t for floating-point numbers or to approximate integers which do not fit into the limits of their respective type

Comparison operators

operator< and operator<=> (since C++20) are overloaded and compare according to the ordering described above. Until C++20 all other relational and equality operators yield results according to the integer value of each enumerator. Since C++20 some compilers consider the rewritten candidates generated from operator<=> during overload resolution, while others do not. For predictable and portable behavior use:

  • operator< or operator<=> when wanting to compare according to the order described above
  • operator== or operator!= when wanting to compare according to each enumerators integer value
"},{"location":"api/basic_json/value_t/#examples","title":"Examples","text":"Example

The following code how type() queries the value_t for all JSON types.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create JSON values\n    json j_null;\n    json j_boolean = true;\n    json j_number_integer = -17;\n    json j_number_unsigned = 42u;\n    json j_number_float = 23.42;\n    json j_object = {{\"one\", 1}, {\"two\", 2}};\n    json j_array = {1, 2, 4, 8, 16};\n    json j_string = \"Hello, world\";\n\n    // call type()\n    std::cout << std::boolalpha;\n    std::cout << (j_null.type() == json::value_t::null) << '\\n';\n    std::cout << (j_boolean.type() == json::value_t::boolean) << '\\n';\n    std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\\n';\n    std::cout << (j_number_unsigned.type() == json::value_t::number_unsigned) << '\\n';\n    std::cout << (j_number_float.type() == json::value_t::number_float) << '\\n';\n    std::cout << (j_object.type() == json::value_t::object) << '\\n';\n    std::cout << (j_array.type() == json::value_t::array) << '\\n';\n    std::cout << (j_string.type() == json::value_t::string) << '\\n';\n}\n

Output:

true\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\ntrue\n
"},{"location":"api/basic_json/value_t/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
  • Added unsigned integer type in version 2.0.0.
  • Added binary type in version 3.8.0.
"},{"location":"api/basic_json/~basic_json/","title":"nlohmann::basic_json::~basic_json","text":"
~basic_json() noexcept;\n

Destroys the JSON value and frees all allocated memory.

"},{"location":"api/basic_json/~basic_json/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this member function never throws exceptions.

"},{"location":"api/basic_json/~basic_json/#complexity","title":"Complexity","text":"

Linear.

"},{"location":"api/basic_json/~basic_json/#version-history","title":"Version history","text":"
  • Added in version 1.0.0.
"},{"location":"api/byte_container_with_subtype/","title":"nlohmann::byte_container_with_subtype","text":"
template<typename BinaryType>\nclass byte_container_with_subtype : public BinaryType;\n

This type extends the template parameter BinaryType provided to basic_json with a subtype used by BSON and MessagePack. This type exists so that the user does not have to specify a type themselves with a specific naming scheme in order to override the binary type.

"},{"location":"api/byte_container_with_subtype/#template-parameters","title":"Template parameters","text":"BinaryType container to store bytes (std::vector<std::uint8_t> by default)"},{"location":"api/byte_container_with_subtype/#member-types","title":"Member types","text":"
  • container_type - the type of the underlying container (BinaryType)
  • subtype_type - the type of the subtype (std::uint64_t)
"},{"location":"api/byte_container_with_subtype/#member-functions","title":"Member functions","text":"
  • (constructor)
  • operator== - comparison: equal
  • operator!= - comparison: not equal
  • set_subtype - sets the binary subtype
  • subtype - return the binary subtype
  • has_subtype - return whether the value has a subtype
  • clear_subtype - clears the binary subtype
"},{"location":"api/byte_container_with_subtype/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
  • Changed type of subtypes to std::uint64_t in 3.10.0.
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/","title":"nlohmann::byte_container_with_subtype::byte_container_with_subtype","text":"
// (1)\nbyte_container_with_subtype();\n\n// (2)\nbyte_container_with_subtype(const container_type& container);\nbyte_container_with_subtype(container_type&& container);\n\n// (3)\nbyte_container_with_subtype(const container_type& container, subtype_type subtype);\nbyte_container_with_subtype(container_type&& container, subtype_type subtype);\n
  1. Create empty binary container without subtype.
  2. Create binary container without subtype.
  3. Create binary container with subtype.
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#parameters","title":"Parameters","text":"container (in) binary container subtype (in) subtype"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how byte containers can be created.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // (1) create empty container\n    auto c1 = byte_container_with_subtype();\n\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // (2) create container\n    auto c2 = byte_container_with_subtype(bytes);\n\n    // (3) create container with subtype\n    auto c3 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << json(c1) << \"\\n\" << json(c2) << \"\\n\" << json(c3) << std::endl;\n}\n

Output:

{\"bytes\":[],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":null}\n{\"bytes\":[202,254,186,190],\"subtype\":42}\n
"},{"location":"api/byte_container_with_subtype/byte_container_with_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/clear_subtype/","title":"nlohmann::byte_container_with_subtype::clear_subtype","text":"
void clear_subtype() noexcept;\n

Clears the binary subtype and flags the value as not having a subtype, which has implications for serialization; for instance MessagePack will prefer the bin family over the ext family.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/clear_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how clear_subtype can remove subtypes.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container with subtype\n    auto c1 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << \"before calling clear_subtype(): \" << json(c1) << '\\n';\n\n    c1.clear_subtype();\n\n    std::cout << \"after calling clear_subtype(): \" << json(c1) << '\\n';\n}\n

Output:

before calling clear_subtype(): {\"bytes\":[202,254,186,190],\"subtype\":42}\nafter calling clear_subtype(): {\"bytes\":[202,254,186,190],\"subtype\":null}\n
"},{"location":"api/byte_container_with_subtype/clear_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/has_subtype/","title":"nlohmann::byte_container_with_subtype::has_subtype","text":"
constexpr bool has_subtype() const noexcept;\n

Returns whether the value has a subtype.

"},{"location":"api/byte_container_with_subtype/has_subtype/#return-value","title":"Return value","text":"

whether the value has a subtype

"},{"location":"api/byte_container_with_subtype/has_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/has_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/has_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how has_subtype can check whether a subtype was set.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container\n    auto c1 = byte_container_with_subtype(bytes);\n\n    // create container with subtype\n    auto c2 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << std::boolalpha << \"c1.has_subtype() = \" << c1.has_subtype()\n              << \"\\nc2.has_subtype() = \" << c2.has_subtype() << std::endl;\n}\n

Output:

c1.has_subtype() = false\nc2.has_subtype() = true\n
"},{"location":"api/byte_container_with_subtype/has_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/set_subtype/","title":"nlohmann::byte_container_with_subtype::set_subtype","text":"
void set_subtype(subtype_type subtype) noexcept;\n

Sets the binary subtype of the value, also flags a binary JSON value as having a subtype, which has implications for serialization.

"},{"location":"api/byte_container_with_subtype/set_subtype/#parameters","title":"Parameters","text":"subtype (in) subtype to set"},{"location":"api/byte_container_with_subtype/set_subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/set_subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/set_subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how a subtype can be set with set_subtype.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container without subtype\n    auto c = byte_container_with_subtype(bytes);\n\n    std::cout << \"before calling set_subtype(42): \" << json(c) << '\\n';\n\n    // set the subtype\n    c.set_subtype(42);\n\n    std::cout << \"after calling set_subtype(42): \" << json(c) << '\\n';\n}\n

Output:

before calling set_subtype(42): {\"bytes\":[202,254,186,190],\"subtype\":null}\nafter calling set_subtype(42): {\"bytes\":[202,254,186,190],\"subtype\":42}\n
"},{"location":"api/byte_container_with_subtype/set_subtype/#version-history","title":"Version history","text":"

Since version 3.8.0.

"},{"location":"api/byte_container_with_subtype/subtype/","title":"nlohmann::byte_container_with_subtype::subtype","text":"
constexpr subtype_type subtype() const noexcept;\n

Returns the numerical subtype of the value if it has a subtype. If it does not have a subtype, this function will return subtype_type(-1) as a sentinel value.

"},{"location":"api/byte_container_with_subtype/subtype/#return-value","title":"Return value","text":"

the numerical subtype of the binary value, or subtype_type(-1) if no subtype is set

"},{"location":"api/byte_container_with_subtype/subtype/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/byte_container_with_subtype/subtype/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/byte_container_with_subtype/subtype/#examples","title":"Examples","text":"Example

The example below demonstrates how the subtype can be retrieved with subtype. Note how subtype_type(-1) is returned for container c1.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// define a byte container based on std::vector\nusing byte_container_with_subtype = nlohmann::byte_container_with_subtype<std::vector<std::uint8_t>>;\n\nint main()\n{\n    std::vector<std::uint8_t> bytes = {{0xca, 0xfe, 0xba, 0xbe}};\n\n    // create container\n    auto c1 = byte_container_with_subtype(bytes);\n\n    // create container with subtype\n    auto c2 = byte_container_with_subtype(bytes, 42);\n\n    std::cout << \"c1.subtype() = \" << c1.subtype()\n              << \"\\nc2.subtype() = \" << c2.subtype() << std::endl;\n\n    // in case no subtype is set, return special value\n    assert(c1.subtype() == static_cast<byte_container_with_subtype::subtype_type>(-1));\n}\n

Output:

c1.subtype() = 18446744073709551615\nc2.subtype() = 42\n
"},{"location":"api/byte_container_with_subtype/subtype/#version-history","title":"Version history","text":"
  • Added in version 3.8.0
  • Fixed return value to properly return subtype_type(-1) as documented in version 3.10.0.
"},{"location":"api/json_pointer/","title":"nlohmann::json_pointer","text":"
template<typename RefStringType>\nclass json_pointer;\n

A JSON pointer defines a string syntax for identifying a specific value within a JSON document. It can be used with functions at and operator[]. Furthermore, JSON pointers are the base for JSON patches.

"},{"location":"api/json_pointer/#template-parameters","title":"Template parameters","text":"RefStringType the string type used for the reference tokens making up the JSON pointer

Deprecation

For backwards compatibility RefStringType may also be a specialization of basic_json in which case string_t will be deduced as basic_json::string_t. This feature is deprecated and may be removed in a future major version.

"},{"location":"api/json_pointer/#member-types","title":"Member types","text":"
  • string_t - the string type used for the reference tokens
"},{"location":"api/json_pointer/#member-functions","title":"Member functions","text":"
  • (constructor)
  • to_string - return a string representation of the JSON pointer
  • operator string_t - return a string representation of the JSON pointer
  • operator== - compare: equal
  • operator!= - compare: not equal
  • operator/= - append to the end of the JSON pointer
  • operator/ - create JSON Pointer by appending
  • parent_pointer - returns the parent of this JSON pointer
  • pop_back - remove last reference token
  • back - return last reference token
  • push_back - append an unescaped token at the end of the pointer
  • empty - return whether pointer points to the root document
"},{"location":"api/json_pointer/#literals","title":"Literals","text":"
  • operator\"\"_json_pointer - user-defined string literal for JSON pointers
"},{"location":"api/json_pointer/#see-also","title":"See also","text":"
  • RFC 6901
"},{"location":"api/json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Changed template parameter from basic_json to string type in version 3.11.0.
"},{"location":"api/json_pointer/back/","title":"nlohmann::json_pointer::back","text":"
const string_t& back() const;\n

Return last reference token.

"},{"location":"api/json_pointer/back/#return-value","title":"Return value","text":"

Last reference token.

"},{"location":"api/json_pointer/back/#exceptions","title":"Exceptions","text":"

Throws out_of_range.405 if JSON pointer has no parent.

"},{"location":"api/json_pointer/back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/back/#examples","title":"Examples","text":"Example

The example shows the usage of back.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"/foo\");\n    json::json_pointer ptr2(\"/foo/0\");\n\n    // call empty()\n    std::cout << \"last reference token of \\\"\" << ptr1 << \"\\\" is \\\"\" << ptr1.back() << \"\\\"\\n\"\n              << \"last reference token of \\\"\" << ptr2 << \"\\\" is \\\"\" << ptr2.back() << \"\\\"\" << std::endl;\n}\n

Output:

last reference token of \"/foo\" is \"foo\"\nlast reference token of \"/foo/0\" is \"0\"\n
"},{"location":"api/json_pointer/back/#version-history","title":"Version history","text":"
  • Added in version 3.6.0.
  • Changed return type to string_t in version 3.11.0.
"},{"location":"api/json_pointer/empty/","title":"nlohmann::json_pointer::empty","text":"
bool empty() const noexcept;\n

Return whether pointer points to the root document.

"},{"location":"api/json_pointer/empty/#return-value","title":"Return value","text":"

true iff the JSON pointer points to the root document.

"},{"location":"api/json_pointer/empty/#exception-safety","title":"Exception safety","text":"

No-throw guarantee: this function never throws exceptions.

"},{"location":"api/json_pointer/empty/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/empty/#examples","title":"Examples","text":"Example

The example shows the result of empty for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n\n    // call empty()\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\": \" << ptr0.empty() << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\": \" << ptr1.empty() << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\": \" << ptr2.empty() << '\\n'\n              << \"\\\"\" << ptr3 << \"\\\": \" << ptr3.empty() << std::endl;\n}\n

Output:

\"\": true\n\"\": true\n\"/foo\": false\n\"/foo/0\": false\n
"},{"location":"api/json_pointer/empty/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/json_pointer/","title":"nlohmann::json_pointer::json_pointer","text":"
explicit json_pointer(const string_t& s = \"\");\n

Create a JSON pointer according to the syntax described in Section 3 of RFC6901.

"},{"location":"api/json_pointer/json_pointer/#parameters","title":"Parameters","text":"s (in) string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value"},{"location":"api/json_pointer/json_pointer/#exceptions","title":"Exceptions","text":"
  • Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  • Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/json_pointer/#examples","title":"Examples","text":"Example

The example shows the construction several valid JSON pointers as well as the exceptional behavior.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // correct JSON pointers\n    json::json_pointer p1;\n    json::json_pointer p2(\"\");\n    json::json_pointer p3(\"/\");\n    json::json_pointer p4(\"//\");\n    json::json_pointer p5(\"/foo/bar\");\n    json::json_pointer p6(\"/foo/bar/-\");\n    json::json_pointer p7(\"/foo/~0\");\n    json::json_pointer p8(\"/foo/~1\");\n\n    // error: JSON pointer does not begin with a slash\n    try\n    {\n        json::json_pointer p9(\"foo\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1\n    try\n    {\n        json::json_pointer p10(\"/foo/~\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n\n    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1\n    try\n    {\n        json::json_pointer p11(\"/foo/~3\");\n    }\n    catch (const json::parse_error& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo'\n[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n
"},{"location":"api/json_pointer/json_pointer/#version-history","title":"Version history","text":"
  • Added in version 2.0.0.
  • Changed type of s to string_t in version 3.11.0.
"},{"location":"api/json_pointer/operator_eq/","title":"nlohmann::json_pointer::operator==","text":"
// until C++20\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\nbool operator==(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs) noexcept;            // (1)\n\ntemplate<typename RefStringTypeLhs, typename StringType>\nbool operator==(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const StringType& rhs);                                         // (2)\n\ntemplate<typename RefStringTypeRhs, typename StringType>\nbool operator==(\n    const StringType& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs);                     // (2)\n\n// since C++20\nclass json_pointer {\n    template<typename RefStringTypeRhs>\n    bool operator==(\n        const json_pointer<RefStringTypeRhs>& rhs) const noexcept;  // (1)\n\n    bool operator==(const string_t& rhs) const;                     // (2)\n};\n
  1. Compares two JSON pointers for equality by comparing their reference tokens.

  2. Compares a JSON pointer and a string or a string and a JSON pointer for equality by converting the string to a JSON pointer and comparing the JSON pointers according to 1.

"},{"location":"api/json_pointer/operator_eq/#template-parameters","title":"Template parameters","text":"RefStringTypeLhs, RefStringTypeRhs the string type of the left-hand side or right-hand side JSON pointer, respectively StringType the string type derived from the json_pointer operand (json_pointer::string_t)"},{"location":"api/json_pointer/operator_eq/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/json_pointer/operator_eq/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are equal

"},{"location":"api/json_pointer/operator_eq/#exception-safety","title":"Exception safety","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. Strong exception safety: if an exception occurs, the original value stays intact.
"},{"location":"api/json_pointer/operator_eq/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function can throw the following exceptions:
  3. Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  4. Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/operator_eq/#complexity","title":"Complexity","text":"

Constant if lhs and rhs differ in the number of reference tokens, otherwise linear in the number of reference tokens.

"},{"location":"api/json_pointer/operator_eq/#notes","title":"Notes","text":"

Deprecation

Overload 2 is deprecated and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_eq/#examples","title":"Examples","text":"Example: (1) Comparing JSON pointers

The example demonstrates comparing JSON pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // compare JSON pointers\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << ptr0 << \"\\\": \" << (ptr0 == ptr0) << '\\n'\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << ptr1 << \"\\\": \" << (ptr0 == ptr1) << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (ptr1 == ptr2) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (ptr2 == ptr2) << std::endl;\n}\n

Output:

\"\" == \"\": true\n\"\" == \"\": true\n\"\" == \"/foo\": false\n\"/foo\" == \"/foo\": true\n
Example: (2) Comparing JSON pointers and strings

The example demonstrates comparing JSON pointers and strings, and when doing so may raise an exception.

#include <exception>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // different strings\n    std::string str0(\"\");\n    std::string str1(\"/foo\");\n    std::string str2(\"bar\");\n\n    // compare JSON pointers and strings\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" == \\\"\" << str0 << \"\\\": \" << (ptr0 == str0) << '\\n'\n              << \"\\\"\" << str0 << \"\\\" == \\\"\" << ptr1 << \"\\\": \" << (str0 == ptr1) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" == \\\"\" << str1 << \"\\\": \" << (ptr2 == str1) << std::endl;\n\n    try\n    {\n        std::cout << \"\\\"\" << str2 << \"\\\" == \\\"\" << ptr2 << \"\\\": \" << (str2 == ptr2) << std::endl;\n    }\n    catch (const json::parse_error& ex)\n    {\n        std::cout << ex.what() << std::endl;\n    }\n}\n

Output:

\"\" == \"\": true\n\"\" == \"\": true\n\"/foo\" == \"/foo\": true\n\"bar\" == \"/foo\": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'\n
"},{"location":"api/json_pointer/operator_eq/#version-history","title":"Version history","text":"
  1. Added in version 2.1.0. Added C++20 member functions in version 3.11.2.
  2. Added for backward compatibility and deprecated in version 3.11.2.
"},{"location":"api/json_pointer/operator_ne/","title":"nlohmann::json_pointer::operator!=","text":"
// until C++20\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\nbool operator!=(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs) noexcept;  // (1)\n\ntemplate<typename RefStringTypeLhs, typename StringType>\nbool operator!=(\n    const json_pointer<RefStringTypeLhs>& lhs,\n    const StringType& rhs);                               // (2)\n\ntemplate<typename RefStringTypeRhs, typename StringType>\nbool operator!=(\n    const StringType& lhs,\n    const json_pointer<RefStringTypeRhs>& rhs);           // (2)\n
  1. Compares two JSON pointers for inequality by comparing their reference tokens.

  2. Compares a JSON pointer and a string or a string and a JSON pointer for inequality by converting the string to a JSON pointer and comparing the JSON pointers according to 1.

"},{"location":"api/json_pointer/operator_ne/#template-parameters","title":"Template parameters","text":"RefStringTypeLhs, RefStringTypeRhs the string type of the left-hand side or right-hand side JSON pointer, respectively StringType the string type derived from the json_pointer operand (json_pointer::string_t)"},{"location":"api/json_pointer/operator_ne/#parameters","title":"Parameters","text":"lhs (in) first value to consider rhs (in) second value to consider"},{"location":"api/json_pointer/operator_ne/#return-value","title":"Return value","text":"

whether the values lhs/*this and rhs are not equal

"},{"location":"api/json_pointer/operator_ne/#exception-safety","title":"Exception safety","text":"
  1. No-throw guarantee: this function never throws exceptions.
  2. Strong exception safety: if an exception occurs, the original value stays intact.
"},{"location":"api/json_pointer/operator_ne/#exceptions","title":"Exceptions","text":"
  1. (none)
  2. The function can throw the following exceptions:
  3. Throws parse_error.107 if the given JSON pointer s is nonempty and does not begin with a slash (/); see example below.
  4. Throws parse_error.108 if a tilde (~) in the given JSON pointer s is not followed by 0 (representing ~) or 1 (representing /); see example below.
"},{"location":"api/json_pointer/operator_ne/#complexity","title":"Complexity","text":"

Constant if lhs and rhs differ in the number of reference tokens, otherwise linear in the number of reference tokens.

"},{"location":"api/json_pointer/operator_ne/#notes","title":"Notes","text":"

Operator overload resolution

Since C++20 overload resolution will consider the rewritten candidate generated from operator==.

Deprecation

Overload 2 is deprecated and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_ne/#examples","title":"Examples","text":"Example: (1) Comparing JSON pointers

The example demonstrates comparing JSON pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // compare JSON pointers\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << ptr0 << \"\\\": \" << (ptr0 != ptr0) << '\\n'\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << ptr1 << \"\\\": \" << (ptr0 != ptr1) << '\\n'\n              << \"\\\"\" << ptr1 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (ptr1 != ptr2) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (ptr2 != ptr2) << std::endl;\n}\n

Output:

\"\" != \"\": false\n\"\" != \"\": false\n\"\" != \"/foo\": true\n\"/foo\" != \"/foo\": false\n
Example: (2) Comparing JSON pointers and strings

The example demonstrates comparing JSON pointers and strings, and when doing so may raise an exception.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON pointers\n    json::json_pointer ptr0;\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n\n    // different strings\n    std::string str0(\"\");\n    std::string str1(\"/foo\");\n    std::string str2(\"bar\");\n\n    // compare JSON pointers and strings\n    std::cout << std::boolalpha\n              << \"\\\"\" << ptr0 << \"\\\" != \\\"\" << str0 << \"\\\": \" << (ptr0 != str0) << '\\n'\n              << \"\\\"\" << str0 << \"\\\" != \\\"\" << ptr1 << \"\\\": \" << (str0 != ptr1) << '\\n'\n              << \"\\\"\" << ptr2 << \"\\\" != \\\"\" << str1 << \"\\\": \" << (ptr2 != str1) << std::endl;\n\n    try\n    {\n        std::cout << \"\\\"\" << str2 << \"\\\" != \\\"\" << ptr2 << \"\\\": \" << (str2 != ptr2) << std::endl;\n    }\n    catch (const json::parse_error& ex)\n    {\n        std::cout << ex.what() << std::endl;\n    }\n}\n

Output:

\"\" != \"\": false\n\"\" != \"\": false\n\"/foo\" != \"/foo\": false\n\"bar\" != \"/foo\": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'\n
"},{"location":"api/json_pointer/operator_ne/#version-history","title":"Version history","text":"
  1. Added in version 2.1.0.
  2. Added for backward compatibility and deprecated in version 3.11.2.
"},{"location":"api/json_pointer/operator_slash/","title":"nlohmann::json_pointer::operator/","text":"
// (1)\njson_pointer operator/(const json_pointer& lhs, const json_pointer& rhs);\n\n// (2)\njson_pointer operator/(const json_pointer& lhs, string_t token);\n\n// (3)\njson_pointer operator/(const json_pointer& lhs, std::size_t array_idx);\n
  1. create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer
  2. create a new JSON pointer by appending the unescaped token at the end of the JSON pointer
  3. create a new JSON pointer by appending the array-index-token at the end of the JSON pointer
"},{"location":"api/json_pointer/operator_slash/#parameters","title":"Parameters","text":"lhs (in) JSON pointer rhs (in) JSON pointer to append token (in) reference token to append array_idx (in) array index to append"},{"location":"api/json_pointer/operator_slash/#return-value","title":"Return value","text":"
  1. a new JSON pointer with rhs appended to lhs
  2. a new JSON pointer with unescaped token appended to lhs
  3. a new JSON pointer with array_idx appended to lhs
"},{"location":"api/json_pointer/operator_slash/#complexity","title":"Complexity","text":"
  1. Linear in the length of lhs and rhs.
  2. Linear in the length of lhs.
  3. Linear in the length of lhs.
"},{"location":"api/json_pointer/operator_slash/#examples","title":"Examples","text":"Example

The example shows the usage of operator/.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON pointer\n    json::json_pointer ptr(\"/foo\");\n\n    // append a JSON Pointer\n    std::cout << \"\\\"\" << ptr / json::json_pointer(\"/bar/baz\") << \"\\\"\\n\";\n\n    // append a string\n    std::cout << \"\\\"\" << ptr / \"fob\" << \"\\\"\\n\";\n\n    // append an array index\n    std::cout << \"\\\"\" << ptr / 42 << \"\\\"\" << std::endl;\n}\n

Output:

\"/foo/bar/baz\"\n\"/foo/fob\"\n\"/foo/42\"\n
"},{"location":"api/json_pointer/operator_slash/#version-history","title":"Version history","text":"
  1. Added in version 3.6.0.
  2. Added in version 3.6.0. Changed type of token to string_t in version 3.11.0.
  3. Added in version 3.6.0.
"},{"location":"api/json_pointer/operator_slasheq/","title":"nlohmann::json_pointer::operator/=","text":"
// (1)\njson_pointer& operator/=(const json_pointer& ptr);\n\n// (2)\njson_pointer& operator/=(string_t token);\n\n// (3)\njson_pointer& operator/=(std::size_t array_idx)\n
  1. append another JSON pointer at the end of this JSON pointer
  2. append an unescaped reference token at the end of this JSON pointer
  3. append an array index at the end of this JSON pointer
"},{"location":"api/json_pointer/operator_slasheq/#parameters","title":"Parameters","text":"ptr (in) JSON pointer to append token (in) reference token to append array_idx (in) array index to append"},{"location":"api/json_pointer/operator_slasheq/#return-value","title":"Return value","text":"
  1. JSON pointer with ptr appended
  2. JSON pointer with token appended without escaping token
  3. JSON pointer with array_idx appended
"},{"location":"api/json_pointer/operator_slasheq/#complexity","title":"Complexity","text":"
  1. Linear in the length of ptr.
  2. Amortized constant.
  3. Amortized constant.
"},{"location":"api/json_pointer/operator_slasheq/#examples","title":"Examples","text":"Example

The example shows the usage of operator/=.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create a JSON pointer\n    json::json_pointer ptr(\"/foo\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append a JSON Pointer\n    ptr /= json::json_pointer(\"/bar/baz\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append a string\n    ptr /= \"fob\";\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // append an array index\n    ptr /= 42;\n    std::cout << \"\\\"\" << ptr << \"\\\"\" << std::endl;\n}\n

Output:

\"/foo\"\n\"/foo/bar/baz\"\n\"/foo/bar/baz/fob\"\n\"/foo/bar/baz/fob/42\"\n
"},{"location":"api/json_pointer/operator_slasheq/#version-history","title":"Version history","text":"
  1. Added in version 3.6.0.
  2. Added in version 3.6.0. Changed type of token to string_t in version 3.11.0.
  3. Added in version 3.6.0.
"},{"location":"api/json_pointer/operator_string_t/","title":"nlohmann::json_pointer::operator string_t","text":"
operator string_t() const\n

Return a string representation of the JSON pointer.

"},{"location":"api/json_pointer/operator_string_t/#return-value","title":"Return value","text":"

A string representation of the JSON pointer

"},{"location":"api/json_pointer/operator_string_t/#possible-implementation","title":"Possible implementation","text":"
operator string_t() const\n{\n    return to_string();\n}\n
"},{"location":"api/json_pointer/operator_string_t/#notes","title":"Notes","text":"

Deprecation

This function is deprecated in favor of to_string and will be removed in a future major version release.

"},{"location":"api/json_pointer/operator_string_t/#examples","title":"Examples","text":"Example

The example shows how JSON Pointers can be implicitly converted to strings.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"/foo/0\");\n    json::json_pointer ptr2(\"/a~1b\");\n\n    // implicit conversion to string\n    std::string s;\n    s += ptr1;\n    s += \"\\n\";\n    s += ptr2;\n\n    std::cout << s << std::endl;\n}\n

Output:

/foo/0\n/a~1b\n
"},{"location":"api/json_pointer/operator_string_t/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
  • Changed type to string_t and deprecated in version 3.11.0.
"},{"location":"api/json_pointer/parent_pointer/","title":"nlohmann::json_pointer::parent_pointer","text":"
json_pointer parent_pointer() const;\n

Returns the parent of this JSON pointer.

"},{"location":"api/json_pointer/parent_pointer/#return-value","title":"Return value","text":"

Parent of this JSON pointer; in case this JSON pointer is the root, the root itself is returned.

"},{"location":"api/json_pointer/parent_pointer/#complexity","title":"Complexity","text":"

Linear in the length of the JSON pointer.

"},{"location":"api/json_pointer/parent_pointer/#examples","title":"Examples","text":"Example

The example shows the result of parent_pointer for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n\n    // call parent_pointer()\n    std::cout << std::boolalpha\n              << \"parent of \\\"\" << ptr1 << \"\\\" is \\\"\" << ptr1.parent_pointer() << \"\\\"\\n\"\n              << \"parent of \\\"\" << ptr2 << \"\\\" is \\\"\" << ptr2.parent_pointer() << \"\\\"\\n\"\n              << \"parent of \\\"\" << ptr3 << \"\\\" is \\\"\" << ptr3.parent_pointer() << \"\\\"\" << std::endl;\n}\n

Output:

parent of \"\" is \"\"\nparent of \"/foo\" is \"\"\nparent of \"/foo/0\" is \"/foo\"\n
"},{"location":"api/json_pointer/parent_pointer/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/pop_back/","title":"nlohmann::json_pointer::pop_back","text":"
void pop_back();\n

Remove last reference token.

"},{"location":"api/json_pointer/pop_back/#exceptions","title":"Exceptions","text":"

Throws out_of_range.405 if JSON pointer has no parent.

"},{"location":"api/json_pointer/pop_back/#complexity","title":"Complexity","text":"

Constant.

"},{"location":"api/json_pointer/pop_back/#examples","title":"Examples","text":"Example

The example shows the usage of pop_back.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create empty JSON Pointer\n    json::json_pointer ptr(\"/foo/bar/baz\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // call pop_back()\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.pop_back();\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n}\n

Output:

\"/foo/bar/baz\"\n\"/foo/bar\"\n\"/foo\"\n\"\"\n
"},{"location":"api/json_pointer/pop_back/#version-history","title":"Version history","text":"

Added in version 3.6.0.

"},{"location":"api/json_pointer/push_back/","title":"nlohmann::json_pointer::push_back","text":"
void push_back(const string_t& token);\n\nvoid push_back(string_t&& token);\n

Append an unescaped token at the end of the reference pointer.

"},{"location":"api/json_pointer/push_back/#parameters","title":"Parameters","text":"token (in) token to add"},{"location":"api/json_pointer/push_back/#complexity","title":"Complexity","text":"

Amortized constant.

"},{"location":"api/json_pointer/push_back/#examples","title":"Examples","text":"Example

The example shows the result of push_back for different JSON Pointers.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create empty JSON Pointer\n    json::json_pointer ptr;\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    // call push_back()\n    ptr.push_back(\"foo\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.push_back(\"0\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n\n    ptr.push_back(\"bar\");\n    std::cout << \"\\\"\" << ptr << \"\\\"\\n\";\n}\n

Output:

\"\"\n\"/foo\"\n\"/foo/0\"\n\"/foo/0/bar\"\n
"},{"location":"api/json_pointer/push_back/#version-history","title":"Version history","text":"
  • Added in version 3.6.0.
  • Changed type of token to string_t in version 3.11.0.
"},{"location":"api/json_pointer/string_t/","title":"nlohmann::json_pointer::string_t","text":"
using string_t = RefStringType;\n

The string type used for the reference tokens making up the JSON pointer.

See basic_json::string_t for more information.

"},{"location":"api/json_pointer/string_t/#examples","title":"Examples","text":"Example

The example shows the type string_t and its relation to basic_json::string_t.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json::json_pointer::string_t s = \"This is a string.\";\n\n    std::cout << s << std::endl;\n\n    std::cout << std::boolalpha << std::is_same<json::json_pointer::string_t, json::string_t>::value << std::endl;\n}\n

Output:

This is a string.\ntrue\n
"},{"location":"api/json_pointer/string_t/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/json_pointer/to_string/","title":"nlohmann::json_pointer::to_string","text":"
string_t to_string() const;\n

Return a string representation of the JSON pointer.

"},{"location":"api/json_pointer/to_string/#return-value","title":"Return value","text":"

A string representation of the JSON pointer

"},{"location":"api/json_pointer/to_string/#notes","title":"Notes","text":"

For each JSON pointer ptr, it holds:

ptr == json_pointer(ptr.to_string());\n
"},{"location":"api/json_pointer/to_string/#examples","title":"Examples","text":"Example

The example shows the result of to_string.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // different JSON Pointers\n    json::json_pointer ptr1(\"\");\n    json::json_pointer ptr2(\"/foo\");\n    json::json_pointer ptr3(\"/foo/0\");\n    json::json_pointer ptr4(\"/\");\n    json::json_pointer ptr5(\"/a~1b\");\n    json::json_pointer ptr6(\"/c%d\");\n    json::json_pointer ptr7(\"/e^f\");\n    json::json_pointer ptr8(\"/g|h\");\n    json::json_pointer ptr9(\"/i\\\\j\");\n    json::json_pointer ptr10(\"/k\\\"l\");\n    json::json_pointer ptr11(\"/ \");\n    json::json_pointer ptr12(\"/m~0n\");\n\n    std::cout << \"\\\"\" << ptr1.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr2.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr3.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr4.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr5.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr6.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr7.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr8.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr9.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr10.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr11.to_string() << \"\\\"\\n\"\n              << \"\\\"\" << ptr12.to_string() << \"\\\"\" << std::endl;\n}\n

Output:

\"\"\n\"/foo\"\n\"/foo/0\"\n\"/\"\n\"/a~1b\"\n\"/c%d\"\n\"/e^f\"\n\"/g|h\"\n\"/i\\j\"\n\"/k\"l\"\n\"/ \"\n\"/m~0n\"\n
"},{"location":"api/json_pointer/to_string/#version-history","title":"Version history","text":"
  • Since version 2.0.0.
  • Changed return type to string_t in version 3.11.0.
"},{"location":"api/json_sax/","title":"nlohmann::json_sax","text":"
template<typename BasicJsonType>\nstruct json_sax;\n

This class describes the SAX interface used by sax_parse. Each function is called in different situations while the input is parsed. The boolean return value informs the parser whether to continue processing the input.

"},{"location":"api/json_sax/#template-parameters","title":"Template parameters","text":"BasicJsonType a specialization of basic_json"},{"location":"api/json_sax/#member-types","title":"Member types","text":"
  • number_integer_t - BasicJsonType's type for numbers (integer)
  • number_unsigned_t - BasicJsonType's type for numbers (unsigned)
  • number_float_t - BasicJsonType's type for numbers (floating-point)
  • string_t - BasicJsonType's type for strings
  • binary_t - BasicJsonType's type for binary arrays
"},{"location":"api/json_sax/#member-functions","title":"Member functions","text":"
  • binary (virtual) - a binary value was read
  • boolean (virtual) - a boolean value was read
  • end_array (virtual) - the end of an array was read
  • end_object (virtual) - the end of an object was read
  • key (virtual) - an object key was read
  • null (virtual) - a null value was read
  • number_float (virtual) - a floating-point number was read
  • number_integer (virtual) - an integer number was read
  • number_unsigned (virtual) - an unsigned integer number was read
  • parse_error (virtual) - a parse error occurred
  • start_array (virtual) - the beginning of an array was read
  • start_object (virtual) - the beginning of an object was read
  • string (virtual) - a string value was read
"},{"location":"api/json_sax/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
  • Support for binary values (binary_t, binary) added in version 3.8.0.
"},{"location":"api/json_sax/binary/","title":"nlohmann::json_sax::binary","text":"
virtual bool binary(binary_t& val) = 0;\n

A binary value was read.

"},{"location":"api/json_sax/binary/#parameters","title":"Parameters","text":"val (in) binary value"},{"location":"api/json_sax/binary/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/binary/#notes","title":"Notes","text":"

It is safe to move the passed binary value.

"},{"location":"api/json_sax/binary/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // CBOR byte string\n    std::vector<std::uint8_t> vec = {{0x44, 0xcA, 0xfe, 0xba, 0xbe}};\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse CBOR\n    bool result = json::sax_parse(vec, &sec, json::input_format_t::cbor);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

binary(val=[...])\n\nresult: true\n
"},{"location":"api/json_sax/binary/#version-history","title":"Version history","text":"
  • Added in version 3.8.0.
"},{"location":"api/json_sax/boolean/","title":"nlohmann::json_sax::boolean","text":"
virtual bool boolean(bool val) = 0;\n

A boolean value was read.

"},{"location":"api/json_sax/boolean/#parameters","title":"Parameters","text":"val (in) boolean value"},{"location":"api/json_sax/boolean/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/boolean/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/boolean/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/end_array/","title":"nlohmann::json_sax::end_array","text":"
virtual bool end_array() = 0;\n

The end of an array was read.

"},{"location":"api/json_sax/end_array/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/end_array/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/end_array/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/end_object/","title":"nlohmann::json_sax::end_object","text":"
virtual bool end_object() = 0;\n

The end of an object was read.

"},{"location":"api/json_sax/end_object/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/end_object/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/end_object/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/key/","title":"nlohmann::json_sax::key","text":"
virtual bool key(string_t& val) = 0;\n

An object key was read.

"},{"location":"api/json_sax/key/#parameters","title":"Parameters","text":"val (in) object key"},{"location":"api/json_sax/key/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/key/#notes","title":"Notes","text":"

It is safe to move the passed object key value.

"},{"location":"api/json_sax/key/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/key/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/null/","title":"nlohmann::json_sax::null","text":"
virtual bool null() = 0;\n

A null value was read.

"},{"location":"api/json_sax/null/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/null/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/null/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_float/","title":"nlohmann::json_sax::number_float","text":"
virtual bool number_float(number_float_t val, const string_t& s) = 0;\n

A floating-point number was read.

"},{"location":"api/json_sax/number_float/#parameters","title":"Parameters","text":"val (in) floating-point value s (in) string representation of the original input"},{"location":"api/json_sax/number_float/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_float/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_float/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_integer/","title":"nlohmann::json_sax::number_integer","text":"
virtual bool number_integer(number_integer_t val) = 0;\n

An integer number was read.

"},{"location":"api/json_sax/number_integer/#parameters","title":"Parameters","text":"val (in) integer value"},{"location":"api/json_sax/number_integer/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_integer/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_integer/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/number_unsigned/","title":"nlohmann::json_sax::number_unsigned","text":"
virtual bool number_unsigned(number_unsigned_t val) = 0;\n

An unsigned integer number was read.

"},{"location":"api/json_sax/number_unsigned/#parameters","title":"Parameters","text":"val (in) unsigned integer value"},{"location":"api/json_sax/number_unsigned/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/number_unsigned/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/number_unsigned/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/parse_error/","title":"nlohmann::json_sax::parse_error","text":"
virtual bool parse_error(std::size_t position,\n                         const std::string& last_token,\n                         const detail::exception& ex) = 0;\n

A parse error occurred.

"},{"location":"api/json_sax/parse_error/#parameters","title":"Parameters","text":"position (in) the position in the input where the error occurs last_token (in) the last read token ex (in) an exception object describing the error"},{"location":"api/json_sax/parse_error/#return-value","title":"Return value","text":"

Whether parsing should proceed (must return false).

"},{"location":"api/json_sax/parse_error/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/parse_error/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/start_array/","title":"nlohmann::json_sax::start_array","text":"
virtual bool start_array(std::size_t elements) = 0;\n

The beginning of an array was read.

"},{"location":"api/json_sax/start_array/#parameters","title":"Parameters","text":"elements (in) number of object elements or -1 if unknown"},{"location":"api/json_sax/start_array/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/start_array/#notes","title":"Notes","text":"

Binary formats may report the number of elements.

"},{"location":"api/json_sax/start_array/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/start_array/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/start_object/","title":"nlohmann::json_sax::start_object","text":"
virtual bool start_object(std::size_t elements) = 0;\n

The beginning of an object was read.

"},{"location":"api/json_sax/start_object/#parameters","title":"Parameters","text":"elements (in) number of object elements or -1 if unknown"},{"location":"api/json_sax/start_object/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/start_object/#notes","title":"Notes","text":"

Binary formats may report the number of elements.

"},{"location":"api/json_sax/start_object/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/start_object/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/json_sax/string/","title":"nlohmann::json_sax::string","text":"
virtual bool string(string_t& val) = 0;\n

A string value was read.

"},{"location":"api/json_sax/string/#parameters","title":"Parameters","text":"val (in) string value"},{"location":"api/json_sax/string/#return-value","title":"Return value","text":"

Whether parsing should proceed.

"},{"location":"api/json_sax/string/#notes","title":"Notes","text":"

It is safe to move the passed string value.

"},{"location":"api/json_sax/string/#examples","title":"Examples","text":"Example

The example below shows how the SAX interface is used.

#include <iostream>\n#include <iomanip>\n#include <sstream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\n// a simple event consumer that collects string representations of the passed\n// values; note inheriting from json::json_sax_t is not required, but can\n// help not to forget a required function\nclass sax_event_consumer : public json::json_sax_t\n{\n  public:\n    std::vector<std::string> events;\n\n    bool null() override\n    {\n        events.push_back(\"null()\");\n        return true;\n    }\n\n    bool boolean(bool val) override\n    {\n        events.push_back(\"boolean(val=\" + std::string(val ? \"true\" : \"false\") + \")\");\n        return true;\n    }\n\n    bool number_integer(number_integer_t val) override\n    {\n        events.push_back(\"number_integer(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val) override\n    {\n        events.push_back(\"number_unsigned(val=\" + std::to_string(val) + \")\");\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& s) override\n    {\n        events.push_back(\"number_float(val=\" + std::to_string(val) + \", s=\" + s + \")\");\n        return true;\n    }\n\n    bool string(string_t& val) override\n    {\n        events.push_back(\"string(val=\" + val + \")\");\n        return true;\n    }\n\n    bool start_object(std::size_t elements) override\n    {\n        events.push_back(\"start_object(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_object() override\n    {\n        events.push_back(\"end_object()\");\n        return true;\n    }\n\n    bool start_array(std::size_t elements) override\n    {\n        events.push_back(\"start_array(elements=\" + std::to_string(elements) + \")\");\n        return true;\n    }\n\n    bool end_array() override\n    {\n        events.push_back(\"end_array()\");\n        return true;\n    }\n\n    bool key(string_t& val) override\n    {\n        events.push_back(\"key(val=\" + val + \")\");\n        return true;\n    }\n\n    bool binary(json::binary_t& val) override\n    {\n        events.push_back(\"binary(val=[...])\");\n        return true;\n    }\n\n    bool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex) override\n    {\n        events.push_back(\"parse_error(position=\" + std::to_string(position) + \", last_token=\" + last_token + \",\\n            ex=\" + std::string(ex.what()) + \")\");\n        return false;\n    }\n};\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, -38793],\n            \"DeletionDate\": null,\n            \"Distance\": 12.723374634\n        }\n    }]\n    )\";\n\n    // create a SAX event consumer object\n    sax_event_consumer sec;\n\n    // parse JSON\n    bool result = json::sax_parse(text, &sec);\n\n    // output the recorded events\n    for (auto& event : sec.events)\n    {\n        std::cout << event << \"\\n\";\n    }\n\n    // output the result of sax_parse\n    std::cout << \"\\nresult: \" << std::boolalpha << result << std::endl;\n}\n

Output:

start_object(elements=18446744073709551615)\nkey(val=Image)\nstart_object(elements=18446744073709551615)\nkey(val=Width)\nnumber_unsigned(val=800)\nkey(val=Height)\nnumber_unsigned(val=600)\nkey(val=Title)\nstring(val=View from 15th Floor)\nkey(val=Thumbnail)\nstart_object(elements=18446744073709551615)\nkey(val=Url)\nstring(val=http://www.example.com/image/481989943)\nkey(val=Height)\nnumber_unsigned(val=125)\nkey(val=Width)\nnumber_unsigned(val=100)\nend_object()\nkey(val=Animated)\nboolean(val=false)\nkey(val=IDs)\nstart_array(elements=18446744073709551615)\nnumber_unsigned(val=116)\nnumber_unsigned(val=943)\nnumber_unsigned(val=234)\nnumber_integer(val=-38793)\nend_array()\nkey(val=DeletionDate)\nnull()\nkey(val=Distance)\nnumber_float(val=12.723375, s=12.723374634)\nend_object()\nend_object()\nparse_error(position=460, last_token=12.723374634<U+000A>        }<U+000A>    }],\n            ex=[json.exception.parse_error.101] parse error at line 17, column 6: syntax error while parsing value - unexpected ']'; expected end of input)\n\nresult: false\n
"},{"location":"api/json_sax/string/#version-history","title":"Version history","text":"
  • Added in version 3.2.0.
"},{"location":"api/macros/","title":"Macros","text":"

Some aspects of the library can be configured by defining preprocessor macros before including the json.hpp header. See also the macro overview page.

"},{"location":"api/macros/#runtime-assertions","title":"Runtime assertions","text":"
  • JSON_ASSERT(x) - control behavior of runtime assertions
"},{"location":"api/macros/#exceptions","title":"Exceptions","text":"
  • JSON_CATCH_USER(exception)JSON_THROW_USER(exception)JSON_TRY_USER - control exceptions
  • JSON_DIAGNOSTICS - control extended diagnostics
  • JSON_NOEXCEPTION - switch off exceptions
"},{"location":"api/macros/#language-support","title":"Language support","text":"
  • JSON_HAS_CPP_11JSON_HAS_CPP_14JSON_HAS_CPP_17JSON_HAS_CPP_20 - set supported C++ standard
  • JSON_HAS_FILESYSTEMJSON_HAS_EXPERIMENTAL_FILESYSTEM - control std::filesystem support
  • JSON_HAS_RANGES - control std::ranges support
  • JSON_HAS_THREE_WAY_COMPARISON - control 3-way comparison support
  • JSON_NO_IO - switch off functions relying on certain C++ I/O headers
  • JSON_SKIP_UNSUPPORTED_COMPILER_CHECK - do not warn about unsupported compilers
  • JSON_USE_GLOBAL_UDLS - place user-defined string literals (UDLs) into the global namespace
"},{"location":"api/macros/#library-version","title":"Library version","text":"
  • JSON_SKIP_LIBRARY_VERSION_CHECK - skip library version check
  • NLOHMANN_JSON_VERSION_MAJORNLOHMANN_JSON_VERSION_MINORNLOHMANN_JSON_VERSION_PATCH - library version information
"},{"location":"api/macros/#library-namespace","title":"Library namespace","text":"
  • NLOHMANN_JSON_NAMESPACE - full name of the nlohmann namespace
  • NLOHMANN_JSON_NAMESPACE_BEGINNLOHMANN_JSON_NAMESPACE_END - open and close the library namespace
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION - disable the version component of the inline namespace
"},{"location":"api/macros/#type-conversions","title":"Type conversions","text":"
  • JSON_DISABLE_ENUM_SERIALIZATION - switch off default serialization/deserialization functions for enums
  • JSON_USE_IMPLICIT_CONVERSIONS - control implicit conversions
"},{"location":"api/macros/#comparison-behavior","title":"Comparison behavior","text":"
  • JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON - control comparison of discarded values
"},{"location":"api/macros/#serializationdeserialization-macros","title":"Serialization/deserialization macros","text":"
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) - serialization/deserialization of types with access to private variables
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) - serialization/deserialization of types without access to private variables
  • NLOHMANN_JSON_SERIALIZE_ENUM(type, ...) - serialization/deserialization of enum types
"},{"location":"api/macros/json_assert/","title":"JSON_ASSERT","text":"
#define JSON_ASSERT(x) /* value */\n

This macro controls which code is executed for runtime assertions of the library.

"},{"location":"api/macros/json_assert/#parameters","title":"Parameters","text":"x (in) expression of scalar type"},{"location":"api/macros/json_assert/#default-definition","title":"Default definition","text":"

The default value is assert(x).

#define JSON_ASSERT(x) assert(x)\n

Therefore, assertions can be switched off by defining NDEBUG.

"},{"location":"api/macros/json_assert/#notes","title":"Notes","text":"
  • The library uses numerous assertions to guarantee invariants and to abort in case of otherwise undefined behavior (e.g., when calling operator[] with a missing object key on a const object). See page runtime assertions for more information.
  • Defining the macro to code that does not call std::abort may leave the library in an undefined state.
  • The macro is undefined outside the library.
"},{"location":"api/macros/json_assert/#examples","title":"Examples","text":"Example 1: default behavior

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

Assertion failed: (m_value.object->find(key) != m_value.object->end()), function operator[], file json.hpp, line 2144.\n
Example 2: user-defined behavior

The assertion reporting can be changed by defining JSON_ASSERT(x) differently.

#include <cstdio>\n#include <cstdlib>\n#define JSON_ASSERT(x) if(!(x)){fprintf(stderr, \"assertion error in %s\\n\", __FUNCTION__); std::abort();}\n\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

assertion error in operator[]\n
"},{"location":"api/macros/json_assert/#version-history","title":"Version history","text":"
  • Added in version 3.9.0.
"},{"location":"api/macros/json_diagnostics/","title":"JSON_DIAGNOSTICS","text":"
#define JSON_DIAGNOSTICS /* value */\n

This macro enables extended diagnostics for exception messages. Possible values are 1 to enable or 0 to disable (default).

When enabled, exception messages contain a JSON Pointer to the JSON value that triggered the exception. Note that enabling this macro increases the size of every JSON value by one pointer and adds some runtime overhead.

"},{"location":"api/macros/json_diagnostics/#default-definition","title":"Default definition","text":"

The default value is 0 (extended diagnostics are switched off).

#define JSON_DIAGNOSTICS 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_diagnostics/#notes","title":"Notes","text":"

ABI compatibility

As of version 3.11.0, this macro is no longer required to be defined consistently throughout a codebase to avoid One Definition Rule (ODR) violations, as the value of this macro is encoded in the namespace, resulting in distinct symbol names.

This allows different parts of a codebase to use different versions or configurations of this library without causing improper behavior.

Where possible, it is still recommended that all code define this the same way for maximum interoperability.

CMake option

Diagnostic messages can also be controlled with the CMake option JSON_Diagnostics (OFF by default) which defines JSON_DIAGNOSTICS accordingly.

"},{"location":"api/macros/json_diagnostics/#examples","title":"Examples","text":"Example 1: default behavior
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] type must be number, but is string\n

This exception can be hard to debug if storing the value \"12\" and accessing it is further apart.

Example 2: extended diagnostic messages
#include <iostream>\n\n# define JSON_DIAGNOSTICS 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] (/address/housenumber) type must be number, but is string\n

Now the exception message contains a JSON Pointer /address/housenumber that indicates which value has the wrong type.

"},{"location":"api/macros/json_diagnostics/#version-history","title":"Version history","text":"
  • Added in version 3.10.0.
  • As of version 3.11.0 the definition is allowed to vary between translation units.
"},{"location":"api/macros/json_disable_enum_serialization/","title":"JSON_DISABLE_ENUM_SERIALIZATION","text":"
#define JSON_DISABLE_ENUM_SERIALIZATION /* value */\n

When defined to 1, default serialization and deserialization functions for enums are excluded and have to be provided by the user, for example, using NLOHMANN_JSON_SERIALIZE_ENUM (see arbitrary type conversions for more details).

Parsing or serializing an enum will result in a compiler error.

This works for both unscoped and scoped enums.

"},{"location":"api/macros/json_disable_enum_serialization/#default-definition","title":"Default definition","text":"

The default value is 0.

#define JSON_DISABLE_ENUM_SERIALIZATION 0\n
"},{"location":"api/macros/json_disable_enum_serialization/#notes","title":"Notes","text":"

CMake option

Enum serialization can also be controlled with the CMake option JSON_DisableEnumSerialization (OFF by default) which defines JSON_DISABLE_ENUM_SERIALIZATION accordingly.

"},{"location":"api/macros/json_disable_enum_serialization/#examples","title":"Examples","text":"Example 1: Disabled behavior

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, meaning the code below does not compile.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nint main()\n{\n    // normally invokes to_json serialization function but with JSON_DISABLE_ENUM_SERIALIZATION defined, it does not\n    const json j = Choice::first; \n\n    // normally invokes from_json parse function but with JSON_DISABLE_ENUM_SERIALIZATION defined, it does not\n    Choice ch = j.template get<Choice>();\n}\n
Example 2: Serialize enum macro

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, but uses NLOHMANN_JSON_SERIALIZE_ENUM to parse and serialize the enum.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Choice,\n{\n    { Choice::first, \"first\" },\n    { Choice::second, \"second\" },\n})\n\nint main()\n{\n    // uses user-defined to_json function defined by macro\n    const json j = Choice::first; \n\n    // uses user-defined from_json function defined by macro\n    Choice ch = j.template get<Choice>();\n}\n
Example 3: User-defined serialization/deserialization functions

The code below forces the library not to create default serialization/deserialization functions from_json and to_json, but uses user-defined functions to parse and serialize the enum.

#define JSON_DISABLE_ENUM_SERIALIZATION 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nenum class Choice\n{\n    first,\n    second,\n};\n\nvoid from_json(const json& j, Choice& ch)\n{\n    auto value = j.template get<std::string>();\n    if (value == \"first\")\n    {\n        ch = Choice::first;\n    }\n    else if (value == \"second\")\n    {\n        ch = Choice::second;\n    }\n}\n\nvoid to_json(json& j, const Choice& ch)\n{\n    auto value = j.template get<std::string>();\n    if (value == \"first\")\n    {\n        ch = Choice::first;\n    }\n    else if (value == \"second\")\n    {\n        ch = Choice::second;\n    }\n}\n\nint main()\n{\n    // uses user-defined to_json function\n    const json j = Choice::first; \n\n    // uses user-defined from_json function\n    Choice ch = j.template get<Choice>();\n}\n
"},{"location":"api/macros/json_disable_enum_serialization/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_SERIALIZE_ENUM
"},{"location":"api/macros/json_disable_enum_serialization/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_has_cpp_11/","title":"JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20","text":"
#define JSON_HAS_CPP_11\n#define JSON_HAS_CPP_14\n#define JSON_HAS_CPP_17\n#define JSON_HAS_CPP_20\n

The library targets C++11, but also supports some features introduced in later C++ versions (e.g., std::string_view support for C++17). For these new features, the library implements some preprocessor checks to determine the C++ standard. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly.

"},{"location":"api/macros/json_has_cpp_11/#default-definition","title":"Default definition","text":"

The default value is detected based on preprocessor macros such as __cplusplus, _HAS_CXX17, or _MSVC_LANG.

"},{"location":"api/macros/json_has_cpp_11/#notes","title":"Notes","text":"
  • JSON_HAS_CPP_11 is always defined.
  • All macros are undefined outside the library.
"},{"location":"api/macros/json_has_cpp_11/#examples","title":"Examples","text":"Example

The code below forces the library to use the C++14 standard:

#define JSON_HAS_CPP_14 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_cpp_11/#version-history","title":"Version history","text":"
  • Added in version 3.10.5.
"},{"location":"api/macros/json_has_filesystem/","title":"JSON_HAS_FILESYSTEM / JSON_HAS_EXPERIMENTAL_FILESYSTEM","text":"
#define JSON_HAS_FILESYSTEM /* value */\n#define JSON_HAS_EXPERIMENTAL_FILESYSTEM /* value */\n

When compiling with C++17, the library provides conversions from and to std::filesystem::path. As compiler support for filesystem is limited, the library tries to detect whether <filesystem>/std::filesystem (JSON_HAS_FILESYSTEM) or <experimental/filesystem>/std::experimental::filesystem (JSON_HAS_EXPERIMENTAL_FILESYSTEM) should be used. To override the built-in check, define JSON_HAS_FILESYSTEM or JSON_HAS_EXPERIMENTAL_FILESYSTEM to 1.

"},{"location":"api/macros/json_has_filesystem/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macros __cpp_lib_filesystem, __cpp_lib_experimental_filesystem, __has_include(<filesystem>), or __has_include(<experimental/filesystem>).

"},{"location":"api/macros/json_has_filesystem/#notes","title":"Notes","text":"
  • Note that older compilers or older versions of libstd++ also require the library stdc++fs to be linked to for filesystem support.
  • Both macros are undefined outside the library.
"},{"location":"api/macros/json_has_filesystem/#examples","title":"Examples","text":"Example

The code below forces the library to use the header <experimental/filesystem>.

#define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_filesystem/#version-history","title":"Version history","text":"
  • Added in version 3.10.5.
"},{"location":"api/macros/json_has_ranges/","title":"JSON_HAS_RANGES","text":"
#define JSON_HAS_RANGES /* value */\n

This macro indicates whether the standard library has any support for ranges. Implies support for concepts. Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_ranges/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macro __cpp_lib_ranges.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_ranges/#examples","title":"Examples","text":"Example

The code below forces the library to enable support for ranges:

#define JSON_HAS_RANGES 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_ranges/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_has_static_rtti/","title":"JSON_HAS_STATIC_RTTI","text":"
#define JSON_HAS_STATIC_RTTI /* value */\n

This macro indicates whether the standard library has any support for RTTI (run time type information). Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_static_rtti/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macro _HAS_STATIC_RTTI.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_static_rtti/#examples","title":"Examples","text":"Example

The code below forces the library to enable support for libraries with RTTI dependence:

#define JSON_HAS_STATIC_RTTI 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_static_rtti/#version-history","title":"Version history","text":"
  • Added in version ?.
"},{"location":"api/macros/json_has_three_way_comparison/","title":"JSON_HAS_THREE_WAY_COMPARISON","text":"
#define JSON_HAS_THREE_WAY_COMPARISON /* value */\n

This macro indicates whether the compiler and standard library support 3-way comparison. Possible values are 1 when supported or 0 when unsupported.

"},{"location":"api/macros/json_has_three_way_comparison/#default-definition","title":"Default definition","text":"

The default value is detected based on the preprocessor macros __cpp_impl_three_way_comparison and __cpp_lib_three_way_comparison.

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_has_three_way_comparison/#examples","title":"Examples","text":"Example

The code below forces the library to use 3-way comparison:

#define JSON_HAS_THREE_WAY_COMPARISON 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_has_three_way_comparison/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_no_io/","title":"JSON_NO_IO","text":"
#define JSON_NO_IO\n

When defined, headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream> are not included and parse functions relying on these headers are excluded. This is relevant for environments where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)).

"},{"location":"api/macros/json_no_io/#default-definition","title":"Default definition","text":"

By default, JSON_NO_IO is not defined.

#undef JSON_NO_IO\n
"},{"location":"api/macros/json_no_io/#examples","title":"Examples","text":"Example

The code below forces the library not to use the headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream>.

#define JSON_NO_IO 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_no_io/#version-history","title":"Version history","text":"
  • Added in version 3.10.0.
"},{"location":"api/macros/json_noexception/","title":"JSON_NOEXCEPTION","text":"
#define JSON_NOEXCEPTION\n

Exceptions can be switched off by defining the symbol JSON_NOEXCEPTION. When defining JSON_NOEXCEPTION, try is replaced by if (true), catch is replaced by if (false), and throw is replaced by std::abort().

The same effect is achieved by setting the compiler flag -fno-exceptions.

"},{"location":"api/macros/json_noexception/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_NOEXCEPTION\n
"},{"location":"api/macros/json_noexception/#notes","title":"Notes","text":"

The explanatory what() string of exceptions is not available for MSVC if exceptions are disabled, see #2824.

"},{"location":"api/macros/json_noexception/#examples","title":"Examples","text":"Example

The code below switches off exceptions in the library.

#define JSON_NOEXCEPTION 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_noexception/#see-also","title":"See also","text":"
  • Switch off exceptions for more information how to switch off exceptions
"},{"location":"api/macros/json_noexception/#version-history","title":"Version history","text":"

Added in version 2.1.0.

"},{"location":"api/macros/json_skip_library_version_check/","title":"JSON_SKIP_LIBRARY_VERSION_CHECK","text":"
#define JSON_SKIP_LIBRARY_VERSION_CHECK\n

When defined, the library will not create a compiler warning when a different version of the library was already included.

"},{"location":"api/macros/json_skip_library_version_check/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_SKIP_LIBRARY_VERSION_CHECK\n
"},{"location":"api/macros/json_skip_library_version_check/#notes","title":"Notes","text":"

ABI compatibility

Mixing different library versions in the same code can be a problem as the different versions may not be ABI compatible.

"},{"location":"api/macros/json_skip_library_version_check/#examples","title":"Examples","text":"

Example

The following warning will be shown in case a different version of the library was already included:

Already included a different version of the library!\n
"},{"location":"api/macros/json_skip_library_version_check/#version-history","title":"Version history","text":"

Added in version 3.11.0.

"},{"location":"api/macros/json_skip_unsupported_compiler_check/","title":"JSON_SKIP_UNSUPPORTED_COMPILER_CHECK","text":"
#define JSON_SKIP_UNSUPPORTED_COMPILER_CHECK\n

When defined, the library will not create a compile error when a known unsupported compiler is detected. This allows to use the library with compilers that do not fully support C++11 and may only work if unsupported features are not used.

"},{"location":"api/macros/json_skip_unsupported_compiler_check/#default-definition","title":"Default definition","text":"

By default, the macro is not defined.

#undef JSON_SKIP_UNSUPPORTED_COMPILER_CHECK\n
"},{"location":"api/macros/json_skip_unsupported_compiler_check/#examples","title":"Examples","text":"Example

The code below switches off the check whether the compiler is supported.

#define JSON_SKIP_UNSUPPORTED_COMPILER_CHECK 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_skip_unsupported_compiler_check/#version-history","title":"Version history","text":"

Added in version 3.2.0.

"},{"location":"api/macros/json_throw_user/","title":"JSON_CATCH_USER, JSON_THROW_USER, JSON_TRY_USER","text":"
// (1)\n#define JSON_CATCH_USER(exception) /* value */\n// (2)\n#define JSON_THROW_USER(exception) /* value */\n// (3)\n#define JSON_TRY_USER /* value */\n

Controls how exceptions are handled by the library.

  1. This macro overrides catch calls inside the library. The argument is the type of the exception to catch. As of version 3.8.0, the library only catches std::out_of_range exceptions internally to rethrow them as json::out_of_range exceptions. The macro is always followed by a scope.
  2. This macro overrides throw calls inside the library. The argument is the exception to be thrown. Note that JSON_THROW_USER should leave the current scope (e.g., by throwing or aborting), as continuing after it may yield undefined behavior.
  3. This macro overrides try calls inside the library. It has no arguments and is always followed by a scope.
"},{"location":"api/macros/json_throw_user/#parameters","title":"Parameters","text":"exception (in) an exception type"},{"location":"api/macros/json_throw_user/#default-definition","title":"Default definition","text":"

By default, the macros map to their respective C++ keywords:

#define JSON_CATCH_USER(exception) catch(exception)\n#define JSON_THROW_USER(exception) throw exception\n#define JSON_TRY_USER              try\n

When exceptions are switched off, the try block is executed unconditionally, and throwing exceptions is replaced by calling std::abort to make reaching the throw branch abort the process.

#define JSON_THROW_USER(exception) std::abort()\n#define JSON_TRY_USER              if (true)\n#define JSON_CATCH_USER(exception) if (false)\n
"},{"location":"api/macros/json_throw_user/#examples","title":"Examples","text":"Example

The code below switches off exceptions and creates a log entry with a detailed error message in case of errors.

#include <iostream>\n\n#define JSON_TRY_USER if(true)\n#define JSON_CATCH_USER(exception) if(false)\n#define JSON_THROW_USER(exception)                           \\\n    {std::clog << \"Error in \" << __FILE__ << \":\" << __LINE__ \\\n               << \" (function \" << __FUNCTION__ << \") - \"    \\\n               << (exception).what() << std::endl;           \\\n     std::abort();}\n\n#include <nlohmann/json.hpp>\n
"},{"location":"api/macros/json_throw_user/#see-also","title":"See also","text":"
  • Switch off exceptions for more information how to switch off exceptions
  • JSON_NOEXCEPTION - switch off exceptions
"},{"location":"api/macros/json_throw_user/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"api/macros/json_use_global_udls/","title":"JSON_USE_GLOBAL_UDLS","text":"
#define JSON_USE_GLOBAL_UDLS /* value */\n

When defined to 1, the user-defined string literals (UDLs) are placed into the global namespace instead of nlohmann::literals::json_literals.

"},{"location":"api/macros/json_use_global_udls/#default-definition","title":"Default definition","text":"

The default value is 1.

#define JSON_USE_GLOBAL_UDLS 1\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_use_global_udls/#notes","title":"Notes","text":"

Future behavior change

The user-defined string literals will be removed from the global namespace in the next major release of the library.

To prepare existing code, define JSON_USE_GLOBAL_UDLS to 0 and bring the string literals into scope where needed. Refer to any of the string literals for details.

CMake option

The placement of user-defined string literals can also be controlled with the CMake option JSON_GlobalUDLs (ON by default) which defines JSON_USE_GLOBAL_UDLS accordingly.

"},{"location":"api/macros/json_use_global_udls/#examples","title":"Examples","text":"Example 1: Default behavior

The code below shows the default behavior using the _json UDL.

#include <nlohmann/json.hpp>\n\n#include <iostream>\n\nint main()\n{\n    auto j = \"42\"_json;\n\n    std::cout << j << std::endl;\n}\n

Output:

42\n
Example 2: Namespaced UDLs

The code below shows how UDLs need to be brought into scope before using _json when JSON_USE_GLOBAL_UDLS is defined to 0.

#define JSON_USE_GLOBAL_UDLS 0\n#include <nlohmann/json.hpp>\n\n#include <iostream>\n\nint main()\n{\n    // auto j = \"42\"_json; // This line would fail to compile,\n                           // because the UDLs are not in the global namespace\n\n    // Bring the UDLs into scope\n    using namespace nlohmann::json_literals;\n\n    auto j = \"42\"_json;\n\n    std::cout << j << std::endl;\n}\n

Output:

42\n
"},{"location":"api/macros/json_use_global_udls/#see-also","title":"See also","text":"
  • operator\"\"_json
  • operator\"\"_json_pointer
"},{"location":"api/macros/json_use_global_udls/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/json_use_implicit_conversions/","title":"JSON_USE_IMPLICIT_CONVERSIONS","text":"
#define JSON_USE_IMPLICIT_CONVERSIONS /* value */\n

When defined to 0, implicit conversions are switched off. By default, implicit conversions are switched on. The value directly affects operator ValueType.

"},{"location":"api/macros/json_use_implicit_conversions/#default-definition","title":"Default definition","text":"

By default, implicit conversions are enabled.

#define JSON_USE_IMPLICIT_CONVERSIONS 1\n
"},{"location":"api/macros/json_use_implicit_conversions/#notes","title":"Notes","text":"

Future behavior change

Implicit conversions will be switched off by default in the next major release of the library.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

CMake option

Implicit conversions can also be controlled with the CMake option JSON_ImplicitConversions (ON by default) which defines JSON_USE_IMPLICIT_CONVERSIONS accordingly.

"},{"location":"api/macros/json_use_implicit_conversions/#examples","title":"Examples","text":"Example

This is an example for an implicit conversion:

json j = \"Hello, world!\";\nstd::string s = j;\n

When JSON_USE_IMPLICIT_CONVERSIONS is defined to 0, the code above does no longer compile. Instead, it must be written like this:

json j = \"Hello, world!\";\nauto s = j.template get<std::string>();\n
"},{"location":"api/macros/json_use_implicit_conversions/#see-also","title":"See also","text":"
  • operator ValueType - get a value (implicit)
  • get - get a value (explicit)
"},{"location":"api/macros/json_use_implicit_conversions/#version-history","title":"Version history","text":"
  • Added in version 3.9.0.
"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/","title":"JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON","text":"
#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON /* value */\n

This macro enables the (incorrect) legacy comparison behavior of discarded JSON values. Possible values are 1 to enable or 0 to disable (default).

When enabled, comparisons involving at least one discarded JSON value yield results as follows:

Operator Result == false != true < false <= true >= true > false

Otherwise, comparisons involving at least one discarded JSON value always yield false.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#default-definition","title":"Default definition","text":"

The default value is 0.

#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#notes","title":"Notes","text":"

Inconsistent behavior in C++20 and beyond

When targeting C++20 or above, enabling the legacy comparison behavior is strongly discouraged.

  • The 3-way comparison operator (<=>) will always give the correct result (std::partial_ordering::unordered) regardless of the value of JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON.
  • Overloads for the equality and relational operators emulate the legacy behavior.

Code outside your control may use either 3-way comparison or the equality and relational operators, resulting in inconsistent and unpredictable behavior.

See operator<=> for more information on 3-way comparison.

Deprecation

The legacy comparison behavior is deprecated and may be removed in a future major version release.

New code should not depend on it and existing code should try to remove or rewrite expressions relying on it.

CMake option

Legacy comparison can also be controlled with the CMake option JSON_LegacyDiscardedValueComparison (OFF by default) which defines JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON accordingly.

"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#examples","title":"Examples","text":"Example

The code below switches on the legacy discarded value comparison behavior in the library.

#define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 1\n#include <nlohmann/json.hpp>\n\n...\n
"},{"location":"api/macros/json_use_legacy_discarded_value_comparison/#version-history","title":"Version history","text":"
  • Added in version 3.11.0.
"},{"location":"api/macros/nlohmann_define_type_intrusive/","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE","text":"
#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)              // (1)\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) // (2)\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...) // (3)\n

These macros can be used to simplify the serialization/deserialization of types if you want to use a JSON object as serialization and want to use the member variable names as object keys in that object. The macro is to be defined inside the class/struct to create code for. Unlike NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, it can access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

  1. Will use at during deserialization and will throw out_of_range.403 if a key is missing in the JSON object.
  2. Will use value during deserialization and fall back to the default value for the respective type of the member variable if a key in the JSON object is missing. The generated from_json() function default constructs an object and uses its values as the defaults when calling the value function.
  3. Only defines the serialization. Useful in cases when the type does not have a default constructor and only serialization in required.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#parameters","title":"Parameters","text":"type (in) name of the type (class, struct) to serialize/deserialize member (in) name of the member variable to serialize/deserialize; up to 64 members can be given as comma-separated list"},{"location":"api/macros/nlohmann_define_type_intrusive/#default-definition","title":"Default definition","text":"

The macros add two friend functions to the class which take care of the serialization and deserialization:

friend void to_json(nlohmann::json&, const type&);\nfriend void from_json(const nlohmann::json&, type&); // except (3)\n

See examples below for the concrete generated code.

"},{"location":"api/macros/nlohmann_define_type_intrusive/#notes","title":"Notes","text":"

Prerequisites

  1. The type type must be default constructible (except (3)). See How can I use get() for non-default constructible/non-copyable types? for how to overcome this limitation.
  2. The macro must be used inside the type (class/struct).

Implementation limits

  • The current implementation is limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#examples","title":"Examples","text":"Example (1): NLOHMANN_DEFINE_TYPE_INTRUSIVE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\ndeserialization failed: [json.exception.out_of_range.403] key 'age' not found\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE is used inside the class.
  • A missing key \"age\" in the deserialization yields an exception. To fall back to the default value, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT can be used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n\n    friend void from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n    {\n        nlohmann_json_t.name = nlohmann_json_j.at(\"name\");\n        nlohmann_json_t.address = nlohmann_json_j.at(\"address\");\n        nlohmann_json_t.age = nlohmann_json_j.at(\"age\");\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n
Example (2): NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\nroundtrip: {\"address\":\"742 Evergreen Terrace\",\"age\":-1,\"name\":\"Maggie Simpson\"}\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT is used inside the class.
  • A missing key \"age\" in the deserialization does not yield an exception. Instead, the default value -1 is used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n\n    friend void from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n    {\n        person nlohmann_json_default_obj;\n        nlohmann_json_t.name = nlohmann_json_j.value(\"name\", nlohmann_json_default_obj.name);\n        nlohmann_json_t.address = nlohmann_json_j.value(\"address\", nlohmann_json_default_obj.address);\n        nlohmann_json_t.age = nlohmann_json_j.value(\"age\", nlohmann_json_default_obj.age);\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Note how a default-initialized person object is used in the from_json to fill missing values.

Example (3): NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    // No default constructor\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    NLOHMANN_DEFINE_TYPE_INTRUSIVE(person, name, address, age)\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n

Notes:

  • ns::person is non-default-constructible. This allows this macro to be used instead of NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT.
  • ns::person has private member variables. This makes NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE applicable, but not NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE.
  • The macro NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE is used inside the class.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nclass person\n{\n  private:\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n  public:\n    // No default constructor\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n\n    friend void to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n    {\n        nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n        nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n        nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n    }\n};\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n
"},{"location":"api/macros/nlohmann_define_type_intrusive/#see-also","title":"See also","text":"
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE{_WITH_DEFAULT, _ONLY_SERIALIZE} for a similar macro that can be defined outside the type.
  • Arbitrary Type Conversions for an overview.
"},{"location":"api/macros/nlohmann_define_type_intrusive/#version-history","title":"Version history","text":"
  1. Added in version 3.9.0.
  2. Added in version 3.11.0.
  3. Added in version TODO.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE","text":"
#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)              // (1)\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) // (2)\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...) // (3)\n

These macros can be used to simplify the serialization/deserialization of types if you want to use a JSON object as serialization and want to use the member variable names as object keys in that object. The macro is to be defined outside the class/struct to create code for, but inside its namespace. Unlike NLOHMANN_DEFINE_TYPE_INTRUSIVE, it cannot access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

  1. Will use at during deserialization and will throw out_of_range.403 if a key is missing in the JSON object.
  2. Will use value during deserialization and fall back to the default value for the respective type of the member variable if a key in the JSON object is missing. The generated from_json() function default constructs an object and uses its values as the defaults when calling the value function.
  3. Only defines the serialization. Useful in cases when the type does not have a default constructor and only serialization in required.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#parameters","title":"Parameters","text":"type (in) name of the type (class, struct) to serialize/deserialize member (in) name of the (public) member variable to serialize/deserialize; up to 64 members can be given as comma-separated list"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#default-definition","title":"Default definition","text":"

The macros add two functions to the namespace which take care of the serialization and deserialization:

void to_json(nlohmann::json&, const type&);\nvoid from_json(const nlohmann::json&, type&); // except (3)\n

See examples below for the concrete generated code.

"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#notes","title":"Notes","text":"

Prerequisites

  1. The type type must be default constructible (except (3). See How can I use get() for non-default constructible/non-copyable types? for how to overcome this limitation.
  2. The macro must be used outside the type (class/struct).
  3. The passed members must be public.

Implementation limits

  • The current implementation is limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#examples","title":"Examples","text":"Example (1): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\ndeserialization failed: [json.exception.out_of_range.403] key 'age' not found\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE is used outside the class, but inside its namespace ns.
  • A missing key \"age\" in the deserialization yields an exception. To fall back to the default value, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT can be used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n\nvoid from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n{\n    nlohmann_json_t.name = nlohmann_json_j.at(\"name\");\n    nlohmann_json_t.address = nlohmann_json_j.at(\"address\");\n    nlohmann_json_t.age = nlohmann_json_j.at(\"age\");\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    try\n    {\n        auto p3 = j3.template get<ns::person>();\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << \"deserialization failed: \" << e.what() << std::endl;\n    }\n}\n
Example (2): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\nroundtrip: {\"address\":\"742 Evergreen Terrace\",\"age\":-1,\"name\":\"Maggie Simpson\"}\n

Notes:

  • ns::person is default-constructible. This is a requirement for using the macro.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT is used outside the class, but inside its namespace ns.
  • A missing key \"age\" in the deserialization does not yield an exception. Instead, the default value -1 is used.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name = \"John Doe\";\n    std::string address = \"123 Fake St\";\n    int age = -1;\n\n    person() = default;\n    person(std::string name_, std::string address_, int age_)\n        : name(std::move(name_)), address(std::move(address_)), age(age_)\n    {}\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n\nvoid from_json(const nlohmann::json& nlohmann_json_j, person& nlohmann_json_t)\n{\n    person nlohmann_json_default_obj;\n    nlohmann_json_t.name = nlohmann_json_j.value(\"name\", nlohmann_json_default_obj.name);\n    nlohmann_json_t.address = nlohmann_json_j.value(\"address\", nlohmann_json_default_obj.address);\n    nlohmann_json_t.age = nlohmann_json_j.value(\"age\", nlohmann_json_default_obj.age);\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n\n    // deserialization: json -> person\n    json j2 = R\"({\"address\": \"742 Evergreen Terrace\", \"age\": 40, \"name\": \"Homer Simpson\"})\"_json;\n    auto p2 = j2.template get<ns::person>();\n\n    // incomplete deserialization:\n    json j3 = R\"({\"address\": \"742 Evergreen Terrace\", \"name\": \"Maggie Simpson\"})\"_json;\n    auto p3 = j3.template get<ns::person>();\n    std::cout << \"roundtrip: \" << json(p3) << std::endl;\n}\n

Note how a default-initialized person object is used in the from_json to fill missing values.

Example (3): NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

Consider the following complete example:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nNLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(person, name, address, age)\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n

Output:

serialization: {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n

Notes:

  • ns::person is non-default-constructible. This allows this macro to be used instead of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.
  • ns::person has only public member variables. This makes NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE applicable.
  • The macro NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE is used outside the class, but inside its namespace ns.

The macro is equivalent to:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nnamespace ns\n{\nstruct person\n{\n    std::string name;\n    std::string address;\n    int age;\n};\n\nvoid to_json(nlohmann::json& nlohmann_json_j, const person& nlohmann_json_t)\n{\n    nlohmann_json_j[\"name\"] = nlohmann_json_t.name;\n    nlohmann_json_j[\"address\"] = nlohmann_json_t.address;\n    nlohmann_json_j[\"age\"] = nlohmann_json_t.age;\n}\n} // namespace ns\n\nint main()\n{\n    ns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n    // serialization: person -> json\n    json j = p;\n    std::cout << \"serialization: \" << j << std::endl;\n}\n
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#see-also","title":"See also","text":"
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE{_WITH_DEFAULT, _ONLY_SERIALIZE} for a similar macro that can be defined inside the type.
  • Arbitrary Type Conversions for an overview.
"},{"location":"api/macros/nlohmann_define_type_non_intrusive/#version-history","title":"Version history","text":"
  1. Added in version 3.9.0.
  2. Added in version 3.11.0.
  3. Added in version TODO.
"},{"location":"api/macros/nlohmann_json_namespace/","title":"NLOHMANN_JSON_NAMESPACE","text":"
#define NLOHMANN_JSON_NAMESPACE /* value */\n

This macro evaluates to the full name of the nlohmann namespace.

"},{"location":"api/macros/nlohmann_json_namespace/#default-definition","title":"Default definition","text":"

The default value consists of the root namespace (nlohmann) and an inline ABI namespace. See nlohmann Namespace for details.

When the macro is not defined, the library will define it to its default value. Overriding this value has no effect on the library.

"},{"location":"api/macros/nlohmann_json_namespace/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE instead of just nlohmann, as well as how to output the value of NLOHMANN_JSON_NAMESPACE.

#include <iostream>\n#include <nlohmann/json.hpp>\n\n// possible use case: use NLOHMANN_JSON_NAMESPACE instead of nlohmann\nusing json = NLOHMANN_JSON_NAMESPACE::json;\n\n// macro needed to output the NLOHMANN_JSON_NAMESPACE as string literal\n#define Q(x) #x\n#define QUOTE(x) Q(x)\n\nint main()\n{\n    std::cout << QUOTE(NLOHMANN_JSON_NAMESPACE) << std::endl;\n}\n

Output:

nlohmann::json_abi_v3_11_3\n
"},{"location":"api/macros/nlohmann_json_namespace/#see-also","title":"See also","text":"
  • NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION
"},{"location":"api/macros/nlohmann_json_namespace/#version-history","title":"Version history","text":"
  • Added in version 3.11.0. Changed inline namespace name in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_namespace_begin/","title":"NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END","text":"
#define NLOHMANN_JSON_NAMESPACE_BEGIN /* value */  // (1)\n#define NLOHMANN_JSON_NAMESPACE_END   /* value */  // (2)\n

These macros can be used to open and close the nlohmann namespace. See nlohmann Namespace for details.

  1. Opens the namespace.
  2. Closes the namespace.
"},{"location":"api/macros/nlohmann_json_namespace_begin/#default-definition","title":"Default definition","text":"

The default definitions open and close the nlohmann namespace. The precise definition of [NLOHMANN_JSON_NAMESPACE_BEGIN] varies as described here.

  1. Default definition of NLOHMANN_JSON_NAMESPACE_BEGIN:

    namespace nlohmann\n{\ninline namespace json_abi_v3_11_2\n{\n
  2. Default definition of NLOHMANN_JSON_NAMESPACE_END:

    }  // namespace json_abi_v3_11_2\n}  // namespace nlohmann\n

When these macros are not defined, the library will define them to their default definitions.

"},{"location":"api/macros/nlohmann_json_namespace_begin/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE_BEGIN/NLOHMANN_JSON_NAMESPACE_END from the How do I convert third-party types? page.

#include <iostream>\n#include <optional>\n#include <nlohmann/json.hpp>\n\n// partial specialization (see https://json.nlohmann.me/features/arbitrary_types/)\nNLOHMANN_JSON_NAMESPACE_BEGIN\ntemplate <typename T>\nstruct adl_serializer<std::optional<T>>\n{\n    static void to_json(json& j, const std::optional<T>& opt)\n    {\n        if (opt == std::nullopt)\n        {\n            j = nullptr;\n        }\n        else\n        {\n            j = *opt;\n        }\n    }\n};\nNLOHMANN_JSON_NAMESPACE_END\n\nint main()\n{\n    std::optional<int> o1 = 1;\n    std::optional<int> o2 = std::nullopt;\n\n    NLOHMANN_JSON_NAMESPACE::json j;\n    j.push_back(o1);\n    j.push_back(o2);\n    std::cout << j << std::endl;\n}\n

Output:

[1,null]\n
"},{"location":"api/macros/nlohmann_json_namespace_begin/#see-also","title":"See also","text":"
  • nlohmann Namespace
  • NLOHMANN_JSON_NAMESPACE
  • NLOHMANN_JSON_NAMESPACE_NO_VERSION
"},{"location":"api/macros/nlohmann_json_namespace_begin/#version-history","title":"Version history","text":"
  • Added in version 3.11.0. Changed inline namespace name in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_namespace_no_version/","title":"NLOHMANN_JSON_NAMESPACE_NO_VERSION","text":"
#define NLOHMANN_JSON_NAMESPACE_NO_VERSION /* value */\n

If defined to 1, the version component is omitted from the inline namespace. See nlohmann Namespace for details.

"},{"location":"api/macros/nlohmann_json_namespace_no_version/#default-definition","title":"Default definition","text":"

The default value is 0.

#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0\n

When the macro is not defined, the library will define it to its default value.

"},{"location":"api/macros/nlohmann_json_namespace_no_version/#examples","title":"Examples","text":"Example

The example shows how to use NLOHMANN_JSON_NAMESPACE_NO_VERSION to disable the version component of the inline namespace.

#include <iostream>\n\n#define NLOHMANN_JSON_NAMESPACE_NO_VERSION 1\n#include <nlohmann/json.hpp>\n\n// macro needed to output the NLOHMANN_JSON_NAMESPACE as string literal\n#define Q(x) #x\n#define QUOTE(x) Q(x)\n\nint main()\n{\n    std::cout << QUOTE(NLOHMANN_JSON_NAMESPACE) << std::endl;\n}\n

Output:

nlohmann::json_abi\n
"},{"location":"api/macros/nlohmann_json_namespace_no_version/#see-also","title":"See also","text":"
  • nlohmann Namespace
  • NLOHMANN_JSON_NAMESPACE
  • NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END
"},{"location":"api/macros/nlohmann_json_namespace_no_version/#version-history","title":"Version history","text":"
  • Added in version 3.11.2.
"},{"location":"api/macros/nlohmann_json_serialize_enum/","title":"NLOHMANN_JSON_SERIALIZE_ENUM","text":"
#define NLOHMANN_JSON_SERIALIZE_ENUM(type, conversion...)\n

By default, enum values are serialized to JSON as integers. In some cases this could result in undesired behavior. If an enum is modified or re-ordered after data has been serialized to JSON, the later de-serialized JSON data may be undefined or a different enum value than was originally intended.

The NLOHMANN_JSON_SERIALIZE_ENUM allows to define a user-defined serialization for every enumerator.

"},{"location":"api/macros/nlohmann_json_serialize_enum/#parameters","title":"Parameters","text":"type (in) name of the enum to serialize/deserialize conversion (in) a pair of an enumerator and a JSON serialization; arbitrary pairs can be given as a comma-separated list"},{"location":"api/macros/nlohmann_json_serialize_enum/#default-definition","title":"Default definition","text":"

The macros add two friend functions to the class which take care of the serialization and deserialization:

template<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, const type& e);\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, type& e);\n
"},{"location":"api/macros/nlohmann_json_serialize_enum/#notes","title":"Notes","text":"

Prerequisites

The macro must be used inside the namespace of the enum.

Important notes

  • When using template get<ENUM_TYPE>(), undefined JSON values will default to the first specified conversion. Select this default pair carefully. See example 1 below.
  • If an enum or JSON value is specified in multiple conversions, the first matching conversion from the top of the list will be returned when converting to or from JSON. See example 2 below.
"},{"location":"api/macros/nlohmann_json_serialize_enum/#examples","title":"Examples","text":"Example 1: Basic usage

The example shows how NLOHMANN_JSON_SERIALIZE_ENUM can be used to serialize/deserialize both classical enums and C++11 enum classes:

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\nenum TaskState\n{\n    TS_STOPPED,\n    TS_RUNNING,\n    TS_COMPLETED,\n    TS_INVALID = -1\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(TaskState,\n{\n    { TS_INVALID, nullptr },\n    { TS_STOPPED, \"stopped\" },\n    { TS_RUNNING, \"running\" },\n    { TS_COMPLETED, \"completed\" }\n})\n\nenum class Color\n{\n    red, green, blue, unknown\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Color,\n{\n    { Color::unknown, \"unknown\" }, { Color::red, \"red\" },\n    { Color::green, \"green\" }, { Color::blue, \"blue\" }\n})\n} // namespace ns\n\nint main()\n{\n    // serialization\n    json j_stopped = ns::TS_STOPPED;\n    json j_red = ns::Color::red;\n    std::cout << \"ns::TS_STOPPED -> \" << j_stopped\n              << \", ns::Color::red -> \" << j_red << std::endl;\n\n    // deserialization\n    json j_running = \"running\";\n    json j_blue = \"blue\";\n    auto running = j_running.template get<ns::TaskState>();\n    auto blue = j_blue.template get<ns::Color>();\n    std::cout << j_running << \" -> \" << running\n              << \", \" << j_blue << \" -> \" << static_cast<int>(blue) << std::endl;\n\n    // deserializing undefined JSON value to enum\n    // (where the first map entry above is the default)\n    json j_pi = 3.14;\n    auto invalid = j_pi.template get<ns::TaskState>();\n    auto unknown = j_pi.template get<ns::Color>();\n    std::cout << j_pi << \" -> \" << invalid << \", \"\n              << j_pi << \" -> \" << static_cast<int>(unknown) << std::endl;\n}\n

Output:

ns::TS_STOPPED -> \"stopped\", ns::Color::red -> \"red\"\n\"running\" -> 1, \"blue\" -> 2\n3.14 -> -1, 3.14 -> 3\n
Example 2: Multiple conversions for one enumerator

The example shows how to use multiple conversions for a single enumerator. In the example, Color::red will always be serialized to \"red\", because the first occurring conversion. The second conversion, however, offers an alternative deserialization from \"rot\" to Color::red.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nnamespace ns\n{\nenum class Color\n{\n    red, green, blue, unknown\n};\n\nNLOHMANN_JSON_SERIALIZE_ENUM(Color,\n{\n    { Color::unknown, \"unknown\" }, { Color::red, \"red\" },\n    { Color::green, \"green\" }, { Color::blue, \"blue\" },\n    { Color::red, \"rot\" } // a second conversion for Color::red\n})\n}\n\nint main()\n{\n    // serialization\n    json j_red = ns::Color::red;\n    std::cout << static_cast<int>(ns::Color::red) << \" -> \" << j_red << std::endl;\n\n    // deserialization\n    json j_rot = \"rot\";\n    auto rot = j_rot.template get<ns::Color>();\n    auto red = j_red.template get<ns::Color>();\n    std::cout << j_rot << \" -> \" << static_cast<int>(rot) << std::endl;\n    std::cout << j_red << \" -> \" << static_cast<int>(red) << std::endl;\n}\n

Output:

0 -> \"red\"\n\"rot\" -> 0\n\"red\" -> 0\n
"},{"location":"api/macros/nlohmann_json_serialize_enum/#see-also","title":"See also","text":"
  • Specializing enum conversion
  • JSON_DISABLE_ENUM_SERIALIZATION
"},{"location":"api/macros/nlohmann_json_serialize_enum/#version-history","title":"Version history","text":"

Added in version 3.4.0.

"},{"location":"api/macros/nlohmann_json_version_major/","title":"NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH","text":"
#define NLOHMANN_JSON_VERSION_MAJOR /* value */\n#define NLOHMANN_JSON_VERSION_MINOR /* value */\n#define NLOHMANN_JSON_VERSION_PATCH /* value */\n

These macros are defined by the library and contain the version numbers according to Semantic Versioning 2.0.0.

"},{"location":"api/macros/nlohmann_json_version_major/#default-definition","title":"Default definition","text":"

The macros are defined according to the current library version.

"},{"location":"api/macros/nlohmann_json_version_major/#examples","title":"Examples","text":"Example

The example below shows how NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH are defined by the library.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << \"JSON for Modern C++ version \"\n              << NLOHMANN_JSON_VERSION_MAJOR << \".\"\n              << NLOHMANN_JSON_VERSION_MINOR << \".\"\n              << NLOHMANN_JSON_VERSION_PATCH << std::endl;\n}\n

Output:

JSON for Modern C++ version 3.11.3\n
"},{"location":"api/macros/nlohmann_json_version_major/#see-also","title":"See also","text":"
  • meta - returns version information on the library
  • JSON_SKIP_LIBRARY_VERSION_CHECK - skip library version check
"},{"location":"api/macros/nlohmann_json_version_major/#version-history","title":"Version history","text":"
  • Added in version 3.1.0.
"},{"location":"features/arbitrary_types/","title":"Arbitrary Type Conversions","text":"

Every type can be serialized in JSON, not just STL containers and scalar types. Usually, you would do something along those lines:

namespace ns {\n    // a simple struct to model a person\n    struct person {\n        std::string name;\n        std::string address;\n        int age;\n    };\n} // namespace ns\n\nns::person p = {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n// convert to JSON: copy each value into the JSON object\njson j;\nj[\"name\"] = p.name;\nj[\"address\"] = p.address;\nj[\"age\"] = p.age;\n\n// ...\n\n// convert from JSON: copy each value from the JSON object\nns::person p {\n    j[\"name\"].template get<std::string>(),\n    j[\"address\"].template get<std::string>(),\n    j[\"age\"].template get<int>()\n};\n

It works, but that's quite a lot of boilerplate... Fortunately, there's a better way:

// create a person\nns::person p {\"Ned Flanders\", \"744 Evergreen Terrace\", 60};\n\n// conversion: person -> json\njson j = p;\n\nstd::cout << j << std::endl;\n// {\"address\":\"744 Evergreen Terrace\",\"age\":60,\"name\":\"Ned Flanders\"}\n\n// conversion: json -> person\nauto p2 = j.template get<ns::person>();\n\n// that's it\nassert(p == p2);\n
"},{"location":"features/arbitrary_types/#basic-usage","title":"Basic usage","text":"

To make this work with one of your types, you only need to provide two functions:

using json = nlohmann::json;\n\nnamespace ns {\n    void to_json(json& j, const person& p) {\n        j = json{ {\"name\", p.name}, {\"address\", p.address}, {\"age\", p.age} };\n    }\n\n    void from_json(const json& j, person& p) {\n        j.at(\"name\").get_to(p.name);\n        j.at(\"address\").get_to(p.address);\n        j.at(\"age\").get_to(p.age);\n    }\n} // namespace ns\n

That's all! When calling the json constructor with your type, your custom to_json method will be automatically called. Likewise, when calling template get<your_type>() or get_to(your_type&), the from_json method will be called.

Some important things:

  • Those methods MUST be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace ns, where person is defined).
  • Those methods MUST be available (e.g., proper headers must be included) everywhere you use these conversions. Look at issue 1108 for errors that may occur otherwise.
  • When using template get<your_type>(), your_type MUST be DefaultConstructible. (There is a way to bypass this requirement described later.)
  • In function from_json, use function at() to access the object values rather than operator[]. In case a key does not exist, at throws an exception that you can handle, whereas operator[] exhibits undefined behavior.
  • You do not need to add serializers or deserializers for STL types like std::vector: the library already implements these.
"},{"location":"features/arbitrary_types/#simplify-your-life-with-macros","title":"Simplify your life with macros","text":"

If you just want to serialize/deserialize some structs, the to_json/from_json functions can be a lot of boilerplate.

There are four macros to make your life easier as long as you (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object:

  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(name, member1, member2, ...) is to be defined inside the namespace of the class/struct to create code for. It will throw an exception in from_json() due to a missing value in the JSON object.
  • NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(name, member1, member2, ...) is to be defined inside the namespace of the class/struct to create code for. It will not throw an exception in from_json() due to a missing value in the JSON object, but fills in values from object which is default-constructed by the type.
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE(name, member1, member2, ...) is to be defined inside the class/struct to create code for. This macro can also access private members. It will throw an exception in from_json() due to a missing value in the JSON object.
  • NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(name, member1, member2, ...) is to be defined inside the class/struct to create code for. This macro can also access private members. It will not throw an exception in from_json() due to a missing value in the JSON object, but fills in values from object which is default-constructed by the type.

In all macros, the first parameter is the name of the class/struct, and all remaining parameters name the members. You can read more docs about them starting from here.

Implementation limits

  • The current macro implementations are limited to at most 64 member variables. If you want to serialize/deserialize types with more than 64 member variables, you need to define the to_json/from_json functions manually.
  • The macros only work for the nlohmann::json type; other specializations such as nlohmann::ordered_json are currently unsupported.
Example

The to_json/from_json functions for the person struct above can be created with:

namespace ns {\n    NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(person, name, address, age)\n}\n

Here is an example with private members, where NLOHMANN_DEFINE_TYPE_INTRUSIVE is needed:

namespace ns {\n    class address {\n      private:\n        std::string street;\n        int housenumber;\n        int postcode;\n\n      public:\n        NLOHMANN_DEFINE_TYPE_INTRUSIVE(address, street, housenumber, postcode)\n    };\n}\n
"},{"location":"features/arbitrary_types/#how-do-i-convert-third-party-types","title":"How do I convert third-party types?","text":"

This requires a bit more advanced technique. But first, let's see how this conversion mechanism works:

The library uses JSON Serializers to convert types to json. The default serializer for nlohmann::json is nlohmann::adl_serializer (ADL means Argument-Dependent Lookup).

It is implemented like this (simplified):

template <typename T>\nstruct adl_serializer {\n    static void to_json(json& j, const T& value) {\n        // calls the \"to_json\" method in T's namespace\n    }\n\n    static void from_json(const json& j, T& value) {\n        // same thing, but with the \"from_json\" method\n    }\n};\n

This serializer works fine when you have control over the type's namespace. However, what about boost::optional or std::filesystem::path (C++17)? Hijacking the boost namespace is pretty bad, and it's illegal to add something other than template specializations to std...

To solve this, you need to add a specialization of adl_serializer to the nlohmann namespace, here's an example:

// partial specialization (full specialization works too)\nNLOHMANN_JSON_NAMESPACE_BEGIN\ntemplate <typename T>\nstruct adl_serializer<boost::optional<T>> {\n    static void to_json(json& j, const boost::optional<T>& opt) {\n        if (opt == boost::none) {\n            j = nullptr;\n        } else {\n            j = *opt; // this will call adl_serializer<T>::to_json which will\n                      // find the free function to_json in T's namespace!\n        }\n    }\n\n    static void from_json(const json& j, boost::optional<T>& opt) {\n        if (j.is_null()) {\n            opt = boost::none;\n        } else {\n            opt = j.template get<T>(); // same as above, but with\n                              // adl_serializer<T>::from_json\n        }\n    }\n};\nNLOHMANN_JSON_NAMESPACE_END\n

ABI compatibility

Use NLOHMANN_JSON_NAMESPACE_BEGIN and NLOHMANN_JSON_NAMESPACE_END instead of namespace nlohmann { } in code which may be linked with different versions of this library.

"},{"location":"features/arbitrary_types/#how-can-i-use-get-for-non-default-constructiblenon-copyable-types","title":"How can I use get() for non-default constructible/non-copyable types?","text":"

There is a way, if your type is MoveConstructible. You will need to specialize the adl_serializer as well, but with a special from_json overload:

struct move_only_type {\n    move_only_type() = delete;\n    move_only_type(int ii): i(ii) {}\n    move_only_type(const move_only_type&) = delete;\n    move_only_type(move_only_type&&) = default;\n\n    int i;\n};\n\nnamespace nlohmann {\n    template <>\n    struct adl_serializer<move_only_type> {\n        // note: the return type is no longer 'void', and the method only takes\n        // one argument\n        static move_only_type from_json(const json& j) {\n            return {j.template get<int>()};\n        }\n\n        // Here's the catch! You must provide a to_json method! Otherwise, you\n        // will not be able to convert move_only_type to json, since you fully\n        // specialized adl_serializer on that type\n        static void to_json(json& j, move_only_type t) {\n            j = t.i;\n        }\n    };\n}\n
"},{"location":"features/arbitrary_types/#can-i-write-my-own-serializer-advanced-use","title":"Can I write my own serializer? (Advanced use)","text":"

Yes. You might want to take a look at unit-udt.cpp in the test suite, to see a few examples.

If you write your own serializer, you'll need to do a few things:

  • use a different basic_json alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer)
  • use your basic_json alias (or a template parameter) in all your to_json/from_json methods
  • use nlohmann::to_json and nlohmann::from_json when you need ADL

Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL.

// You should use void as a second template argument\n// if you don't need compile-time checks on T\ntemplate<typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type>\nstruct less_than_32_serializer {\n    template <typename BasicJsonType>\n    static void to_json(BasicJsonType& j, T value) {\n        // we want to use ADL, and call the correct to_json overload\n        using nlohmann::to_json; // this method is called by adl_serializer,\n                                 // this is where the magic happens\n        to_json(j, value);\n    }\n\n    template <typename BasicJsonType>\n    static void from_json(const BasicJsonType& j, T& value) {\n        // same thing here\n        using nlohmann::from_json;\n        from_json(j, value);\n    }\n};\n

Be very careful when reimplementing your serializer, you can stack overflow if you don't pay attention:

template <typename T, void>\nstruct bad_serializer\n{\n    template <typename BasicJsonType>\n    static void to_json(BasicJsonType& j, const T& value) {\n      // this calls BasicJsonType::json_serializer<T>::to_json(j, value);\n      // if BasicJsonType::json_serializer == bad_serializer ... oops!\n      j = value;\n    }\n\n    template <typename BasicJsonType>\n    static void to_json(const BasicJsonType& j, T& value) {\n      // this calls BasicJsonType::json_serializer<T>::from_json(j, value);\n      // if BasicJsonType::json_serializer == bad_serializer ... oops!\n      value = j.template template get<T>(); // oops!\n    }\n};\n
"},{"location":"features/assertions/","title":"Runtime Assertions","text":"

The code contains numerous debug assertions to ensure class invariants are valid or to detect undefined behavior. Whereas the former class invariants are nothing to be concerned of, the latter checks for undefined behavior are to detect bugs in client code.

"},{"location":"features/assertions/#switch-off-runtime-assertions","title":"Switch off runtime assertions","text":"

Runtime assertions can be switched off by defining the preprocessor macro NDEBUG (see the documentation of assert) which is the default for release builds.

"},{"location":"features/assertions/#change-assertion-behavior","title":"Change assertion behavior","text":"

The behavior of runtime assertions can be changes by defining macro JSON_ASSERT(x) before including the json.hpp header.

"},{"location":"features/assertions/#function-with-runtime-assertions","title":"Function with runtime assertions","text":""},{"location":"features/assertions/#unchecked-object-access-to-a-const-value","title":"Unchecked object access to a const value","text":"

Function operator[] implements unchecked access for objects. Whereas a missing key is added in case of non-const objects, accessing a const object with a missing key is undefined behavior (think of a dereferenced null pointer) and yields a runtime assertion.

If you are not sure whether an element in an object exists, use checked access with the at function or call the contains function before.

See also the documentation on element access.

Example 1: Missing object key

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    const json j = {{\"key\", \"value\"}};\n    auto v = j[\"missing\"];\n}\n

Output:

Assertion failed: (m_value.object->find(key) != m_value.object->end()), function operator[], file json.hpp, line 2144.\n
"},{"location":"features/assertions/#constructing-from-an-uninitialized-iterator-range","title":"Constructing from an uninitialized iterator range","text":"

Constructing a JSON value from an iterator range (see constructor) with an uninitialized iterator is undefined behavior and yields a runtime assertion.

Example 2: Uninitialized iterator range

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json::iterator it1, it2;\n    json j(it1, it2);\n}\n

Output:

Assertion failed: (m_object != nullptr), function operator++, file iter_impl.hpp, line 368.\n
"},{"location":"features/assertions/#operations-on-uninitialized-iterators","title":"Operations on uninitialized iterators","text":"

Any operation on uninitialized iterators (i.e., iterators that are not associated with any JSON value) is undefined behavior and yields a runtime assertion.

Example 3: Uninitialized iterator

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n  json::iterator it;\n  ++it;\n}\n

Output:

Assertion failed: (m_object != nullptr), function operator++, file iter_impl.hpp, line 368.\n
"},{"location":"features/assertions/#reading-from-a-null-file-pointer","title":"Reading from a null FILE pointer","text":"

Reading from a null FILE pointer is undefined behavior and yields a runtime assertion. This can happen when calling std::fopen on a nonexistent file.

Example 4: Uninitialized iterator

The following code will trigger an assertion at runtime:

#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n  std::FILE* f = std::fopen(\"nonexistent_file.json\", \"r\");\n  json j = json::parse(f);\n}\n

Output:

Assertion failed: (m_file != nullptr), function file_input_adapter, file input_adapters.hpp, line 55.\n
"},{"location":"features/binary_values/","title":"Binary Values","text":"

The library implements several binary formats that encode JSON in an efficient way. Most of these formats support binary values; that is, values that have semantics define outside the library and only define a sequence of bytes to be stored.

JSON itself does not have a binary value. As such, binary values are an extension that this library implements to store values received by a binary format. Binary values are never created by the JSON parser, and are only part of a serialized JSON text if they have been created manually or via a binary format.

"},{"location":"features/binary_values/#api-for-binary-values","title":"API for binary values","text":"

By default, binary values are stored as std::vector<std::uint8_t>. This type can be changed by providing a template parameter to the basic_json type. To store binary subtypes, the storage type is extended and exposed as json::binary_t:

auto binary = json::binary_t({0xCA, 0xFE, 0xBA, 0xBE});\nauto binary_with_subtype = json::binary_t({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n

There are several convenience functions to check and set the subtype:

binary.has_subtype();                   // returns false\nbinary_with_subtype.has_subtype();      // returns true\n\nbinary_with_subtype.clear_subtype();\nbinary_with_subtype.has_subtype();      // returns true\n\nbinary_with_subtype.set_subtype(42);\nbinary.set_subtype(23);\n\nbinary.subtype();                       // returns 23\n

As json::binary_t is subclassing std::vector<std::uint8_t>, all member functions are available:

binary.size();  // returns 4\nbinary[1];      // returns 0xFE\n

JSON values can be constructed from json::binary_t:

json j = binary;\n

Binary values are primitive values just like numbers or strings:

j.is_binary();    // returns true\nj.is_primitive(); // returns true\n

Given a binary JSON value, the binary_t can be accessed by reference as via get_binary():

j.get_binary().has_subtype();  // returns true\nj.get_binary().size();         // returns 4\n

For convenience, binary JSON values can be constructed via json::binary:

auto j2 = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 23);\nauto j3 = json::binary({0xCA, 0xFE, 0xBA, 0xBE});\n\nj2 == j;                        // returns true\nj3.get_binary().has_subtype();  // returns false\nj3.get_binary().subtype();      // returns std::uint64_t(-1) as j3 has no subtype\n
"},{"location":"features/binary_values/#serialization","title":"Serialization","text":"

Binary values are serialized differently according to the formats.

"},{"location":"features/binary_values/#json","title":"JSON","text":"

JSON does not have a binary type, and this library does not introduce a new type as this would break conformance. Instead, binary values are serialized as an object with two keys: bytes holds an array of integers, and subtype is an integer or null.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// serialize to standard output\nstd::cout << j.dump(2) << std::endl;\n

Output:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n

No roundtrip for binary values

The JSON parser will not parse the objects generated by binary values back to binary values. This is by design to remain standards compliant. Serializing binary values to JSON is only implemented for debugging purposes.

"},{"location":"features/binary_values/#bjdata","title":"BJData","text":"

BJData neither supports binary values nor subtypes, and proposes to serialize binary values as array of uint8 values. This translation is implemented by the library.

Example

Code:

// create a binary value of subtype 42 (will be ignored in BJData)\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to BJData\nauto v = json::to_bjdata(j);      \n

v is a std::vector<std::uint8t> with the following 20 elements:

0x7B                                             // '{'\n    0x69 0x06                                    // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79                // \"binary\"\n    0x5B                                         // '['\n        0x55 0xCA 0x55 0xFE 0x55 0xBA 0x55 0xBE  // content (each byte prefixed with 'U')\n    0x5D                                         // ']'\n0x7D                                             // '}'\n

The following code uses the type and size optimization for UBJSON:

// convert to UBJSON using the size and type optimization\nauto v = json::to_bjdata(j, true, true);\n

The resulting vector has 22 elements; the optimization is not effective for examples with few values:

0x7B                                // '{'\n    0x23 0x69 0x01                  // '#' 'i' type of the array elements: unsigned integers\n    0x69 0x06                       // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79   // \"binary\"\n    0x5B                            // '[' array\n        0x24 0x55                   // '$' 'U' type of the array elements: unsigned integers\n        0x23 0x69 0x04              // '#' i 4 number of array elements\n        0xCA 0xFE 0xBA 0xBE         // content\n

Note that subtype (42) is not serialized and that UBJSON has no binary type, and deserializing v would yield the following value:

{\n  \"binary\": [202, 254, 186, 190]\n}\n
"},{"location":"features/binary_values/#bson","title":"BSON","text":"

BSON supports binary values and subtypes. If a subtype is given, it is used and added as unsigned 8-bit integer. If no subtype is given, the generic binary subtype 0x00 is used.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to BSON\nauto v = json::to_bson(j);      \n

v is a std::vector<std::uint8t> with the following 22 elements:

0x16 0x00 0x00 0x00                         // number of bytes in the document\n    0x05                                    // binary value\n        0x62 0x69 0x6E 0x61 0x72 0x79 0x00  // key \"binary\" + null byte\n        0x04 0x00 0x00 0x00                 // number of bytes\n        0x2a                                // subtype\n        0xCA 0xFE 0xBA 0xBE                 // content\n0x00                                        // end of the document\n

Note that the serialization preserves the subtype, and deserializing v would yield the following value:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n
"},{"location":"features/binary_values/#cbor","title":"CBOR","text":"

CBOR supports binary values, but no subtypes. Subtypes will be serialized as tags. Any binary value will be serialized as byte strings. The library will choose the smallest representation using the length of the byte array.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to CBOR\nauto v = json::to_cbor(j);      \n

v is a std::vector<std::uint8t> with the following 15 elements:

0xA1                                   // map(1)\n    0x66                               // text(6)\n        0x62 0x69 0x6E 0x61 0x72 0x79  // \"binary\"\n    0xD8 0x2A                          // tag(42)\n    0x44                               // bytes(4)\n        0xCA 0xFE 0xBA 0xBE            // content\n

Note that the subtype is serialized as tag. However, parsing tagged values yield a parse error unless json::cbor_tag_handler_t::ignore or json::cbor_tag_handler_t::store is passed to json::from_cbor.

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": null\n  }\n}\n
"},{"location":"features/binary_values/#messagepack","title":"MessagePack","text":"

MessagePack supports binary values and subtypes. If a subtype is given, the ext family is used. The library will choose the smallest representation among fixext1, fixext2, fixext4, fixext8, ext8, ext16, and ext32. The subtype is then added as signed 8-bit integer.

If no subtype is given, the bin family (bin8, bin16, bin32) is used.

Example

Code:

// create a binary value of subtype 42\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to MessagePack\nauto v = json::to_msgpack(j);      \n

v is a std::vector<std::uint8t> with the following 14 elements:

0x81                                   // fixmap1\n    0xA6                               // fixstr6\n        0x62 0x69 0x6E 0x61 0x72 0x79  // \"binary\"\n    0xD6                               // fixext4\n        0x2A                           // subtype\n        0xCA 0xFE 0xBA 0xBE            // content\n

Note that the serialization preserves the subtype, and deserializing v would yield the following value:

{\n  \"binary\": {\n    \"bytes\": [202, 254, 186, 190],\n    \"subtype\": 42\n  }\n}\n
"},{"location":"features/binary_values/#ubjson","title":"UBJSON","text":"

UBJSON neither supports binary values nor subtypes, and proposes to serialize binary values as array of uint8 values. This translation is implemented by the library.

Example

Code:

// create a binary value of subtype 42 (will be ignored in UBJSON)\njson j;\nj[\"binary\"] = json::binary({0xCA, 0xFE, 0xBA, 0xBE}, 42);\n\n// convert to UBJSON\nauto v = json::to_ubjson(j);      \n

v is a std::vector<std::uint8t> with the following 20 elements:

0x7B                                             // '{'\n    0x69 0x06                                    // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79                // \"binary\"\n    0x5B                                         // '['\n        0x55 0xCA 0x55 0xFE 0x55 0xBA 0x55 0xBE  // content (each byte prefixed with 'U')\n    0x5D                                         // ']'\n0x7D                                             // '}'\n

The following code uses the type and size optimization for UBJSON:

// convert to UBJSON using the size and type optimization\nauto v = json::to_ubjson(j, true, true);\n

The resulting vector has 23 elements; the optimization is not effective for examples with few values:

0x7B                                // '{'\n    0x24                            // '$' type of the object elements\n    0x5B                            // '[' array\n    0x23 0x69 0x01                  // '#' i 1 number of object elements\n    0x69 0x06                       // i 6 (length of the key)\n    0x62 0x69 0x6E 0x61 0x72 0x79   // \"binary\"\n        0x24 0x55                   // '$' 'U' type of the array elements: unsigned integers\n        0x23 0x69 0x04              // '#' i 4 number of array elements\n        0xCA 0xFE 0xBA 0xBE         // content\n

Note that subtype (42) is not serialized and that UBJSON has no binary type, and deserializing v would yield the following value:

{\n  \"binary\": [202, 254, 186, 190]\n}\n
"},{"location":"features/comments/","title":"Comments","text":"

This library does not support comments by default. It does so for three reasons:

  1. Comments are not part of the JSON specification. You may argue that // or /* */ are allowed in JavaScript, but JSON is not JavaScript.
  2. This was not an oversight: Douglas Crockford wrote on this in May 2012:

    I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability.  I know that the lack of comments makes some people sad, but it shouldn't.\n\nSuppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.\n
  3. It is dangerous for interoperability if some libraries would add comment support while others don't. Please check The Harmful Consequences of the Robustness Principle on this.

However, you can pass set parameter ignore_comments to true in the parse function to ignore // or /* */ comments. Comments will then be treated as whitespace.

Example

Consider the following JSON with comments.

{\n    // update in 2006: removed Pluto\n    \"planets\": [\"Mercury\", \"Venus\", \"Earth\", \"Mars\",\n                \"Jupiter\", \"Uranus\", \"Neptune\" /*, \"Pluto\" */]\n}\n

When calling parse without additional argument, a parse error exception is thrown. If ignore_comments is set to true, the comments are ignored during parsing:

#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::string s = R\"(\n    {\n        // update in 2006: removed Pluto\n        \"planets\": [\"Mercury\", \"Venus\", \"Earth\", \"Mars\",\n                    \"Jupiter\", \"Uranus\", \"Neptune\" /*, \"Pluto\" */]\n    }\n    )\";\n\n    try\n    {\n        json j = json::parse(s);\n    }\n    catch (json::exception &e)\n    {\n        std::cout << e.what() << std::endl;\n    }\n\n    json j = json::parse(s,\n                         /* callback */ nullptr,\n                         /* allow exceptions */ true,\n                         /* ignore_comments */ true);\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

[json.exception.parse_error.101] parse error at line 3, column 9:\nsyntax error while parsing object key - invalid literal;\nlast read: '<U+000A>    {<U+000A>        /'; expected string literal\n
{\n  \"planets\": [\n    \"Mercury\",\n    \"Venus\",\n    \"Earth\",\n    \"Mars\",\n    \"Jupiter\",\n    \"Uranus\",\n    \"Neptune\"\n  ]\n}\n
"},{"location":"features/enum_conversion/","title":"Specializing enum conversion","text":"

By default, enum values are serialized to JSON as integers. In some cases this could result in undesired behavior. If an enum is modified or re-ordered after data has been serialized to JSON, the later de-serialized JSON data may be undefined or a different enum value than was originally intended.

It is possible to more precisely specify how a given enum is mapped to and from JSON as shown below:

// example enum type declaration\nenum TaskState {\n    TS_STOPPED,\n    TS_RUNNING,\n    TS_COMPLETED,\n    TS_INVALID=-1,\n};\n\n// map TaskState values to JSON as strings\nNLOHMANN_JSON_SERIALIZE_ENUM( TaskState, {\n    {TS_INVALID, nullptr},\n    {TS_STOPPED, \"stopped\"},\n    {TS_RUNNING, \"running\"},\n    {TS_COMPLETED, \"completed\"},\n})\n

The NLOHMANN_JSON_SERIALIZE_ENUM() macro declares a set of to_json() / from_json() functions for type TaskState while avoiding repetition and boilerplate serialization code.

"},{"location":"features/enum_conversion/#usage","title":"Usage","text":"
// enum to JSON as string\njson j = TS_STOPPED;\nassert(j == \"stopped\");\n\n// json string to enum\njson j3 = \"running\";\nassert(j3.template get<TaskState>() == TS_RUNNING);\n\n// undefined json value to enum (where the first map entry above is the default)\njson jPi = 3.14;\nassert(jPi.template get<TaskState>() == TS_INVALID );\n
"},{"location":"features/enum_conversion/#notes","title":"Notes","text":"

Just as in Arbitrary Type Conversions above,

  • NLOHMANN_JSON_SERIALIZE_ENUM() MUST be declared in your enum type's namespace (which can be the global namespace), or the library will not be able to locate it, and it will default to integer serialization.
  • It MUST be available (e.g., proper headers must be included) everywhere you use the conversions.

Other Important points:

  • When using template get<ENUM_TYPE>(), undefined JSON values will default to the first pair specified in your map. Select this default pair carefully.
  • If an enum or JSON value is specified more than once in your map, the first matching occurrence from the top of the map will be returned when converting to or from JSON.
  • To disable the default serialization of enumerators as integers and force a compiler error instead, see JSON_DISABLE_ENUM_SERIALIZATION.
"},{"location":"features/iterators/","title":"Iterators","text":""},{"location":"features/iterators/#overview","title":"Overview","text":"

A basic_json value is a container and allows access via iterators. Depending on the value type, basic_json stores zero or more values.

As for other containers, begin() returns an iterator to the first value and end() returns an iterator to the value following the last value. The latter iterator is a placeholder and cannot be dereferenced. In case of null values, empty arrays, or empty objects, begin() will return end().

"},{"location":"features/iterators/#iteration-order-for-objects","title":"Iteration order for objects","text":"

When iterating over objects, values are ordered with respect to the object_comparator_t type which defaults to std::less. See the types documentation for more information.

Example
// create JSON object {\"one\": 1, \"two\": 2, \"three\": 3}\njson j;\nj[\"one\"] = 1;\nj[\"two\"] = 2;\nj[\"three\"] = 3;\n\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

1\n3\n2\n

The reason for the order is the lexicographic ordering of the object keys \"one\", \"three\", \"two\".

"},{"location":"features/iterators/#access-object-key-during-iteration","title":"Access object key during iteration","text":"

The JSON iterators have two member functions, key() and value() to access the object key and stored value, respectively. When calling key() on a non-object iterator, an invalid_iterator.207 exception is thrown.

Example
// create JSON object {\"one\": 1, \"two\": 2, \"three\": 3}\njson j;\nj[\"one\"] = 1;\nj[\"two\"] = 2;\nj[\"three\"] = 3;\n\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << it.key() << \" : \" << it.value() << std::endl;\n}\n

Output:

one : 1\nthree : 3\ntwo : 2\n
"},{"location":"features/iterators/#range-based-for-loops","title":"Range-based for loops","text":"

C++11 allows using range-based for loops to iterate over a container.

for (auto it : j_object)\n{\n    // \"it\" is of type json::reference and has no key() member\n    std::cout << \"value: \" << it << '\\n';\n}\n

For this reason, the items() function allows accessing iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.

for (auto& el : j_object.items())\n{\n    std::cout << \"key: \" << el.key() << \", value:\" << el.value() << '\\n';\n}\n

The items() function also allows using structured bindings (C++17):

for (auto& [key, val] : j_object.items())\n{\n    std::cout << \"key: \" << key << \", value:\" << val << '\\n';\n}\n

Note

When iterating over an array, key() will return the index of the element as string. For primitive types (e.g., numbers), key() returns an empty string.

Warning

Using items() on temporary objects is dangerous. Make sure the object's lifetime exceeds the iteration. See https://github.com/nlohmann/json/issues/2040 for more information.

"},{"location":"features/iterators/#reverse-iteration-order","title":"Reverse iteration order","text":"

rbegin() and rend() return iterators in the reverse sequence.

Example
json j = {1, 2, 3, 4};\n\nfor (auto it = j.rbegin(); it != j.rend(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

4\n3\n2\n1\n
"},{"location":"features/iterators/#iterating-strings-and-binary-values","title":"Iterating strings and binary values","text":"

Note that \"value\" means a JSON value in this setting, not values stored in the underlying containers. That is, *begin() returns the complete string or binary array and is also safe the underlying string or binary array is empty.

Example
json j = \"Hello, world\";\nfor (auto it = j.begin(); it != j.end(); ++it)\n{\n    std::cout << *it << std::endl;\n}\n

Output:

\"Hello, world\"\n
"},{"location":"features/iterators/#iterator-invalidation","title":"Iterator invalidation","text":"Operations invalidated iterators clear all"},{"location":"features/json_patch/","title":"JSON Patch and Diff","text":""},{"location":"features/json_patch/#patches","title":"Patches","text":"

JSON Patch (RFC 6902) defines a JSON document structure for expressing a sequence of operations to apply to a JSON document. With the patch function, a JSON Patch is applied to the current JSON value by executing all operations from the patch.

Example

The following code shows how a JSON patch is applied to a value.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json doc = R\"(\n        {\n          \"baz\": \"qux\",\n          \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the patch\n    json patch = R\"(\n        [\n          { \"op\": \"replace\", \"path\": \"/baz\", \"value\": \"boo\" },\n          { \"op\": \"add\", \"path\": \"/hello\", \"value\": [\"world\"] },\n          { \"op\": \"remove\", \"path\": \"/foo\"}\n        ]\n    )\"_json;\n\n    // apply the patch\n    json patched_doc = doc.patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << doc << \"\\n\\n\"\n              << std::setw(4) << patched_doc << std::endl;\n}\n

Output:

{\n    \"baz\": \"qux\",\n    \"foo\": \"bar\"\n}\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"features/json_patch/#diff","title":"Diff","text":"

The library can also calculate a JSON patch (i.e., a diff) given two JSON values.

Invariant

For two JSON values source and target, the following code yields always true:

source.patch(diff(source, target)) == target;\n
Example

The following code shows how a JSON patch is created as a diff for two JSON values.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the source document\n    json source = R\"(\n        {\n            \"baz\": \"qux\",\n            \"foo\": \"bar\"\n        }\n    )\"_json;\n\n    // the target document\n    json target = R\"(\n        {\n            \"baz\": \"boo\",\n            \"hello\": [\n                \"world\"\n            ]\n        }\n    )\"_json;\n\n    // create the patch\n    json patch = json::diff(source, target);\n\n    // roundtrip\n    json patched_source = source.patch(patch);\n\n    // output patch and roundtrip result\n    std::cout << std::setw(4) << patch << \"\\n\\n\"\n              << std::setw(4) << patched_source << std::endl;\n}\n

Output:

[\n    {\n        \"op\": \"replace\",\n        \"path\": \"/baz\",\n        \"value\": \"boo\"\n    },\n    {\n        \"op\": \"remove\",\n        \"path\": \"/foo\"\n    },\n    {\n        \"op\": \"add\",\n        \"path\": \"/hello\",\n        \"value\": [\n            \"world\"\n        ]\n    }\n]\n\n{\n    \"baz\": \"boo\",\n    \"hello\": [\n        \"world\"\n    ]\n}\n
"},{"location":"features/json_pointer/","title":"JSON Pointer","text":""},{"location":"features/json_pointer/#introduction","title":"Introduction","text":"

The library supports JSON Pointer (RFC 6901) as alternative means to address structured values. A JSON Pointer is a string that identifies a specific value within a JSON document.

Consider the following JSON document

{\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n}\n

Then every value inside the JSON document can be identified as follows:

JSON Pointer JSON value `` {\"array\":[\"A\",\"B\",\"C\"],\"nested\":{\"one\":1,\"two\":2,\"three\":[true,false]}} /array [\"A\",\"B\",\"C\"] /array/0 A /array/1 B /array/2 C /nested {\"one\":1,\"two\":2,\"three\":[true,false]} /nested/one 1 /nested/two 2 /nested/three [true,false] /nested/three/0 true /nested/three/1 false

Note / does not identify the root (i.e., the whole document), but an object entry with empty key \"\". See RFC 6901 for more information.

"},{"location":"features/json_pointer/#json-pointer-creation","title":"JSON Pointer creation","text":"

JSON Pointers can be created from a string:

json::json_pointer p = \"/nested/one\";\n

Furthermore, a user-defined string literal can be used to achieve the same result:

auto p = \"/nested/one\"_json_pointer;\n

The escaping rules of RFC 6901 are implemented. See the constructor documentation for more information.

"},{"location":"features/json_pointer/#value-access","title":"Value access","text":"

JSON Pointers can be used in the at, operator[], and value functions just like object keys or array indices.

// the JSON value from above\nauto j = json::parse(R\"({\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n})\");\n\n// access values\nauto val = j[\"/\"_json_pointer];                             // {\"array\":[\"A\",\"B\",\"C\"],...}\nauto val1 = j[\"/nested/one\"_json_pointer];                  // 1\nauto val2 = j.at[json::json_pointer(\"/nested/three/1\")];    // false\nauto val3 = j.value[json::json_pointer(\"/nested/four\", 0)]; // 0\n
"},{"location":"features/json_pointer/#flatten-unflatten","title":"Flatten / unflatten","text":"

The library implements a function flatten to convert any JSON document into a JSON object where each key is a JSON Pointer and each value is a primitive JSON value (i.e., a string, boolean, number, or null).

// the JSON value from above\nauto j = json::parse(R\"({\n    \"array\": [\"A\", \"B\", \"C\"],\n    \"nested\": {\n        \"one\": 1,\n        \"two\": 2,\n        \"three\": [true, false]\n    }\n})\");\n\n// create flattened value\nauto j_flat = j.flatten();\n

The resulting value j_flat is:

{\n  \"/array/0\": \"A\",\n  \"/array/1\": \"B\",\n  \"/array/2\": \"C\",\n  \"/nested/one\": 1,\n  \"/nested/two\": 2,\n  \"/nested/three/0\": true,\n  \"/nested/three/1\": false\n}\n

The reverse function, unflatten recreates the original value.

auto j_original = j_flat.unflatten();\n
"},{"location":"features/json_pointer/#see-also","title":"See also","text":"
  • Class json_pointer
  • Function flatten
  • Function unflatten
  • JSON Patch
"},{"location":"features/macros/","title":"Supported Macros","text":"

Some aspects of the library can be configured by defining preprocessor macros before including the json.hpp header. See also the API documentation for macros for examples and more information.

"},{"location":"features/macros/#json_assertx","title":"JSON_ASSERT(x)","text":"

This macro controls which code is executed for runtime assertions of the library.

See full documentation of JSON_ASSERT(x).

"},{"location":"features/macros/#json_catch_userexception","title":"JSON_CATCH_USER(exception)","text":"

This macro overrides catch calls inside the library.

See full documentation of JSON_CATCH_USER(exception).

"},{"location":"features/macros/#json_diagnostics","title":"JSON_DIAGNOSTICS","text":"

This macro enables extended diagnostics for exception messages. Possible values are 1 to enable or 0 to disable (default).

When enabled, exception messages contain a JSON Pointer to the JSON value that triggered the exception, see Extended diagnostic messages for an example. Note that enabling this macro increases the size of every JSON value by one pointer and adds some runtime overhead.

The diagnostics messages can also be controlled with the CMake option JSON_Diagnostics (OFF by default) which sets JSON_DIAGNOSTICS accordingly.

See full documentation of JSON_DIAGNOSTICS.

"},{"location":"features/macros/#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20","title":"JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, JSON_HAS_CPP_20","text":"

The library targets C++11, but also supports some features introduced in later C++ versions (e.g., std::string_view support for C++17). For these new features, the library implements some preprocessor checks to determine the C++ standard. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly.

See full documentation of JSON_HAS_CPP_11, JSON_HAS_CPP_14, JSON_HAS_CPP_17, and JSON_HAS_CPP_20.

"},{"location":"features/macros/#json_has_filesystem-json_has_experimental_filesystem","title":"JSON_HAS_FILESYSTEM, JSON_HAS_EXPERIMENTAL_FILESYSTEM","text":"

When compiling with C++17, the library provides conversions from and to std::filesystem::path. As compiler support for filesystem is limited, the library tries to detect whether <filesystem>/std::filesystem (JSON_HAS_FILESYSTEM) or <experimental/filesystem>/std::experimental::filesystem (JSON_HAS_EXPERIMENTAL_FILESYSTEM) should be used. To override the built-in check, define JSON_HAS_FILESYSTEM or JSON_HAS_EXPERIMENTAL_FILESYSTEM to 1.

See full documentation of JSON_HAS_FILESYSTEM and JSON_HAS_EXPERIMENTAL_FILESYSTEM.

"},{"location":"features/macros/#json_noexception","title":"JSON_NOEXCEPTION","text":"

Exceptions can be switched off by defining the symbol JSON_NOEXCEPTION.

See full documentation of JSON_NOEXCEPTION.

"},{"location":"features/macros/#json_disable_enum_serialization","title":"JSON_DISABLE_ENUM_SERIALIZATION","text":"

When defined, default parse and serialize functions for enums are excluded and have to be provided by the user, for example, using NLOHMANN_JSON_SERIALIZE_ENUM.

See full documentation of JSON_DISABLE_ENUM_SERIALIZATION.

"},{"location":"features/macros/#json_no_io","title":"JSON_NO_IO","text":"

When defined, headers <cstdio>, <ios>, <iosfwd>, <istream>, and <ostream> are not included and parse functions relying on these headers are excluded. This is relevant for environment where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)).

See full documentation of JSON_NO_IO.

"},{"location":"features/macros/#json_skip_library_version_check","title":"JSON_SKIP_LIBRARY_VERSION_CHECK","text":"

When defined, the library will not create a compiler warning when a different version of the library was already included.

See full documentation of JSON_SKIP_LIBRARY_VERSION_CHECK.

"},{"location":"features/macros/#json_skip_unsupported_compiler_check","title":"JSON_SKIP_UNSUPPORTED_COMPILER_CHECK","text":"

When defined, the library will not create a compile error when a known unsupported compiler is detected. This allows to use the library with compilers that do not fully support C++11 and may only work if unsupported features are not used.

See full documentation of JSON_SKIP_UNSUPPORTED_COMPILER_CHECK.

"},{"location":"features/macros/#json_throw_userexception","title":"JSON_THROW_USER(exception)","text":"

This macro overrides throw calls inside the library. The argument is the exception to be thrown.

See full documentation of JSON_THROW_USER(exception).

"},{"location":"features/macros/#json_try_user","title":"JSON_TRY_USER","text":"

This macro overrides try calls inside the library.

See full documentation of JSON_TRY_USER.

"},{"location":"features/macros/#json_use_implicit_conversions","title":"JSON_USE_IMPLICIT_CONVERSIONS","text":"

When defined to 0, implicit conversions are switched off. By default, implicit conversions are switched on.

See full documentation of JSON_USE_IMPLICIT_CONVERSIONS.

"},{"location":"features/macros/#nlohmann_define_type_intrusivetype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)","text":"

This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.

The macro is to be defined inside the class/struct to create code for. Unlike NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, it can access private members. The first parameter is the name of the class/struct, and all remaining parameters name the members.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE.

"},{"location":"features/macros/#nlohmann_define_type_intrusive_with_defaulttype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_INTRUSIVE. It will not throw an exception in from_json() due to a missing value in the JSON object, but can throw due to a mismatched type. The from_json() function default constructs an object and uses its values as the defaults when calling the value function.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT.

"},{"location":"features/macros/#nlohmann_define_type_intrusive_only_serializetype-member","title":"NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_INTRUSIVE except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.

See full documentation of NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusivetype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)","text":"

This macro can be used to simplify the serialization/deserialization of types if (1) want to use a JSON object as serialization and (2) want to use the member variable names as object keys in that object.

The macro is to be defined inside the namespace of the class/struct to create code for. Private members cannot be accessed. Use NLOHMANN_DEFINE_TYPE_INTRUSIVE in these scenarios. The first parameter is the name of the class/struct, and all remaining parameters name the members.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusive_with_defaulttype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE. It will not throw an exception in from_json() due to a missing value in the JSON object, but can throw due to a mismatched type. The from_json() function default constructs an object and uses its values as the defaults when calling the value function.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT.

"},{"location":"features/macros/#nlohmann_define_type_non_intrusive_only_serializetype-member","title":"NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(type, member...)","text":"

This macro is similar to NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE except that it defines only the serialization code. This is useful when the user type does not have a default constructor and only the serialization is required.

See full documentation of NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE.

"},{"location":"features/macros/#nlohmann_json_serialize_enumtype","title":"NLOHMANN_JSON_SERIALIZE_ENUM(type, ...)","text":"

This macro simplifies the serialization/deserialization of enum types. See Specializing enum conversion for more information.

See full documentation of NLOHMANN_JSON_SERIALIZE_ENUM.

"},{"location":"features/macros/#nlohmann_json_version_major-nlohmann_json_version_minor-nlohmann_json_version_patch","title":"NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH","text":"

These macros are defined by the library and contain the version numbers according to Semantic Versioning 2.0.0.

See full documentation of NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH.

"},{"location":"features/merge_patch/","title":"JSON Merge Patch","text":"

The library supports JSON Merge Patch (RFC 7386) as a patch format. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content. This function applies a merge patch to the current JSON value.

Instead of using JSON Pointer to specify values to be manipulated, it describes the changes using a syntax that closely mimics the document being modified.

Example

The following code shows how a JSON Merge Patch is applied to a JSON document.

#include <iostream>\n#include <nlohmann/json.hpp>\n#include <iomanip> // for std::setw\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // the original document\n    json document = R\"({\n                \"title\": \"Goodbye!\",\n                \"author\": {\n                    \"givenName\": \"John\",\n                    \"familyName\": \"Doe\"\n                },\n                \"tags\": [\n                    \"example\",\n                    \"sample\"\n                ],\n                \"content\": \"This will be unchanged\"\n            })\"_json;\n\n    // the patch\n    json patch = R\"({\n                \"title\": \"Hello!\",\n                \"phoneNumber\": \"+01-123-456-7890\",\n                \"author\": {\n                    \"familyName\": null\n                },\n                \"tags\": [\n                    \"example\"\n                ]\n            })\"_json;\n\n    // apply the patch\n    document.merge_patch(patch);\n\n    // output original and patched document\n    std::cout << std::setw(4) << document << std::endl;\n}\n

Output:

{\n    \"author\": {\n        \"givenName\": \"John\"\n    },\n    \"content\": \"This will be unchanged\",\n    \"phoneNumber\": \"+01-123-456-7890\",\n    \"tags\": [\n        \"example\"\n    ],\n    \"title\": \"Hello!\"\n}\n
"},{"location":"features/namespace/","title":"nlohmann Namespace","text":"

The 3.11.0 release introduced an inline namespace to allow different parts of a codebase to safely use different versions of the JSON library as long as they never exchange instances of library types.

"},{"location":"features/namespace/#structure","title":"Structure","text":"

The complete default namespace name is derived as follows:

  • The root namespace is always nlohmann.
  • The inline namespace starts with json_abi and is followed by serveral optional ABI tags according to the value of these ABI-affecting macros, in order:
    • JSON_DIAGNOSTICS defined non-zero appends _diag.
    • JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON defined non-zero appends _ldvcmp.
  • The inline namespace ends with the suffix _v followed by the 3 components of the version number separated by underscores. To omit the version component, see Disabling the version component below.

For example, the namespace name for version 3.11.2 with JSON_DIAGNOSTICS defined to 1 is:

nlohmann::json_abi_diag_v3_11_2\n
"},{"location":"features/namespace/#purpose","title":"Purpose","text":"

Several incompatibilities have been observed. Amongst the most common ones is linking code compiled with different definitions of JSON_DIAGNOSTICS. This is illustrated in the diagram below.

In releases prior to 3.11.0, mixing any version of the JSON library with different JSON_DIAGNOSTICS settings would result in a crashing application. If some_library never passes instances of JSON library types to the application, this scenario became safe in version 3.11.0 and above due to the inline namespace yielding distinct symbol names.

"},{"location":"features/namespace/#limitations","title":"Limitations","text":"

Neither the compiler nor the linker will issue as much as a warning when translation units \u2013 intended to be linked together and that include different versions and/or configurations of the JSON library \u2013 exchange and use library types.

There is an exception when forward declarations are used (i.e., when including json_fwd.hpp) in which case the linker may complain about undefined references.

"},{"location":"features/namespace/#disabling-the-version-component","title":"Disabling the version component","text":"

Different versions are not necessarily ABI-incompatible, but the project does not actively track changes in the ABI and recommends that all parts of a codebase exchanging library types be built with the same version. Users can, at their own risk, disable the version component of the linline namespace, allowing different versions \u2013 but not configurations \u2013 to be used in cases where the linker would otherwise output undefined reference errors.

To do so, define NLOHMANN_JSON_NAMESPACE_NO_VERSION to 1.

This applies to version 3.11.2 and above only, versions 3.11.0 and 3.11.1 can apply the technique described in the next section to emulate the effect of the NLOHMANN_JSON_NAMESPACE_NO_VERSION macro.

Use at your own risk

Disabling the namespace version component and mixing ABI-incompatible versions will result in crashes or incorrect behavior. You have been warned!

"},{"location":"features/namespace/#disabling-the-inline-namespace-completely","title":"Disabling the inline namespace completely","text":"

When interoperability with code using a pre-3.11.0 version of the library is required, users can, at their own risk restore the old namespace layout by redefining NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END as follows:

#define NLOHMANN_JSON_NAMESPACE_BEGIN  namespace nlohmann {\n#define NLOHMANN_JSON_NAMESPACE_END    }\n

Use at your own risk

Overriding the namespace and mixing ABI-incompatible versions will result in crashes or incorrect behavior. You have been warned!

"},{"location":"features/namespace/#version-history","title":"Version history","text":"
  • Introduced inline namespace (json_v3_11_0[_abi-tag]*) in version 3.11.0.
  • Changed structure of inline namespace in version 3.11.2.
"},{"location":"features/object_order/","title":"Object Order","text":"

The JSON standard defines objects as \"an unordered collection of zero or more name/value pairs\". As such, an implementation does not need to preserve any specific order of object keys.

"},{"location":"features/object_order/#default-behavior-sort-keys","title":"Default behavior: sort keys","text":"

The default type nlohmann::json uses a std::map to store JSON objects, and thus stores object keys sorted alphabetically.

Example
#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"three\": 3,\n  \"two\": 2\n}\n
"},{"location":"features/object_order/#alternative-behavior-preserve-insertion-order","title":"Alternative behavior: preserve insertion order","text":"

If you do want to preserve the insertion order, you can try the type nlohmann::ordered_json.

Example
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing ordered_json = nlohmann::ordered_json;\n\nint main()\n{\n    ordered_json j;\n    j[\"one\"] = 1;\n    j[\"two\"] = 2;\n    j[\"three\"] = 3;\n\n    std::cout << j.dump(2) << '\\n';\n}\n

Output:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n

Alternatively, you can use a more sophisticated ordered map like tsl::ordered_map (integration) or nlohmann::fifo_map (integration).

"},{"location":"features/object_order/#notes-on-parsing","title":"Notes on parsing","text":"

Note that you also need to call the right parse function when reading from a file. Assume file input.json contains the JSON object above:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n

Right way

The following code correctly calls the parse function from nlohmann::ordered_json:

std::ifstream i(\"input.json\");\nauto j = nlohmann::ordered_json::parse(i);\nstd::cout << j.dump(2) << std::endl;\n

The output will be:

{\n  \"one\": 1,\n  \"two\": 2,\n  \"three\": 3\n}\n
Wrong way

The following code incorrectly calls the parse function from nlohmann::json which does not preserve the insertion order, but sorts object keys. Assigning the result to nlohmann::ordered_json compiles, but does not restore the order from the input file.

std::ifstream i(\"input.json\");\nnlohmann::ordered_json j = nlohmann::json::parse(i);\nstd::cout << j.dump(2) << std::endl;\n

The output will be:

{\n  \"one\": 1,\n  \"three\": 3\n  \"two\": 2,\n}\n
"},{"location":"features/binary_formats/","title":"Binary Formats","text":"

Though JSON is a ubiquitous data format, it is not a very compact format suitable for data exchange, for instance over a network. Hence, the library supports

  • BJData (Binary JData),
  • BSON (Binary JSON),
  • CBOR (Concise Binary Object Representation),
  • MessagePack, and
  • UBJSON (Universal Binary JSON)

to efficiently encode JSON values to byte vectors and to decode such vectors.

"},{"location":"features/binary_formats/#comparison","title":"Comparison","text":""},{"location":"features/binary_formats/#completeness","title":"Completeness","text":"Format Serialization Deserialization BJData complete complete BSON incomplete: top-level value must be an object incomplete, but all JSON types are supported CBOR complete incomplete, but all JSON types are supported MessagePack complete complete UBJSON complete complete"},{"location":"features/binary_formats/#binary-values","title":"Binary values","text":"Format Binary values Binary subtypes BJData not supported not supported BSON supported supported CBOR supported supported MessagePack supported supported UBJSON not supported not supported

See binary values for more information.

"},{"location":"features/binary_formats/#sizes","title":"Sizes","text":"Format canada.json twitter.json citm_catalog.json jeopardy.json BJData 53.2 % 91.1 % 78.1 % 96.6 % BJData (size) 58.6 % 92.1 % 86.7 % 97.4 % BJData (size+tyoe) 58.6 % 92.1 % 86.5 % 97.4 % BSON 85.8 % 95.2 % 95.8 % 106.7 % CBOR 50.5 % 86.3 % 68.4 % 88.0 % MessagePack 50.5 % 86.0 % 68.5 % 87.9 % UBJSON 53.2 % 91.3 % 78.2 % 96.6 % UBJSON (size) 58.6 % 92.3 % 86.8 % 97.4 % UBJSON (size+type) 55.9 % 92.3 % 85.0 % 95.0 %

Sizes compared to minified JSON value.

"},{"location":"features/binary_formats/bjdata/","title":"BJData","text":"

The BJData format was derived from and improved upon Universal Binary JSON(UBJSON) specification (Draft 12). Specifically, it introduces an optimized array container for efficient storage of N-dimensional packed arrays (ND-arrays); it also adds 4 new type markers - [u] - uint16, [m] - uint32, [M] - uint64 and [h] - float16 - to unambiguously map common binary numeric types; furthermore, it uses little-endian (LE) to store all numerics instead of big-endian (BE) as in UBJSON to avoid unnecessary conversions on commonly available platforms.

Compared to other binary JSON-like formats such as MessagePack and CBOR, both BJData and UBJSON demonstrate a rare combination of being both binary and quasi-human-readable. This is because all semantic elements in BJData and UBJSON, including the data-type markers and name/string types are directly human-readable. Data stored in the BJData/UBJSON format are not only compact in size, fast to read/write, but also can be directly searched or read using simple processing.

References

  • BJData Specification
"},{"location":"features/binary_formats/bjdata/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to BJData types according to the BJData specification:

JSON value type value/range BJData type marker null null null Z boolean true true T boolean false false F number_integer -9223372036854775808..-2147483649 int64 L number_integer -2147483648..-32769 int32 l number_integer -32768..-129 int16 I number_integer -128..127 int8 i number_integer 128..255 uint8 U number_integer 256..32767 int16 I number_integer 32768..65535 uint16 u number_integer 65536..2147483647 int32 l number_integer 2147483648..4294967295 uint32 m number_integer 4294967296..9223372036854775807 int64 L number_integer 9223372036854775808..18446744073709551615 uint64 M number_unsigned 0..127 int8 i number_unsigned 128..255 uint8 U number_unsigned 256..32767 int16 I number_unsigned 32768..65535 uint16 u number_unsigned 65536..2147483647 int32 l number_unsigned 2147483648..4294967295 uint32 m number_unsigned 4294967296..9223372036854775807 int64 L number_unsigned 9223372036854775808..18446744073709551615 uint64 M number_float any value float64 D string with shortest length indicator string S array see notes on optimized format/ND-array array [ object see notes on optimized format map {

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a BJData value.

Any BJData output created by to_bjdata can be successfully parsed by from_bjdata.

Size constraints

The following values can not be converted to a BJData value:

  • strings with more than 18446744073709551615 bytes, i.e., 2^{64}-1 bytes (theoretical)

Unused BJData markers

The following markers are not used in the conversion:

  • Z: no-op values are not created.
  • C: single-byte strings are serialized with S markers.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.

Endianness

A breaking difference between BJData and UBJSON is the endianness of numerical values. In BJData, all numerical data types (integers UiuImlML and floating-point values hdD) are stored in the little-endian (LE) byte order as opposed to big-endian as used by UBJSON. Adopting LE to store numeric records avoids unnecessary byte swapping on most modern computers where LE is used as the default byte order.

Optimized formats

Optimized formats for containers are supported via two parameters of to_bjdata:

  • Parameter use_size adds size information to the beginning of a container and removes the closing marker.
  • Parameter use_type further checks whether all elements of a container have the same type and adds the type marker to the beginning of the container. The use_type parameter must only be used together with use_size = true.

Note that use_size = true alone may result in larger representations - the benefit of this parameter is that the receiving side is immediately informed of the number of elements in the container.

ND-array optimized format

BJData extends UBJSON's optimized array size marker to support ND-arrays of uniform numerical data types (referred to as packed arrays). For example, the 2-D uint8 integer array [[1,2],[3,4],[5,6]], stored as nested optimized array in UBJSON [ [$U#i2 1 2 [$U#i2 3 4 [$U#i2 5 6 ], can be further compressed in BJData to [$U#[$i#i2 2 3 1 2 3 4 5 6 or [$U#[i2 i3] 1 2 3 4 5 6.

To maintain type and size information, ND-arrays are converted to JSON objects following the annotated array format (defined in the JData specification (Draft 3)), when parsed using from_bjdata. For example, the above 2-D uint8 array can be parsed and accessed as

{\n    \"_ArrayType_\": \"uint8\",\n    \"_ArraySize_\": [2,3],\n    \"_ArrayData_\": [1,2,3,4,5,6]\n}\n

Likewise, when a JSON object in the above form is serialzed using to_bjdata, it is automatically converted into a compact BJData ND-array. The only exception is, that when the 1-dimensional vector stored in \"_ArraySize_\" contains a single integer or two integers with one being 1, a regular 1-D optimized array is generated.

The current version of this library does not yet support automatic detection of and conversion from a nested JSON array input to a BJData ND-array.

Restrictions in optimized data types for arrays and objects

Due to diminished space saving, hampered readability, and increased security risks, in BJData, the allowed data types following the $ marker in an optimized array and object container are restricted to non-zero-fixed-length data types. Therefore, the valid optimized type markers can only be one of UiuImlMLhdDC. This also means other variable ([{SH) or zero-length types (TFN) can not be used in an optimized array or object in BJData.

Binary values

If the JSON data contains the binary type, the value stored is a list of integers, as suggested by the BJData documentation. In particular, this means that the serialization and the deserialization of JSON containing binary values into BJData and back will result in a different JSON object.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print BJData's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to BJData\n    std::vector<std::uint8_t> v = json::to_bjdata(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to BJData using default representation\n    std::vector<std::uint8_t> v_array = json::to_bjdata(array);\n    // serialize it to BJData using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_bjdata(array, true);\n    // serialize it to BJData using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_bjdata(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"features/binary_formats/bjdata/#deserialization","title":"Deserialization","text":"

The library maps BJData types to JSON value types as follows:

BJData type JSON value type marker no-op no value, next value is read N null null Z false false F true true T float16 number_float h float32 number_float d float64 number_float D uint8 number_unsigned U int8 number_integer i uint16 number_unsigned u int16 number_integer I uint32 number_unsigned m int32 number_integer l uint64 number_unsigned M int64 number_integer L string string S char string C array array (optimized values are supported) [ ND-array object (in JData annotated array format) [$.#[. object object (optimized values are supported) {

Complete mapping

The mapping is complete in the sense that any BJData value can be converted to a JSON value.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with BJData\n    json j = json::from_bjdata(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/bson/","title":"BSON","text":"

BSON, short for Binary JSON, is a binary-encoded serialization of JSON-like documents. Like JSON, BSON supports the embedding of documents and arrays within other documents and arrays. BSON also contains extensions that allow representation of data types that are not part of the JSON spec. For example, BSON has a Date type and a BinData type.

References

  • BSON Website - the main source on BSON
  • BSON Specification - the specification
"},{"location":"features/binary_formats/bson/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to BSON types:

JSON value type value/range BSON type marker null null null 0x0A boolean true, false boolean 0x08 number_integer -9223372036854775808..-2147483649 int64 0x12 number_integer -2147483648..2147483647 int32 0x10 number_integer 2147483648..9223372036854775807 int64 0x12 number_unsigned 0..2147483647 int32 0x10 number_unsigned 2147483648..9223372036854775807 int64 0x12 number_unsigned 9223372036854775808..18446744073709551615 -- -- number_float any value double 0x01 string any value string 0x02 array any value document 0x04 object any value document 0x03 binary any value binary 0x05

Incomplete mapping

The mapping is incomplete, since only JSON-objects (and things contained therein) can be serialized to BSON. Also, integers larger than 9223372036854775807 cannot be serialized to BSON, and the keys may not contain U+0000, since they are serialized a zero-terminated c-strings.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to BSON\n    std::vector<std::uint8_t> v = json::to_bson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x1b 0x00 0x00 0x00 0x08 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0x00 0x01 0x10 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 0x00 0x00 0x00 0x00 0x00 \n
"},{"location":"features/binary_formats/bson/#deserialization","title":"Deserialization","text":"

The library maps BSON record types to JSON value types as follows:

BSON type BSON marker byte JSON value type double 0x01 number_float string 0x02 string document 0x03 object array 0x04 array binary 0x05 binary undefined 0x06 unsupported ObjectId 0x07 unsupported boolean 0x08 boolean UTC Date-Time 0x09 unsupported null 0x0A null Regular Expr. 0x0B unsupported DB Pointer 0x0C unsupported JavaScript Code 0x0D unsupported Symbol 0x0E unsupported JavaScript Code 0x0F unsupported int32 0x10 number_integer Timestamp 0x11 unsupported 128-bit decimal float 0x13 unsupported Max Key 0x7F unsupported Min Key 0xFF unsupported

Incomplete mapping

The mapping is incomplete. The unsupported mappings are indicated in the table above.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x1b, 0x00, 0x00, 0x00, 0x08, 0x63, 0x6f, 0x6d,\n                                   0x70, 0x61, 0x63, 0x74, 0x00, 0x01, 0x10, 0x73,\n                                   0x63, 0x68, 0x65, 0x6d, 0x61, 0x00, 0x00, 0x00,\n                                   0x00, 0x00, 0x00\n                                  };\n\n    // deserialize it with BSON\n    json j = json::from_bson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/cbor/","title":"CBOR","text":"

The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.

References

  • CBOR Website - the main source on CBOR
  • CBOR Playground - an interactive webpage to translate between JSON and CBOR
  • RFC 7049 - the CBOR specification
"},{"location":"features/binary_formats/cbor/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to CBOR types according to the CBOR specification (RFC 7049):

JSON value type value/range CBOR type first byte null null Null 0xF6 boolean true True 0xF5 boolean false False 0xF4 number_integer -9223372036854775808..-2147483649 Negative integer (8 bytes follow) 0x3B number_integer -2147483648..-32769 Negative integer (4 bytes follow) 0x3A number_integer -32768..-129 Negative integer (2 bytes follow) 0x39 number_integer -128..-25 Negative integer (1 byte follow) 0x38 number_integer -24..-1 Negative integer 0x20..0x37 number_integer 0..23 Integer 0x00..0x17 number_integer 24..255 Unsigned integer (1 byte follow) 0x18 number_integer 256..65535 Unsigned integer (2 bytes follow) 0x19 number_integer 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A number_integer 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B number_unsigned 0..23 Integer 0x00..0x17 number_unsigned 24..255 Unsigned integer (1 byte follow) 0x18 number_unsigned 256..65535 Unsigned integer (2 bytes follow) 0x19 number_unsigned 65536..4294967295 Unsigned integer (4 bytes follow) 0x1A number_unsigned 4294967296..18446744073709551615 Unsigned integer (8 bytes follow) 0x1B number_float any value representable by a float Single-Precision Float 0xFA number_float any value NOT representable by a float Double-Precision Float 0xFB string length: 0..23 UTF-8 string 0x60..0x77 string length: 23..255 UTF-8 string (1 byte follow) 0x78 string length: 256..65535 UTF-8 string (2 bytes follow) 0x79 string length: 65536..4294967295 UTF-8 string (4 bytes follow) 0x7A string length: 4294967296..18446744073709551615 UTF-8 string (8 bytes follow) 0x7B array size: 0..23 array 0x80..0x97 array size: 23..255 array (1 byte follow) 0x98 array size: 256..65535 array (2 bytes follow) 0x99 array size: 65536..4294967295 array (4 bytes follow) 0x9A array size: 4294967296..18446744073709551615 array (8 bytes follow) 0x9B object size: 0..23 map 0xA0..0xB7 object size: 23..255 map (1 byte follow) 0xB8 object size: 256..65535 map (2 bytes follow) 0xB9 object size: 65536..4294967295 map (4 bytes follow) 0xBA object size: 4294967296..18446744073709551615 map (8 bytes follow) 0xBB binary size: 0..23 byte string 0x40..0x57 binary size: 23..255 byte string (1 byte follow) 0x58 binary size: 256..65535 byte string (2 bytes follow) 0x59 binary size: 65536..4294967295 byte string (4 bytes follow) 0x5A binary size: 4294967296..18446744073709551615 byte string (8 bytes follow) 0x5B

Binary values with subtype are mapped to tagged values (0xD8..0xDB) depending on the subtype, followed by a byte string, see \"binary\" cells in the table above.

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a CBOR value.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the normal JSON serialization which serializes NaN or Infinity to null.

Unused CBOR types

The following CBOR types are not used in the conversion:

  • UTF-8 strings terminated by \"break\" (0x7F)
  • arrays terminated by \"break\" (0x9F)
  • maps terminated by \"break\" (0xBF)
  • byte strings terminated by \"break\" (0x5F)
  • date/time (0xC0..0xC1)
  • bignum (0xC2..0xC3)
  • decimal fraction (0xC4)
  • bigfloat (0xC5)
  • expected conversions (0xD5..0xD7)
  • simple values (0xE0..0xF3, 0xF8)
  • undefined (0xF7)
  • half-precision floats (0xF9)
  • break (0xFF)

Tagged items

Binary subtypes will be serialized as tagged items. See binary values for an example.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to CBOR\n    std::vector<std::uint8_t> v = json::to_cbor(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0xa2 0x67 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xf5 0x66 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"features/binary_formats/cbor/#deserialization","title":"Deserialization","text":"

The library maps CBOR types to JSON value types as follows:

CBOR type JSON value type first byte Integer number_unsigned 0x00..0x17 Unsigned integer number_unsigned 0x18 Unsigned integer number_unsigned 0x19 Unsigned integer number_unsigned 0x1A Unsigned integer number_unsigned 0x1B Negative integer number_integer 0x20..0x37 Negative integer number_integer 0x38 Negative integer number_integer 0x39 Negative integer number_integer 0x3A Negative integer number_integer 0x3B Byte string binary 0x40..0x57 Byte string binary 0x58 Byte string binary 0x59 Byte string binary 0x5A Byte string binary 0x5B UTF-8 string string 0x60..0x77 UTF-8 string string 0x78 UTF-8 string string 0x79 UTF-8 string string 0x7A UTF-8 string string 0x7B UTF-8 string string 0x7F array array 0x80..0x97 array array 0x98 array array 0x99 array array 0x9A array array 0x9B array array 0x9F map object 0xA0..0xB7 map object 0xB8 map object 0xB9 map object 0xBA map object 0xBB map object 0xBF False false 0xF4 True true 0xF5 Null null 0xF6 Half-Precision Float number_float 0xF9 Single-Precision Float number_float 0xFA Double-Precision Float number_float 0xFB

Incomplete mapping

The mapping is incomplete in the sense that not all CBOR types can be converted to a JSON value. The following CBOR types are not supported and will yield parse errors:

  • date/time (0xC0..0xC1)
  • bignum (0xC2..0xC3)
  • decimal fraction (0xC4)
  • bigfloat (0xC5)
  • expected conversions (0xD5..0xD7)
  • simple values (0xE0..0xF3, 0xF8)
  • undefined (0xF7)

Object keys

CBOR allows map keys of any type, whereas JSON only allows strings as keys in object values. Therefore, CBOR maps with keys other than UTF-8 strings are rejected.

Tagged items

Tagged items will throw a parse error by default. They can be ignored by passing cbor_tag_handler_t::ignore to function from_cbor. They can be stored by passing cbor_tag_handler_t::store to function from_cbor.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0xa2, 0x67, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xf5, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with CBOR\n    json j = json::from_cbor(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/messagepack/","title":"MessagePack","text":"

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.

References

  • MessagePack website
  • MessagePack specification
"},{"location":"features/binary_formats/messagepack/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to MessagePack types according to the MessagePack specification:

JSON value type value/range MessagePack type first byte null null nil 0xC0 boolean true true 0xC3 boolean false false 0xC2 number_integer -9223372036854775808..-2147483649 int64 0xD3 number_integer -2147483648..-32769 int32 0xD2 number_integer -32768..-129 int16 0xD1 number_integer -128..-33 int8 0xD0 number_integer -32..-1 negative fixint 0xE0..0xFF number_integer 0..127 positive fixint 0x00..0x7F number_integer 128..255 uint 8 0xCC number_integer 256..65535 uint 16 0xCD number_integer 65536..4294967295 uint 32 0xCE number_integer 4294967296..18446744073709551615 uint 64 0xCF number_unsigned 0..127 positive fixint 0x00..0x7F number_unsigned 128..255 uint 8 0xCC number_unsigned 256..65535 uint 16 0xCD number_unsigned 65536..4294967295 uint 32 0xCE number_unsigned 4294967296..18446744073709551615 uint 64 0xCF number_float any value representable by a float float 32 0xCA number_float any value NOT representable by a float float 64 0xCB string length: 0..31 fixstr 0xA0..0xBF string length: 32..255 str 8 0xD9 string length: 256..65535 str 16 0xDA string length: 65536..4294967295 str 32 0xDB array size: 0..15 fixarray 0x90..0x9F array size: 16..65535 array 16 0xDC array size: 65536..4294967295 array 32 0xDD object size: 0..15 fix map 0x80..0x8F object size: 16..65535 map 16 0xDE object size: 65536..4294967295 map 32 0xDF binary size: 0..255 bin 8 0xC4 binary size: 256..65535 bin 16 0xC5 binary size: 65536..4294967295 bin 32 0xC6

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a MessagePack value.

Any MessagePack output created by to_msgpack can be successfully parsed by from_msgpack.

Size constraints

The following values can not be converted to a MessagePack value:

  • strings with more than 4294967295 bytes
  • byte strings with more than 4294967295 bytes
  • arrays with more than 4294967295 elements
  • objects with more than 4294967295 elements

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly in contrast to the dump function which serializes NaN or Infinity to null.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": 0})\"_json;\n\n    // serialize it to MessagePack\n    std::vector<std::uint8_t> v = json::to_msgpack(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        std::cout << \"0x\" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << \" \";\n    }\n    std::cout << std::endl;\n}\n

Output:

0x82 0xa7 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xc3 0xa6 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 \n
"},{"location":"features/binary_formats/messagepack/#deserialization","title":"Deserialization","text":"

The library maps MessagePack types to JSON value types as follows:

MessagePack type JSON value type first byte positive fixint number_unsigned 0x00..0x7F fixmap object 0x80..0x8F fixarray array 0x90..0x9F fixstr string 0xA0..0xBF nil null 0xC0 false false 0xC2 true true 0xC3 float 32 number_float 0xCA float 64 number_float 0xCB uint 8 number_unsigned 0xCC uint 16 number_unsigned 0xCD uint 32 number_unsigned 0xCE uint 64 number_unsigned 0xCF int 8 number_integer 0xD0 int 16 number_integer 0xD1 int 32 number_integer 0xD2 int 64 number_integer 0xD3 str 8 string 0xD9 str 16 string 0xDA str 32 string 0xDB array 16 array 0xDC array 32 array 0xDD map 16 object 0xDE map 32 object 0xDF bin 8 binary 0xC4 bin 16 binary 0xC5 bin 32 binary 0xC6 ext 8 binary 0xC7 ext 16 binary 0xC8 ext 32 binary 0xC9 fixext 1 binary 0xD4 fixext 2 binary 0xD5 fixext 4 binary 0xD6 fixext 8 binary 0xD7 fixext 16 binary 0xD8 negative fixint number_integer 0xE0-0xFF

Info

Any MessagePack output created by to_msgpack can be successfully parsed by from_msgpack.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x82, 0xa7, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63,\n                                   0x74, 0xc3, 0xa6, 0x73, 0x63, 0x68, 0x65, 0x6d,\n                                   0x61, 0x00\n                                  };\n\n    // deserialize it with MessagePack\n    json j = json::from_msgpack(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/binary_formats/ubjson/","title":"UBJSON","text":"

Universal Binary JSON (UBJSON) is a binary form directly imitating JSON, but requiring fewer bytes of data. It aims to achieve the generality of JSON, combined with being much easier to process than JSON.

References

  • UBJSON Website
"},{"location":"features/binary_formats/ubjson/#serialization","title":"Serialization","text":"

The library uses the following mapping from JSON values types to UBJSON types according to the UBJSON specification:

JSON value type value/range UBJSON type marker null null null Z boolean true true T boolean false false F number_integer -9223372036854775808..-2147483649 int64 L number_integer -2147483648..-32769 int32 l number_integer -32768..-129 int16 I number_integer -128..127 int8 i number_integer 128..255 uint8 U number_integer 256..32767 int16 I number_integer 32768..2147483647 int32 l number_integer 2147483648..9223372036854775807 int64 L number_unsigned 0..127 int8 i number_unsigned 128..255 uint8 U number_unsigned 256..32767 int16 I number_unsigned 32768..2147483647 int32 l number_unsigned 2147483648..9223372036854775807 int64 L number_unsigned 2147483649..18446744073709551615 high-precision H number_float any value float64 D string with shortest length indicator string S array see notes on optimized format array [ object see notes on optimized format map {

Complete mapping

The mapping is complete in the sense that any JSON value type can be converted to a UBJSON value.

Any UBJSON output created by to_ubjson can be successfully parsed by from_ubjson.

Size constraints

The following values can not be converted to a UBJSON value:

  • strings with more than 9223372036854775807 bytes (theoretical)

Unused UBJSON markers

The following markers are not used in the conversion:

  • Z: no-op values are not created.
  • C: single-byte strings are serialized with S markers.

NaN/infinity handling

If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the dump() function which serializes NaN or Infinity to null.

Optimized formats

The optimized formats for containers are supported: Parameter use_size adds size information to the beginning of a container and removes the closing marker. Parameter use_type further checks whether all elements of a container have the same type and adds the type marker to the beginning of the container. The use_type parameter must only be used together with use_size = true.

Note that use_size = true alone may result in larger representations - the benefit of this parameter is that the receiving side is immediately informed on the number of elements of the container.

Binary values

If the JSON data contains the binary type, the value stored is a list of integers, as suggested by the UBJSON documentation. In particular, this means that serialization and the deserialization of a JSON containing binary values into UBJSON and back will result in a different JSON object.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\n// function to print UBJSON's diagnostic format\nvoid print_byte(uint8_t byte)\n{\n    if (32 < byte and byte < 128)\n    {\n        std::cout << (char)byte;\n    }\n    else\n    {\n        std::cout << (int)byte;\n    }\n}\n\nint main()\n{\n    // create a JSON value\n    json j = R\"({\"compact\": true, \"schema\": false})\"_json;\n\n    // serialize it to UBJSON\n    std::vector<std::uint8_t> v = json::to_ubjson(j);\n\n    // print the vector content\n    for (auto& byte : v)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    // create an array of numbers\n    json array = {1, 2, 3, 4, 5, 6, 7, 8};\n\n    // serialize it to UBJSON using default representation\n    std::vector<std::uint8_t> v_array = json::to_ubjson(array);\n    // serialize it to UBJSON using size optimization\n    std::vector<std::uint8_t> v_array_size = json::to_ubjson(array, true);\n    // serialize it to UBJSON using type optimization\n    std::vector<std::uint8_t> v_array_size_and_type = json::to_ubjson(array, true, true);\n\n    // print the vector contents\n    for (auto& byte : v_array)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n\n    for (auto& byte : v_array_size_and_type)\n    {\n        print_byte(byte);\n    }\n    std::cout << std::endl;\n}\n

Output:

{i7compactTi6schemaF}\n[i1i2i3i4i5i6i7i8]\n[#i8i1i2i3i4i5i6i7i8\n[$i#i812345678\n
"},{"location":"features/binary_formats/ubjson/#deserialization","title":"Deserialization","text":"

The library maps UBJSON types to JSON value types as follows:

UBJSON type JSON value type marker no-op no value, next value is read N null null Z false false F true true T float32 number_float d float64 number_float D uint8 number_unsigned U int8 number_integer i int16 number_integer I int32 number_integer l int64 number_integer L string string S char string C array array (optimized values are supported) [ object object (optimized values are supported) {

Complete mapping

The mapping is complete in the sense that any UBJSON value can be converted to a JSON value.

Example
#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // create byte vector\n    std::vector<std::uint8_t> v = {0x7B, 0x69, 0x07, 0x63, 0x6F, 0x6D, 0x70, 0x61,\n                                   0x63, 0x74, 0x54, 0x69, 0x06, 0x73, 0x63, 0x68,\n                                   0x65, 0x6D, 0x61, 0x69, 0x00, 0x7D\n                                  };\n\n    // deserialize it with UBJSON\n    json j = json::from_ubjson(v);\n\n    // print the deserialized JSON value\n    std::cout << std::setw(2) << j << std::endl;\n}\n

Output:

{\n  \"compact\": true,\n  \"schema\": 0\n}\n
"},{"location":"features/element_access/","title":"Element Access","text":"

There are many ways elements in a JSON value can be accessed:

  • unchecked access via operator[]
  • checked access via at
  • access with default value via value
  • iterators
  • JSON pointers
"},{"location":"features/element_access/checked_access/","title":"Checked access: at","text":""},{"location":"features/element_access/checked_access/#overview","title":"Overview","text":"

The at member function performs checked access; that is, it returns a reference to the desired value if it exists and throws a basic_json::out_of_range exception otherwise.

Read access

Consider the following JSON value:

{\n    \"name\": \"Mary Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"name\": \"Mary Smith\", \"age\": 42, \"hobbies\": [\"hiking\", \"reading\"]} j.at(\"name\") \"Mary Smith\" j.at(\"age\") 42 j.at(\"hobbies\") [\"hiking\", \"reading\"] j.at(\"hobbies\").at(0) \"hiking\" j.at(\"hobbies\").at(1) \"reading\"

The return value is a reference, so it can be modified by the original value.

Write access
j.at(\"name\") = \"John Smith\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

When accessing an invalid index (i.e., an index greater than or equal to the array size) or the passed object key is non-existing, an exception is thrown.

Accessing via invalid index or missing key
j.at(\"hobbies\").at(3) = \"cooking\";\n

This code produces the following exception:

[json.exception.out_of_range.401] array index 3 is out of range\n

When you extended diagnostic messages are enabled by defining JSON_DIAGNOSTICS, the exception further gives information where the key or index is missing or out of range.

[json.exception.out_of_range.401] (/hobbies) array index 3 is out of range\n
"},{"location":"features/element_access/checked_access/#notes","title":"Notes","text":"

Exceptions

  • at can only be used with objects (with a string argument) or with arrays (with a numeric argument). For other types, a basic_json::type_error is thrown.
  • basic_json::out_of_range exception exceptions are thrown if the provided key is not found in an object or the provided index is invalid.
"},{"location":"features/element_access/checked_access/#summary","title":"Summary","text":"scenario non-const value const value access to existing object key reference to existing value is returned const reference to existing value is returned access to valid array index reference to existing value is returned const reference to existing value is returned access to non-existing object key basic_json::out_of_range exception is thrown basic_json::out_of_range exception is thrown access to invalid array index basic_json::out_of_range exception is thrown basic_json::out_of_range exception is thrown"},{"location":"features/element_access/default_value/","title":"Access with default value: value","text":""},{"location":"features/element_access/default_value/#overview","title":"Overview","text":"

In many situations such as configuration files, missing values are not exceptional, but may be treated as if a default value was present.

Example

Consider the following JSON value:

{\n    \"logOutput\": \"result.log\",\n    \"append\": true\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"logOutput\": \"result.log\", \"append\": true} j.value(\"logOutput\", \"logfile.log\") \"result.log\" j.value(\"append\", true) true j.value(\"append\", false) true j.value(\"logLevel\", \"verbose\") \"verbose\""},{"location":"features/element_access/default_value/#note","title":"Note","text":"

Exceptions

  • value can only be used with objects. For other types, a basic_json::type_error is thrown.
"},{"location":"features/element_access/unchecked_access/","title":"Unchecked access: operator[]","text":""},{"location":"features/element_access/unchecked_access/#overview","title":"Overview","text":"

Elements in a JSON object and a JSON array can be accessed via operator[] similar to a std::map and a std::vector, respectively.

Read access

Consider the following JSON value:

{\n    \"name\": \"Mary Smith\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

Assume the value is parsed to a json variable j.

expression value j {\"name\": \"Mary Smith\", \"age\": 42, \"hobbies\": [\"hiking\", \"reading\"]} j[\"name\"] \"Mary Smith\" j[\"age\"] 42 j[\"hobbies\"] [\"hiking\", \"reading\"] j[\"hobbies\"][0] \"hiking\" j[\"hobbies\"][1] \"reading\"

The return value is a reference, so it can modify the original value. In case the passed object key is non-existing, a null value is inserted which can be immediately be overwritten.

Write access
j[\"name\"] = \"John Smith\";\nj[\"maidenName\"] = \"Jones\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"maidenName\": \"Jones\",\n    \"age\": 42,\n    \"hobbies\": [\"hiking\", \"reading\"]\n}\n

When accessing an invalid index (i.e., an index greater than or equal to the array size), the JSON array is resized such that the passed index is the new maximal index. Intermediate values are filled with null.

Filling up arrays with null values
j[\"hobbies\"][0] = \"running\";\nj[\"hobbies\"][3] = \"cooking\";\n

This code produces the following JSON value:

{\n    \"name\": \"John Smith\",\n    \"maidenName\": \"Jones\",\n    \"age\": 42,\n    \"hobbies\": [\"running\", \"reading\", null, \"cooking\"]\n}\n
"},{"location":"features/element_access/unchecked_access/#notes","title":"Notes","text":"

Design rationale

The library behaves differently to std::vector and std::map:

  • std::vector::operator[] never inserts a new element.
  • std::map::operator[] is not available for const values.

The type json wraps all JSON value types. It would be impossible to remove operator[] for const objects. At the same time, inserting elements for non-const objects is really convenient as it avoids awkward insert calls. To this end, we decided to have an inserting non-const behavior for both arrays and objects.

Info

The access is unchecked. In case the passed object key does not exist or the passed array index is invalid, no exception is thrown.

Danger

  • It is undefined behavior to access a const object with a non-existing key.
  • It is undefined behavior to access a const array with an invalid index.
  • In debug mode, an assertion will fire in both cases. You can disable assertions by defining the preprocessor symbol NDEBUG or redefine the macro JSON_ASSERT(x). See the documentation on runtime assertions for more information.

Exceptions

operator[] can only be used with objects (with a string argument) or with arrays (with a numeric argument). For other types, a basic_json::type_error is thrown.

"},{"location":"features/element_access/unchecked_access/#summary","title":"Summary","text":"scenario non-const value const value access to existing object key reference to existing value is returned const reference to existing value is returned access to valid array index reference to existing value is returned const reference to existing value is returned access to non-existing object key reference to newly inserted null value is returned undefined behavior; runtime assertion in debug mode access to invalid array index reference to newly inserted null value is returned; any index between previous maximal index and passed index are filled with null undefined behavior; runtime assertion in debug mode"},{"location":"features/parsing/","title":"Parsing","text":"

Note

This page is under construction.

"},{"location":"features/parsing/#input","title":"Input","text":""},{"location":"features/parsing/#sax-vs-dom-parsing","title":"SAX vs. DOM parsing","text":""},{"location":"features/parsing/#exceptions","title":"Exceptions","text":"

See parsing and exceptions.

"},{"location":"features/parsing/json_lines/","title":"JSON Lines","text":"

The JSON Lines format is a text format of newline-delimited JSON. In particular:

  1. The input must be UTF-8 encoded.
  2. Every line must be a valid JSON value.
  3. The line separator must be \\n. As \\r is silently ignored, \\r\\n is also supported.
  4. The final character may be \\n, but is not required to be one.

JSON Text example

{\"name\": \"Gilbert\", \"wins\": [[\"straight\", \"7\u2663\"], [\"one pair\", \"10\u2665\"]]}\n{\"name\": \"Alexa\", \"wins\": [[\"two pair\", \"4\u2660\"], [\"two pair\", \"9\u2660\"]]}\n{\"name\": \"May\", \"wins\": []}\n{\"name\": \"Deloise\", \"wins\": [[\"three of a kind\", \"5\u2663\"]]}\n

JSON Lines input with more than one value is treated as invalid JSON by the parse or accept functions. To process it line by line, functions like std::getline can be used:

Example: Parse JSON Text input line by line

The example below demonstrates how JSON Lines can be processed.

#include <sstream>\n#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // JSON Lines (see https://jsonlines.org)\n    std::stringstream input;\n    input << R\"({\"name\": \"Gilbert\", \"wins\": [[\"straight\", \"7\u2663\"], [\"one pair\", \"10\u2665\"]]}\n{\"name\": \"Alexa\", \"wins\": [[\"two pair\", \"4\u2660\"], [\"two pair\", \"9\u2660\"]]}\n{\"name\": \"May\", \"wins\": []}\n{\"name\": \"Deloise\", \"wins\": [[\"three of a kind\", \"5\u2663\"]]}\n)\";\n\n    std::string line;\n    while (std::getline(input, line))\n    {\n        std::cout << json::parse(line) << std::endl;\n    }\n}\n

Output:

{\"name\":\"Gilbert\",\"wins\":[[\"straight\",\"7\u2663\"],[\"one pair\",\"10\u2665\"]]}\n{\"name\":\"Alexa\",\"wins\":[[\"two pair\",\"4\u2660\"],[\"two pair\",\"9\u2660\"]]}\n{\"name\":\"May\",\"wins\":[]}\n{\"name\":\"Deloise\",\"wins\":[[\"three of a kind\",\"5\u2663\"]]}\n

Note

Using operator>> like

json j;\nwhile (input >> j)\n{\n    std::cout << j << std::endl;\n}\n

with a JSON Lines input does not work, because the parser will try to parse one value after the last one.

"},{"location":"features/parsing/parse_exceptions/","title":"Parsing and Exceptions","text":"

When the input is not valid JSON, an exception of type parse_error is thrown. This exception contains the position in the input where the error occurred, together with a diagnostic message and the last read input token. The exceptions page contains a list of examples for parse error exceptions. In case you process untrusted input, always enclose your code with a try/catch block, like

json j;\ntry\n{\n    j = json::parse(my_input);\n}\ncatch (json::parse_error& ex)\n{\n    std::cerr << \"parse error at byte \" << ex.byte << std::endl;\n}\n

In case exceptions are undesired or not supported by the environment, there are different ways to proceed:

"},{"location":"features/parsing/parse_exceptions/#switch-off-exceptions","title":"Switch off exceptions","text":"

The parse() function accepts a bool parameter allow_exceptions which controls whether an exception is thrown when a parse error occurs (true, default) or whether a discarded value should be returned (false).

json j = json::parse(my_input, nullptr, false);\nif (j.is_discarded())\n{\n    std::cerr << \"parse error\" << std::endl;\n}\n

Note there is no diagnostic information available in this scenario.

"},{"location":"features/parsing/parse_exceptions/#use-accept-function","title":"Use accept() function","text":"

Alternatively, function accept() can be used which does not return a json value, but a bool indicating whether the input is valid JSON.

if (!json::accept(my_input))\n{\n    std::cerr << \"parse error\" << std::endl;\n}\n

Again, there is no diagnostic information available.

"},{"location":"features/parsing/parse_exceptions/#user-defined-sax-interface","title":"User-defined SAX interface","text":"

Finally, you can implement the SAX interface and decide what should happen in case of a parse error.

This function has the following interface:

bool parse_error(std::size_t position,\n                 const std::string& last_token,\n                 const json::exception& ex);\n

The return value indicates whether the parsing should continue, so the function should usually return false.

Example
#include <iostream>\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\n\nclass sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json>\n{\n  public:\n    sax_no_exception(json& j)\n      : nlohmann::detail::json_sax_dom_parser<json>(j, false)\n    {}\n\n    bool parse_error(std::size_t position,\n                     const std::string& last_token,\n                     const json::exception& ex)\n    {\n        std::cerr << \"parse error at input byte \" << position << \"\\n\"\n                  << ex.what() << \"\\n\"\n                  << \"last read: \\\"\" << last_token << \"\\\"\"\n                  << std::endl;\n        return false;\n    }\n};\n\nint main()\n{\n    std::string myinput = \"[1,2,3,]\";\n\n    json result;\n    sax_no_exception sax(result);\n\n    bool parse_result = json::sax_parse(myinput, &sax);\n    if (!parse_result)\n    {\n        std::cerr << \"parsing unsuccessful!\" << std::endl;\n    }\n\n    std::cout << \"parsed value: \" << result << std::endl;\n}\n

Output:

parse error at input byte 8\n[json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nlast read: \"3,]\"\nparsing unsuccessful!\nparsed value: [1,2,3]\n
"},{"location":"features/parsing/parser_callbacks/","title":"Parser Callbacks","text":""},{"location":"features/parsing/parser_callbacks/#overview","title":"Overview","text":"

With a parser callback function, the result of parsing a JSON text can be influenced. When passed to parse, it is called on certain events (passed as parse_event_t via parameter event) with a set recursion depth depth and context JSON value parsed. The return value of the callback function is a boolean indicating whether the element that emitted the callback shall be kept or not.

The type of the callback function is:

template<typename BasicJsonType>\nusing parser_callback_t =\n    std::function<bool(int depth, parse_event_t event, BasicJsonType& parsed)>;\n
"},{"location":"features/parsing/parser_callbacks/#callback-event-types","title":"Callback event types","text":"

We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values of the parameters depth, event, and parsed.

parameter event description parameter depth parameter parsed parse_event_t::object_start the parser read { and started to process a JSON object depth of the parent of the JSON object a JSON value with type discarded parse_event_t::key the parser read a key of a value in an object depth of the currently parsed JSON object a JSON string containing the key parse_event_t::object_end the parser read } and finished processing a JSON object depth of the parent of the JSON object the parsed JSON object parse_event_t::array_start the parser read [ and started to process a JSON array depth of the parent of the JSON array a JSON value with type discarded parse_event_t::array_end the parser read ] and finished processing a JSON array depth of the parent of the JSON array the parsed JSON array parse_event_t::value the parser finished reading a JSON value depth of the value the parsed JSON value Example

When parsing the following JSON text,

{\n    \"name\": \"Berlin\",\n    \"location\": [\n        52.519444,\n        13.406667\n    ]\n}\n

these calls are made to the callback function:

event depth parsed object_start 0 discarded key 1 \"name\" value 1 \"Berlin\" key 1 \"location\" array_start 1 discarded value 2 52.519444 value 2 13.406667 array_end 1 [52.519444,13.406667] object_end 0 {\"location\":[52.519444,13.406667],\"name\":\"Berlin\"}"},{"location":"features/parsing/parser_callbacks/#return-value","title":"Return value","text":"

Discarding a value (i.e., returning false) has different effects depending on the context in which the function was called:

  • Discarded values in structured types are skipped. That is, the parser will behave as if the discarded value was never read.
  • In case a value outside a structured type is skipped, it is replaced with null. This case happens if the top-level element is skipped.
Example

The example below demonstrates the parse() function with and without callback function.

#include <iostream>\n#include <iomanip>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    // a JSON text\n    auto text = R\"(\n    {\n        \"Image\": {\n            \"Width\":  800,\n            \"Height\": 600,\n            \"Title\":  \"View from 15th Floor\",\n            \"Thumbnail\": {\n                \"Url\":    \"http://www.example.com/image/481989943\",\n                \"Height\": 125,\n                \"Width\":  100\n            },\n            \"Animated\" : false,\n            \"IDs\": [116, 943, 234, 38793]\n        }\n    }\n    )\";\n\n    // parse and serialize JSON\n    json j_complete = json::parse(text);\n    std::cout << std::setw(4) << j_complete << \"\\n\\n\";\n\n    // define parser callback\n    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)\n    {\n        // skip object elements with key \"Thumbnail\"\n        if (event == json::parse_event_t::key and parsed == json(\"Thumbnail\"))\n        {\n            return false;\n        }\n        else\n        {\n            return true;\n        }\n    };\n\n    // parse (with callback) and serialize JSON\n    json j_filtered = json::parse(text, cb);\n    std::cout << std::setw(4) << j_filtered << '\\n';\n}\n

Output:

{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Thumbnail\": {\n            \"Height\": 125,\n            \"Url\": \"http://www.example.com/image/481989943\",\n            \"Width\": 100\n        },\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n\n{\n    \"Image\": {\n        \"Animated\": false,\n        \"Height\": 600,\n        \"IDs\": [\n            116,\n            943,\n            234,\n            38793\n        ],\n        \"Title\": \"View from 15th Floor\",\n        \"Width\": 800\n    }\n}\n
"},{"location":"features/parsing/sax_interface/","title":"SAX Interface","text":"

The library uses a SAX-like interface with the following functions:

// called when null is parsed\nbool null();\n\n// called when a boolean is parsed; value is passed\nbool boolean(bool val);\n\n// called when a signed or unsigned integer number is parsed; value is passed\nbool number_integer(number_integer_t val);\nbool number_unsigned(number_unsigned_t val);\n\n// called when a floating-point number is parsed; value and original string is passed\nbool number_float(number_float_t val, const string_t& s);\n\n// called when a string is parsed; value is passed and can be safely moved away\nbool string(string_t& val);\n// called when a binary value is parsed; value is passed and can be safely moved away\nbool binary(binary& val);\n\n// called when an object or array begins or ends, resp. The number of elements is passed (or -1 if not known)\nbool start_object(std::size_t elements);\nbool end_object();\nbool start_array(std::size_t elements);\nbool end_array();\n// called when an object key is parsed; value is passed and can be safely moved away\nbool key(string_t& val);\n\n// called when a parse error occurs; byte position, the last token, and an exception is passed\nbool parse_error(std::size_t position, const std::string& last_token, const json::exception& ex);\n

The return value of each function determines whether parsing should proceed.

To implement your own SAX handler, proceed as follows:

  1. Implement the SAX interface in a class. You can use class nlohmann::json_sax<json> as base class, but you can also use any class where the functions described above are implemented and public.
  2. Create an object of your SAX interface class, e.g. my_sax.
  3. Call bool json::sax_parse(input, &my_sax); where the first parameter can be any input like a string or an input stream and the second parameter is a pointer to your SAX interface.

Note the sax_parse function only returns a bool indicating the result of the last executed SAX event. It does not return json value - it is up to you to decide what to do with the SAX events. Furthermore, no exceptions are thrown in case of a parse error - it is up to you what to do with the exception object passed to your parse_error implementation. Internally, the SAX interface is used for the DOM parser (class json_sax_dom_parser) as well as the acceptor (json_sax_acceptor), see file json_sax.hpp.

"},{"location":"features/parsing/sax_interface/#see-also","title":"See also","text":"
  • json_sax - documentation of the SAX interface
  • sax_parse - SAX parser
"},{"location":"features/types/","title":"Types","text":"

This page gives an overview how JSON values are stored and how this can be configured.

"},{"location":"features/types/#overview","title":"Overview","text":"

By default, JSON values are stored as follows:

JSON type C++ type object std::map<std::string, basic_json> array std::vector<basic_json> null std::nullptr_t string std::string boolean bool number std::int64_t, std::uint64_t, and double

Note there are three different types for numbers - when parsing JSON text, the best fitting type is chosen.

"},{"location":"features/types/#storage","title":"Storage","text":""},{"location":"features/types/#template-arguments","title":"Template arguments","text":"

The data types to store a JSON value are derived from the template arguments passed to class basic_json:

template<\n    template<typename U, typename V, typename... Args> class ObjectType = std::map,\n    template<typename U, typename... Args> class ArrayType = std::vector,\n    class StringType = std::string,\n    class BooleanType = bool,\n    class NumberIntegerType = std::int64_t,\n    class NumberUnsignedType = std::uint64_t,\n    class NumberFloatType = double,\n    template<typename U> class AllocatorType = std::allocator,\n    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer,\n    class BinaryType = std::vector<std::uint8_t>\n>\nclass basic_json;\n

Type json is an alias for basic_json<> and uses the default types.

From the template arguments, the following types are derived:

using object_comparator_t = std::less<>;\nusing object_t = ObjectType<StringType, basic_json, object_comparator_t,\n                   AllocatorType<std::pair<const StringType, basic_json>>>;\n\nusing array_t = ArrayType<basic_json, AllocatorType<basic_json>>;\n\nusing string_t = StringType;\n\nusing boolean_t = BooleanType;\n\nusing number_integer_t = NumberIntegerType;\nusing number_unsigned_t = NumberUnsignedType;\nusing number_float_t = NumberFloatType;\n\nusing binary_t = nlohmann::byte_container_with_subtype<BinaryType>;\n
"},{"location":"features/types/#objects","title":"Objects","text":"

RFC 8259 describes JSON objects as follows:

An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array.

"},{"location":"features/types/#default-type","title":"Default type","text":"

With the default values for ObjectType (std::map), StringType (std::string), and AllocatorType (std::allocator), the default value for object_t is:

std::map<\n  std::string, // key_type\n  basic_json, // value_type\n  std::less<>, // key_compare\n  std::allocator<std::pair<const std::string, basic_json>> // allocator_type\n>\n
"},{"location":"features/types/#behavior","title":"Behavior","text":"

The choice of object_t influences the behavior of the JSON class. With the default type, objects have the following behavior:

  • When all names are unique, objects will be interoperable in the sense that all software implementations receiving that object will agree on the name-value mappings.
  • When the names within an object are not unique, it is unspecified which one of the values for a given key will be chosen. For instance, {\"key\": 2, \"key\": 1} could be equal to either {\"key\": 1} or {\"key\": 2}.
  • Internally, name/value pairs are stored in lexicographical order of the names. Objects will also be serialized (see dump) in this order. For instance, both {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be stored and serialized as {\"a\": 2, \"b\": 1}.
  • When comparing objects, the order of the name/value pairs is irrelevant. This makes objects interoperable in the sense that they will not be affected by these differences. For instance, {\"b\": 1, \"a\": 2} and {\"a\": 2, \"b\": 1} will be treated as equal.
"},{"location":"features/types/#key-order","title":"Key order","text":"

The order name/value pairs are added to the object is not preserved by the library. Therefore, iterating an object may return name/value pairs in a different order than they were originally stored. In fact, keys will be traversed in alphabetical order as std::map with std::less is used by default. Please note this behavior conforms to RFC 8259, because any order implements the specified \"unordered\" nature of JSON objects.

"},{"location":"features/types/#limits","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the object's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON object.

"},{"location":"features/types/#storage_1","title":"Storage","text":"

Objects are stored as pointers in a basic_json type. That is, for any access to object values, a pointer of type object_t* must be dereferenced.

"},{"location":"features/types/#arrays","title":"Arrays","text":"

RFC 8259 describes JSON arrays as follows:

An array is an ordered sequence of zero or more values.

"},{"location":"features/types/#default-type_1","title":"Default type","text":"

With the default values for ArrayType (std::vector) and AllocatorType (std::allocator), the default value for array_t is:

std::vector<\n  basic_json, // value_type\n  std::allocator<basic_json> // allocator_type\n>\n
"},{"location":"features/types/#limits_1","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the maximum depth of nesting.

In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the max_size function of a JSON array.

"},{"location":"features/types/#storage_2","title":"Storage","text":"

Arrays are stored as pointers in a basic_json type. That is, for any access to array values, a pointer of type array_t* must be dereferenced.

"},{"location":"features/types/#strings","title":"Strings","text":"

RFC 8259 describes JSON strings as follows:

A string is a sequence of zero or more Unicode characters.

Unicode values are split by the JSON class into byte-sized characters during deserialization.

"},{"location":"features/types/#default-type_2","title":"Default type","text":"

With the default values for StringType (std::string), the default value for string_t is std::string.

"},{"location":"features/types/#encoding","title":"Encoding","text":"

Strings are stored in UTF-8 encoding. Therefore, functions like std::string::size() or std::string::length() return the number of bytes in the string rather than the number of characters or glyphs.

"},{"location":"features/types/#string-comparison","title":"String comparison","text":"

RFC 8259 states:

Software implementations are typically required to test names of object members for equality. Implementations that transform the textual representation into sequences of Unicode code units and then perform the comparison numerically, code unit by code unit, are interoperable in the sense that implementations will agree in all cases on equality or inequality of two strings. For example, implementations that compare strings with escaped characters unconverted may incorrectly find that \"a\\\\b\" and \"a\\u005Cb\" are not equal.

This implementation is interoperable as it does compare strings code unit by code unit.

"},{"location":"features/types/#storage_3","title":"Storage","text":"

String values are stored as pointers in a basic_json type. That is, for any access to string values, a pointer of type string_t* must be dereferenced.

"},{"location":"features/types/#booleans","title":"Booleans","text":"

RFC 8259 implicitly describes a boolean as a type which differentiates the two literals true and false.

"},{"location":"features/types/#default-type_3","title":"Default type","text":"

With the default values for BooleanType (bool), the default value for boolean_t is bool.

"},{"location":"features/types/#storage_4","title":"Storage","text":"

Boolean values are stored directly inside a basic_json type.

"},{"location":"features/types/#numbers","title":"Numbers","text":"

See the number handling article for a detailed discussion on how numbers are handled by this library.

RFC 8259 describes numbers as follows:

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed. (...) Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t, and number_float_t are used.

"},{"location":"features/types/#default-types","title":"Default types","text":"

With the default values for NumberIntegerType (std::int64_t), the default value for number_integer_t is std::int64_t. With the default values for NumberUnsignedType (std::uint64_t), the default value for number_unsigned_t is std::uint64_t. With the default values for NumberFloatType (double), the default value for number_float_t is double.

"},{"location":"features/types/#default-behavior","title":"Default behavior","text":"
  • The restrictions about leading zeros is not enforced in C++. Instead, leading zeros in integer literals lead to an interpretation as octal number. Internally, the value will be stored as decimal number. For instance, the C++ integer literal 010 will be serialized to 8. During deserialization, leading zeros yield an error.
  • Not-a-number (NaN) values will be serialized to null.
"},{"location":"features/types/#limits_2","title":"Limits","text":"

RFC 8259 specifies:

An implementation may set limits on the range and precision of numbers.

When the default type is used, the maximal integer number that can be stored is 9223372036854775807 (INT64_MAX) and the minimal integer number that can be stored is -9223372036854775808 (INT64_MIN). Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_unsigned_t or number_float_t.

When the default type is used, the maximal unsigned integer number that can be stored is 18446744073709551615 (UINT64_MAX) and the minimal integer number that can be stored is 0. Integer numbers that are out of range will yield over/underflow when used in a constructor. During deserialization, too large or small integer numbers will be automatically be stored as number_integer_t or number_float_t.

RFC 8259 further states:

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

As this range is a subrange of the exactly supported range [INT64_MIN, INT64_MAX], this class's integer type is interoperable.

RFC 8259 states:

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754-2008 binary64 (double precision) numbers is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision.

This implementation does exactly follow this approach, as it uses double precision floating-point numbers. Note values smaller than -1.79769313486232e+308 and values greater than 1.79769313486232e+308 will be stored as NaN internally and be serialized to null.

"},{"location":"features/types/#storage_5","title":"Storage","text":"

Integer number values, unsigned integer number values, and floating-point number values are stored directly inside a basic_json type.

"},{"location":"features/types/number_handling/","title":"Number Handling","text":"

This document describes how the library is handling numbers.

"},{"location":"features/types/number_handling/#background","title":"Background","text":"

This section briefly summarizes how the JSON specification describes how numbers should be handled.

"},{"location":"features/types/number_handling/#json-number-syntax","title":"JSON number syntax","text":"

JSON defines the syntax of numbers as follows:

RFC 8259, Section 6

The representation of numbers is similar to that used in most programming languages. A number is represented in base 10 using decimal digits. It contains an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Leading zeros are not allowed.

A fraction part is a decimal point followed by one or more digits.

An exponent part begins with the letter E in uppercase or lowercase, which may be followed by a plus or minus sign. The E and optional sign are followed by one or more digits.

The following railroad diagram from json.org visualizes the number syntax:

"},{"location":"features/types/number_handling/#number-interoperability","title":"Number interoperability","text":"

On number interoperability, the following remarks are made:

RFC 8259, Section 6

This specification allows implementations to set limits on the range and precision of numbers accepted. Since software that implements IEEE 754 binary64 (double precision) numbers [IEEE754] is generally available and widely used, good interoperability can be achieved by implementations that expect no more precision or range than these provide, in the sense that implementations will approximate JSON numbers within the expected precision. A JSON number such as 1E400 or 3.141592653589793238462643383279 may indicate potential interoperability problems, since it suggests that the software that created it expects receiving software to have greater capabilities for numeric magnitude and precision than is widely available.

Note that when such software is used, numbers that are integers and are in the range [-2^{53}+1, 2^{53}-1] are interoperable in the sense that implementations will agree exactly on their numeric values.

"},{"location":"features/types/number_handling/#library-implementation","title":"Library implementation","text":"

This section describes how the above number specification is implemented by this library.

"},{"location":"features/types/number_handling/#number-storage","title":"Number storage","text":"

In the default json type, numbers are stored as std::uint64_t, std::int64_t, and double, respectively. Thereby, std::uint64_t and std::int64_t are used only if they can store the number without loss of precision. If this is impossible (e.g., if the number is too large), the number is stored as double.

Notes

  • Numbers with a decimal digit or scientific notation are always stored as double.
  • The number types can be changed, see Template number types.
  • As of version 3.9.1, the conversion is realized by std::strtoull, std::strtoll, and std::strtod, respectively.

Examples

  • Integer -12345678912345789123456789 is smaller than INT64_MIN and will be stored as floating-point number -1.2345678912345788e+25.
  • Integer 1E3 will be stored as floating-point number 1000.0.
"},{"location":"features/types/number_handling/#number-limits","title":"Number limits","text":"
  • Any 64-bit signed or unsigned integer can be stored without loss of precision.
  • Numbers exceeding the limits of double (i.e., numbers that after conversion via std::strtod are not satisfying std::isfinite such as 1E400) will throw exception json.exception.out_of_range.406 during parsing.
  • Floating-point numbers are rounded to the next number representable as double. For instance 3.141592653589793238462643383279 is stored as 0x400921fb54442d18. This is the same behavior as the code double x = 3.141592653589793238462643383279;.

Interoperability

  • The library interoperable with respect to the specification, because its supported range [-2^{63}, 2^{64}-1] is larger than the described range [-2^{53}+1, 2^{53}-1].
  • All integers outside the range [-2^{63}, 2^{64}-1], as well as floating-point numbers are stored as double. This also concurs with the specification above.
"},{"location":"features/types/number_handling/#zeros","title":"Zeros","text":"

The JSON number grammar allows for different ways to express zero, and this library will store zeros differently:

Literal Stored value and type Serialization 0 std::uint64_t(0) 0 -0 std::int64_t(0) 0 0.0 double(0.0) 0.0 -0.0 double(-0.0) -0.0 0E0 double(0.0) 0.0 -0E0 double(-0.0) -0.0

That is, -0 is stored as a signed integer, but the serialization does not reproduce the -.

"},{"location":"features/types/number_handling/#number-serialization","title":"Number serialization","text":"
  • Integer numbers are serialized as is; that is, no scientific notation is used.
  • Floating-point numbers are serialized as specified by the %g printf modifier with std::numeric_limits<double>::max_digits10 significant digits. The rationale is to use the shortest representation while still allow round-tripping.

Notes regarding precision of floating-point numbers

As described above, floating-point numbers are rounded to the nearest double and serialized with the shortest representation to allow round-tripping. This can yield confusing examples:

  • The serialization can have fewer decimal places than the input: 2555.5599999999999 will be serialized as 2555.56. The reverse can also be true.
  • The serialization can be in scientific notation even if the input is not: 0.0000972439793401814 will be serialized as 9.72439793401814e-05. The reverse can also be true: 12345E-5 will be serialized as 0.12345.
  • Conversions from float to double can also introduce rounding errors:
    float f = 0.3;\njson j = f;\nstd::cout << j << '\\n';\n
    yields 0.30000001192092896.

All examples here can be reproduced by passing the original double value to

std::printf(\"%.*g\\n\", std::numeric_limits<double>::max_digits10, double_value);\n
"},{"location":"features/types/number_handling/#nan-handling","title":"NaN handling","text":"

NaN (not-a-number) cannot be expressed with the number syntax described above and are in fact explicitly excluded:

RFC 8259, Section 6

Numeric values that cannot be represented in the grammar below (such as Infinity and NaN) are not permitted.

That is, there is no way to parse a NaN value. However, NaN values can be stored in a JSON value by assignment.

This library serializes NaN values as null. This corresponds to the behavior of JavaScript's JSON.stringify function.

Example

The following example shows how a NaN value is stored in a json value.

int main()\n{\n    double val = std::numeric_limits<double>::quiet_NaN();\n    std::cout << \"val=\" << val << std::endl;\n    json j = val;\n    std::cout << \"j=\" << j.dump() << std::endl;\n    val = j;\n    std::cout << \"val=\" << val << std::endl;\n}\n

output:

val=nan\nj=null\nval=nan\n
"},{"location":"features/types/number_handling/#number-comparison","title":"Number comparison","text":"

Floating-point inside JSON values numbers are compared with json::number_float_t::operator== which is double::operator== by default.

Alternative comparison functions

To compare floating-point while respecting an epsilon, an alternative comparison function could be used, for instance

template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type>\ninline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept\n{\n    return std::abs(a - b) <= epsilon;\n}\n
Or you can self-define an operator equal function like this:

bool my_equal(const_reference lhs, const_reference rhs)\n{\n    const auto lhs_type lhs.type();\n    const auto rhs_type rhs.type();\n    if (lhs_type == rhs_type)\n    {\n        switch(lhs_type)\n        {\n            // self_defined case\n            case value_t::number_float:\n                return std::abs(lhs - rhs) <= std::numeric_limits<float>::epsilon();\n\n            // other cases remain the same with the original\n            ...\n        }\n    }\n    ...\n}\n

(see #703 for more information.)

Note

NaN values never compare equal to themselves or to other NaN values. See #514.

"},{"location":"features/types/number_handling/#number-conversion","title":"Number conversion","text":"

Just like the C++ language itself, the get family of functions allows conversions between unsigned and signed integers, and between integers and floating-point values to integers. This behavior may be surprising.

Unconditional number conversions

double d = 42.3;                                   // non-integer double value 42.3\njson jd = d;                                       // stores double value 42.3\nstd::int64_t i = jd.template get<std::int64_t>();  // now i==42; no warning or error is produced\n

Note the last line with throw a json.exception.type_error.302 exception if jd is not a numerical type, for instance a string.

The rationale is twofold:

  1. JSON does not define a number type or precision (see above).
  2. C++ also allows to silently convert between number types.

Conditional number conversion

The code above can be solved by explicitly checking the nature of the value with members such as is_number_integer() or is_number_unsigned():

// check if jd is really integer-valued\nif (jd.is_number_integer())\n{\n    // if so, do the conversion and use i\n    std::int64_t i = jd.template get<std::int64_t>();\n    // ...\n}\nelse\n{\n    // otherwise, take appropriate action\n    // ...\n}\n

Note this approach also has the advantage that it can react on non-numerical JSON value types such as strings.

(Example taken from #777.)

"},{"location":"features/types/number_handling/#determine-number-types","title":"Determine number types","text":"

As the example in Number conversion shows, there are different functions to determine the type of the stored number:

  • is_number() returns true for any number type
  • is_number_integer() returns true for signed and unsigned integers
  • is_number_unsigned() returns true for unsigned integers only
  • is_number_float() returns true for floating-point numbers
  • type_name() returns \"number\" for any number type
  • type() returns a different enumerator of value_t for all number types
function unsigned integer signed integer floating-point string is_number() true true true false is_number_integer() true true false false is_number_unsigned() true false false false is_number_float() false false true false type_name() \"number\" \"number\" \"number\" \"string\" type() number_unsigned number_integer number_float string"},{"location":"features/types/number_handling/#template-number-types","title":"Template number types","text":"

The number types can be changed with template parameters.

position number type default type possible values 5 signed integers std::int64_t std::int32_t, std::int16_t, etc. 6 unsigned integers std::uint64_t std::uint32_t, std::uint16_t, etc. 7 floating-point double float, long double

Constraints on number types

  • The type for signed integers must be convertible from long long. The type for floating-point numbers is used in case of overflow.
  • The type for unsigned integers must be convertible from unsigned long long. The type for floating-point numbers is used in case of overflow.
  • The types for signed and unsigned integers must be distinct, see #2573.
  • Only double, float, and long double are supported for floating-point numbers.

Example

A basic_json type that uses long double as floating-point type.

using json_ld = nlohmann::basic_json<std::map, std::vector, std::string, bool,\n                                     std::int64_t, std::uint64_t, long double>;\n

Note values should then be parsed with json_ld::parse rather than json::parse as the latter would parse floating-point values to double before then converting them to long double.

"},{"location":"home/code_of_conduct/","title":"Contributor Covenant Code of Conduct","text":""},{"location":"home/code_of_conduct/#our-pledge","title":"Our Pledge","text":"

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

"},{"location":"home/code_of_conduct/#our-standards","title":"Our Standards","text":"

Examples of behavior that contributes to creating a positive environment include:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

  • The use of sexualized language or imagery and unwelcome sexual attention or advances
  • Trolling, insulting/derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others' private information, such as a physical or electronic address, without explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting
"},{"location":"home/code_of_conduct/#our-responsibilities","title":"Our Responsibilities","text":"

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

"},{"location":"home/code_of_conduct/#scope","title":"Scope","text":"

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

"},{"location":"home/code_of_conduct/#enforcement","title":"Enforcement","text":"

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mail@nlohmann.me. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

"},{"location":"home/code_of_conduct/#attribution","title":"Attribution","text":"

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4

"},{"location":"home/design_goals/","title":"Design goals","text":"

There are myriads of JSON libraries out there, and each may even have its reason to exist. Our class had these design goals:

  • Intuitive syntax. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the examples below, and you'll know what I mean.

  • Trivial integration. Our whole code consists of a single header file json.hpp. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings.

  • Serious testing. Our class is heavily unit-tested and covers 100% of the code, including all exceptional behavior. Furthermore, we checked with Valgrind and the Clang Sanitizers that there are no memory leaks. Google OSS-Fuzz additionally runs fuzz tests against all parsers 24/7, effectively executing billions of tests so far. To maintain high quality, the project is following the Core Infrastructure Initiative (CII) best practices.

Other aspects were not so important to us:

  • Memory efficiency. Each JSON object has an overhead of one pointer (the maximal size of a union) and one enumeration element (1 byte). The default generalization uses the following C++ data types: std::string for strings, int64_t, uint64_t or double for numbers, std::map for objects, std::vector for arrays, and bool for Booleans. However, you can template the generalized class basic_json to your needs.

  • Speed. There are certainly faster JSON libraries out there. However, if your goal is to speed up your development by adding JSON support with a single header, then this library is the way to go. If you know how to use a std::vector or std::map, you are already set.

See the contribution guidelines for more information.

"},{"location":"home/exceptions/","title":"Exceptions","text":""},{"location":"home/exceptions/#overview","title":"Overview","text":""},{"location":"home/exceptions/#base-type","title":"Base type","text":"

All exceptions inherit from class json::exception (which in turn inherits from std::exception). It is used as the base class for all exceptions thrown by the basic_json class. This class can hence be used as \"wildcard\" to catch exceptions.

"},{"location":"home/exceptions/#switch-off-exceptions","title":"Switch off exceptions","text":"

Exceptions are used widely within the library. They can, however, be switched off with either using the compiler flag -fno-exceptions or by defining the symbol JSON_NOEXCEPTION. In this case, exceptions are replaced by abort() calls. You can further control this behavior by defining JSON_THROW_USER (overriding throw), JSON_TRY_USER (overriding try), and JSON_CATCH_USER (overriding catch).

Note that JSON_THROW_USER should leave the current scope (e.g., by throwing or aborting), as continuing after it may yield undefined behavior.

Example

The code below switches off exceptions and creates a log entry with a detailed error message in case of errors.

#include <iostream>\n\n#define JSON_TRY_USER if(true)\n#define JSON_CATCH_USER(exception) if(false)\n#define JSON_THROW_USER(exception)                           \\\n    {std::clog << \"Error in \" << __FILE__ << \":\" << __LINE__ \\\n               << \" (function \" << __FUNCTION__ << \") - \"    \\\n               << (exception).what() << std::endl;           \\\n     std::abort();}\n\n#include <nlohmann/json.hpp>\n

Note the explanatory what() string of exceptions is not available for MSVC if exceptions are disabled, see #2824.

See documentation of JSON_TRY_USER, JSON_CATCH_USER and JSON_THROW_USER for more information.

"},{"location":"home/exceptions/#extended-diagnostic-messages","title":"Extended diagnostic messages","text":"

Exceptions in the library are thrown in the local context of the JSON value they are detected. This makes detailed diagnostics messages, and hence debugging, difficult.

Example
#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] type must be number, but is string\n

This exception can be hard to debug if storing the value \"12\" and accessing it is further apart.

To create better diagnostics messages, each JSON value needs a pointer to its parent value such that a global context (i.e., a path from the root value to the value that lead to the exception) can be created. That global context is provided as JSON Pointer.

As this global context comes at the price of storing one additional pointer per JSON value and runtime overhead to maintain the parent relation, extended diagnostics are disabled by default. They can, however, be enabled by defining the preprocessor symbol JSON_DIAGNOSTICS to 1 before including json.hpp.

Example
#include <iostream>\n\n# define JSON_DIAGNOSTICS 1\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    json j;\n    j[\"address\"][\"street\"] = \"Fake Street\";\n    j[\"address\"][\"housenumber\"] = \"12\";\n\n    try\n    {\n        int housenumber = j[\"address\"][\"housenumber\"];\n    }\n    catch (const json::exception& e)\n    {\n        std::cout << e.what() << '\\n';\n    }\n}\n

Output:

[json.exception.type_error.302] (/address/housenumber) type must be number, but is string\n

Now the exception message contains a JSON Pointer /address/housenumber that indicates which value has the wrong type.

See documentation of JSON_DIAGNOSTICS for more information.

"},{"location":"home/exceptions/#parse-errors","title":"Parse errors","text":"

This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.

Exceptions have ids 1xx.

Byte index

Member byte holds the byte index of the last read character in the input file.

For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).

Example

The following code shows how a parse_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // parsing input with a syntax error\n        json::parse(\"[1,2,3,]\");\n    }\n    catch (const json::parse_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << '\\n'\n                  << \"byte position of error: \" << e.byte << std::endl;\n    }\n}\n

Output:

message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal\nexception id: 101\nbyte position of error: 8\n
"},{"location":"home/exceptions/#jsonexceptionparse_error101","title":"json.exception.parse_error.101","text":"

This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.

Example message

Input ended prematurely:

[json.exception.parse_error.101] parse error at 2: unexpected end of input; expected string literal\n

No input:

[json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON\n

Control character was not escaped:

[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\\\; last read: '\"<U+0009>'\"\n

String was not closed:

[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid string: missing closing quote; last read: '\"'\n

Invalid number format:

[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid number; expected '+', '-', or digit after exponent; last read: '1E'\n

\\u was not be followed by four hex digits:

[json.exception.parse_error.101] parse error at line 1, column 6: syntax error while parsing value - invalid string: '\\u' must be followed by 4 hex digits; last read: '\"\\u01\"'\n

Invalid UTF-8 surrogate pair:

[json.exception.parse_error.101] parse error at line 1, column 13: syntax error while parsing value - invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF; last read: '\"\\uD7FF\\uDC00'\"\n

Invalid UTF-8 byte:

[json.exception.parse_error.101] parse error at line 3, column 24: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"vous \\352t'\n

Tip

  • Make sure the input is correctly read. Try to write the input to standard output to check if, for instance, the input file was successfully opened.
  • Paste the input to a JSON validator like http://jsonlint.com or a tool like jq.
"},{"location":"home/exceptions/#jsonexceptionparse_error102","title":"json.exception.parse_error.102","text":"

JSON uses the \\uxxxx format to describe Unicode characters. Code points above 0xFFFF are split into two \\uxxxx entries (\"surrogate pairs\"). This error indicates that the surrogate pair is incomplete or contains an invalid code point.

Example message

parse error at 14: missing or wrong low surrogate\n

Note

This exception is not used any more. Instead json.exception.parse_error.101 with a more detailed description is used.

"},{"location":"home/exceptions/#jsonexceptionparse_error103","title":"json.exception.parse_error.103","text":"

Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.

Example message

parse error: code points above 0x10FFFF are invalid\n

Note

This exception is not used any more. Instead json.exception.parse_error.101 with a more detailed description is used.

"},{"location":"home/exceptions/#jsonexceptionparse_error104","title":"json.exception.parse_error.104","text":"

RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.

Example message

[json.exception.parse_error.104] parse error: JSON patch must be an array of objects\n
"},{"location":"home/exceptions/#jsonexceptionparse_error105","title":"json.exception.parse_error.105","text":"

An operation of a JSON Patch document must contain exactly one \"op\" member, whose value indicates the operation to perform. Its value must be one of \"add\", \"remove\", \"replace\", \"move\", \"copy\", or \"test\"; other values are errors.

Example message

[json.exception.parse_error.105] parse error: operation 'add' must have member 'value'\n
[json.exception.parse_error.105] parse error: operation 'copy' must have string member 'from'\n
[json.exception.parse_error.105] parse error: operation value 'foo' is invalid\n

"},{"location":"home/exceptions/#jsonexceptionparse_error106","title":"json.exception.parse_error.106","text":"

An array index in a JSON Pointer (RFC 6901) may be 0 or any number without a leading 0.

Example message

[json.exception.parse_error.106] parse error: array index '01' must not begin with '0'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error107","title":"json.exception.parse_error.107","text":"

A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a / character.

Example message

[json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error108","title":"json.exception.parse_error.108","text":"

In a JSON Pointer, only ~0 and ~1 are valid escape sequences.

Example message

[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'\n
"},{"location":"home/exceptions/#jsonexceptionparse_error109","title":"json.exception.parse_error.109","text":"

A JSON Pointer array index must be a number.

Example messages

[json.exception.parse_error.109] parse error: array index 'one' is not a number\n
[json.exception.parse_error.109] parse error: array index '+1' is not a number\n

"},{"location":"home/exceptions/#jsonexceptionparse_error110","title":"json.exception.parse_error.110","text":"

When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.

Example message

[json.exception.parse_error.110] parse error at byte 5: syntax error while parsing CBOR string: unexpected end of input\n
[json.exception.parse_error.110] parse error at byte 2: syntax error while parsing UBJSON value: expected end of input; last byte: 0x5A\n

"},{"location":"home/exceptions/#jsonexceptionparse_error112","title":"json.exception.parse_error.112","text":"

An unexpected byte was read in a binary format or length information is invalid (BSON).

Example messages

[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing CBOR value: invalid byte: 0x1C\n
[json.exception.parse_error.112] parse error at byte 1: syntax error while parsing MessagePack value: invalid byte: 0xC1\n
[json.exception.parse_error.112] parse error at byte 4: syntax error while parsing BJData size: expected '#' after type information; last byte: 0x02\n
[json.exception.parse_error.112] parse error at byte 4: syntax error while parsing UBJSON size: expected '#' after type information; last byte: 0x02\n
[json.exception.parse_error.112] parse error at byte 10: syntax error while parsing BSON string: string length must be at least 1, is -2147483648\n
[json.exception.parse_error.112] parse error at byte 15: syntax error while parsing BSON binary: byte array length cannot be negative, is -1\n

"},{"location":"home/exceptions/#jsonexceptionparse_error113","title":"json.exception.parse_error.113","text":"

While parsing a map key, a value that is not a string has been read.

Example messages

[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing CBOR string: expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0xFF\n
[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing MessagePack string: expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0xFF\n
[json.exception.parse_error.113] parse error at byte 2: syntax error while parsing UBJSON char: byte after 'C' must be in range 0x00..0x7F; last byte: 0x82\n

"},{"location":"home/exceptions/#jsonexceptionparse_error114","title":"json.exception.parse_error.114","text":"

The parsing of the corresponding BSON record type is not implemented (yet).

Example message

[json.exception.parse_error.114] parse error at byte 5: Unsupported BSON record type 0xFF\n
"},{"location":"home/exceptions/#jsonexceptionparse_error115","title":"json.exception.parse_error.115","text":"

A UBJSON high-precision number could not be parsed.

Example message

[json.exception.parse_error.115] parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A\n
"},{"location":"home/exceptions/#iterator-errors","title":"Iterator errors","text":"

This exception is thrown if iterators passed to a library function do not match the expected semantics.

Exceptions have ids 2xx.

Example

The following code shows how an invalid_iterator exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling iterator::key() on non-object iterator\n        json j = \"string\";\n        json::iterator it = j.begin();\n        auto k = it.key();\n    }\n    catch (const json::invalid_iterator& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.invalid_iterator.207] cannot use key() for non-object iterators\nexception id: 207\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator201","title":"json.exception.invalid_iterator.201","text":"

The iterators passed to constructor basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.

Example message

[json.exception.invalid_iterator.201] iterators are not compatible\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator202","title":"json.exception.invalid_iterator.202","text":"

In the erase or insert function, the passed iterator pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion.

Example messages

[json.exception.invalid_iterator.202] iterator does not fit current value\n
[json.exception.invalid_iterator.202] iterators first and last must point to objects\n

"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator203","title":"json.exception.invalid_iterator.203","text":"

Either iterator passed to function erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from.

Example message

[json.exception.invalid_iterator.203] iterators do not fit current value\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator204","title":"json.exception.invalid_iterator.204","text":"

When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (begin(), end()), because this is the only way the single stored value is expressed. All other ranges are invalid.

Example message

[json.exception.invalid_iterator.204] iterators out of range\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator205","title":"json.exception.invalid_iterator.205","text":"

When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the begin() iterator, because it is the only way to address the stored value. All other iterators are invalid.

Example message

[json.exception.invalid_iterator.205] iterator out of range\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator206","title":"json.exception.invalid_iterator.206","text":"

The iterators passed to constructor basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range.

Example message

[json.exception.invalid_iterator.206] cannot construct with iterators from null\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator207","title":"json.exception.invalid_iterator.207","text":"

The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key.

Example message

[json.exception.invalid_iterator.207] cannot use key() for non-object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator208","title":"json.exception.invalid_iterator.208","text":"

The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.208] cannot use operator[] for object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator209","title":"json.exception.invalid_iterator.209","text":"

The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.209] cannot use offsets with object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator210","title":"json.exception.invalid_iterator.210","text":"

The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (first, last) is invalid.

Example message

[json.exception.invalid_iterator.210] iterators do not fit\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator211","title":"json.exception.invalid_iterator.211","text":"

The iterator range passed to the insert function must not be a subrange of the container to insert to.

Example message

[json.exception.invalid_iterator.211] passed iterators may not belong to container\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator212","title":"json.exception.invalid_iterator.212","text":"

When two iterators are compared, they must belong to the same container.

Example message

[json.exception.invalid_iterator.212] cannot compare iterators of different containers\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator213","title":"json.exception.invalid_iterator.213","text":"

The order of object iterators cannot be compared, because JSON objects are unordered.

Example message

[json.exception.invalid_iterator.213] cannot compare order of object iterators\n
"},{"location":"home/exceptions/#jsonexceptioninvalid_iterator214","title":"json.exception.invalid_iterator.214","text":"

Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to begin().

Example message

[json.exception.invalid_iterator.214] cannot get value\n
"},{"location":"home/exceptions/#type-errors","title":"Type errors","text":"

This exception is thrown in case of a type error; that is, a library function is executed on a JSON value whose type does not match the expected semantics.

Exceptions have ids 3xx.

Example

The following code shows how a type_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling push_back() on a string value\n        json j = \"string\";\n        j.push_back(\"another string\");\n    }\n    catch (const json::type_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.type_error.308] cannot use push_back() with string\nexception id: 308\n
"},{"location":"home/exceptions/#jsonexceptiontype_error301","title":"json.exception.type_error.301","text":"

To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead.

Example message

[json.exception.type_error.301] cannot create object from initializer list\n
"},{"location":"home/exceptions/#jsonexceptiontype_error302","title":"json.exception.type_error.302","text":"

During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types.

Example messages

[json.exception.type_error.302] type must be object, but is null\n
[json.exception.type_error.302] type must be string, but is object\n

"},{"location":"home/exceptions/#jsonexceptiontype_error303","title":"json.exception.type_error.303","text":"

To retrieve a reference to a value stored in a basic_json object with get_ref, the type of the reference must match the value type. For instance, for a JSON array, the ReferenceType must be array_t &.

Example messages

[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is object\n
[json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number\"\n

"},{"location":"home/exceptions/#jsonexceptiontype_error304","title":"json.exception.type_error.304","text":"

The at() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.304] cannot use at() with string\n
[json.exception.type_error.304] cannot use at() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error305","title":"json.exception.type_error.305","text":"

The operator[] member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.305] cannot use operator[] with a string argument with array\n
[json.exception.type_error.305] cannot use operator[] with a numeric argument with object\n

"},{"location":"home/exceptions/#jsonexceptiontype_error306","title":"json.exception.type_error.306","text":"

The value() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.306] cannot use value() with number\n
"},{"location":"home/exceptions/#jsonexceptiontype_error307","title":"json.exception.type_error.307","text":"

The erase() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.307] cannot use erase() with string\n
"},{"location":"home/exceptions/#jsonexceptiontype_error308","title":"json.exception.type_error.308","text":"

The push_back() and operator+= member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.308] cannot use push_back() with string\n
"},{"location":"home/exceptions/#jsonexceptiontype_error309","title":"json.exception.type_error.309","text":"

The insert() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.309] cannot use insert() with array\n
[json.exception.type_error.309] cannot use insert() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error310","title":"json.exception.type_error.310","text":"

The swap() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.310] cannot use swap() with number\n
"},{"location":"home/exceptions/#jsonexceptiontype_error311","title":"json.exception.type_error.311","text":"

The emplace() and emplace_back() member functions can only be executed for certain JSON types.

Example messages

[json.exception.type_error.311] cannot use emplace() with number\n
[json.exception.type_error.311] cannot use emplace_back() with number\n

"},{"location":"home/exceptions/#jsonexceptiontype_error312","title":"json.exception.type_error.312","text":"

The update() member functions can only be executed for certain JSON types.

Example message

[json.exception.type_error.312] cannot use update() with array\n
"},{"location":"home/exceptions/#jsonexceptiontype_error313","title":"json.exception.type_error.313","text":"

The unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well-defined.

Example message

[json.exception.type_error.313] invalid value to unflatten\n
"},{"location":"home/exceptions/#jsonexceptiontype_error314","title":"json.exception.type_error.314","text":"

The unflatten function only works for an object whose keys are JSON Pointers.

Example message

Calling unflatten() on an array [1,2,3]:

[json.exception.type_error.314] only objects can be unflattened\n
"},{"location":"home/exceptions/#jsonexceptiontype_error315","title":"json.exception.type_error.315","text":"

The unflatten() function only works for an object whose keys are JSON Pointers and whose values are primitive.

Example message

Calling unflatten() on an object {\"/1\", [1,2,3]}:

[json.exception.type_error.315] values in object must be primitive\n
"},{"location":"home/exceptions/#jsonexceptiontype_error316","title":"json.exception.type_error.316","text":"

The dump() function only works with UTF-8 encoded strings; that is, if you assign a std::string to a JSON value, make sure it is UTF-8 encoded.

Example message

Calling dump() on a JSON value containing an ISO 8859-1 encoded string:

[json.exception.type_error.316] invalid UTF-8 byte at index 15: 0x6F\n

Tip

  • Store the source file with UTF-8 encoding.
  • Pass an error handler as last parameter to the dump() function to avoid this exception:
    • json::error_handler_t::replace will replace invalid bytes sequences with U+FFFD
    • json::error_handler_t::ignore will silently ignore invalid byte sequences
"},{"location":"home/exceptions/#jsonexceptiontype_error317","title":"json.exception.type_error.317","text":"

The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw true or null JSON object cannot be serialized to BSON)

Example messages

Serializing null to BSON:

[json.exception.type_error.317] to serialize to BSON, top-level type must be object, but is null\n
Serializing [1,2,3] to BSON:
[json.exception.type_error.317] to serialize to BSON, top-level type must be object, but is array\n

Tip

Encapsulate the JSON value in an object. That is, instead of serializing true, serialize {\"value\": true}

"},{"location":"home/exceptions/#out-of-range","title":"Out of range","text":"

This exception is thrown in case a library function is called on an input parameter that exceeds the expected range, for instance in case of array indices or nonexisting object keys.

Exceptions have ids 4xx.

Example

The following code shows how an out_of_range exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    try\n    {\n        // calling at() for an invalid index\n        json j = {1, 2, 3, 4};\n        j.at(4) = 10;\n    }\n    catch (const json::out_of_range& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.out_of_range.401] array index 4 is out of range\nexception id: 401\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range401","title":"json.exception.out_of_range.401","text":"

The provided array index i is larger than size-1.

Example message

array index 3 is out of range\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range402","title":"json.exception.out_of_range.402","text":"

The special array index - in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it.

Example message

array index '-' (3) is out of range\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range403","title":"json.exception.out_of_range.403","text":"

The provided key was not found in the JSON object.

Example message

key 'foo' not found\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range404","title":"json.exception.out_of_range.404","text":"

A reference token in a JSON Pointer could not be resolved.

Example message

unresolved reference token 'foo'\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range405","title":"json.exception.out_of_range.405","text":"

The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value.

Example message

JSON pointer has no parent\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range406","title":"json.exception.out_of_range.406","text":"

A parsed number could not be stored as without changing it to NaN or INF.

Example message

number overflow parsing '10E1000'\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range407","title":"json.exception.out_of_range.407","text":"

UBJSON and BSON only support integer numbers up to 9223372036854775807.

Example message

number overflow serializing '9223372036854775808'\n

Note

Since version 3.9.0, integer numbers beyond int64 are serialized as high-precision UBJSON numbers, and this exception does not further occur.

"},{"location":"home/exceptions/#jsonexceptionout_of_range408","title":"json.exception.out_of_range.408","text":"

The size (following #) of an UBJSON array or object exceeds the maximal capacity.

Example message

excessive array size: 8658170730974374167\n
"},{"location":"home/exceptions/#jsonexceptionout_of_range409","title":"json.exception.out_of_range.409","text":"

Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string.

Example message

BSON key cannot contain code point U+0000 (at byte 2)\n
"},{"location":"home/exceptions/#further-exceptions","title":"Further exceptions","text":"

This exception is thrown in case of errors that cannot be classified with the other exception types.

Exceptions have ids 5xx.

Example

The following code shows how an other_error exception can be caught.

#include <iostream>\n#include <nlohmann/json.hpp>\n\nusing json = nlohmann::json;\nusing namespace nlohmann::literals;\n\nint main()\n{\n    try\n    {\n        // executing a failing JSON Patch operation\n        json value = R\"({\n            \"best_biscuit\": {\n                \"name\": \"Oreo\"\n            }\n        })\"_json;\n        json patch = R\"([{\n            \"op\": \"test\",\n            \"path\": \"/best_biscuit/name\",\n            \"value\": \"Choco Leibniz\"\n        }])\"_json;\n        value.patch(patch);\n    }\n    catch (const json::other_error& e)\n    {\n        // output exception information\n        std::cout << \"message: \" << e.what() << '\\n'\n                  << \"exception id: \" << e.id << std::endl;\n    }\n}\n

Output:

message: [json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/best_biscuit/name\",\"value\":\"Choco Leibniz\"}\nexception id: 501\n
"},{"location":"home/exceptions/#jsonexceptionother_error501","title":"json.exception.other_error.501","text":"

A JSON Patch operation 'test' failed. The unsuccessful operation is also printed.

Example message

Executing {\"op\":\"test\", \"path\":\"/baz\", \"value\":\"bar\"} on {\"baz\": \"qux\"}:

[json.exception.other_error.501] unsuccessful: {\"op\":\"test\",\"path\":\"/baz\",\"value\":\"bar\"}\n
"},{"location":"home/faq/","title":"Frequently Asked Questions (FAQ)","text":""},{"location":"home/faq/#known-bugs","title":"Known bugs","text":""},{"location":"home/faq/#brace-initialization-yields-arrays","title":"Brace initialization yields arrays","text":"

Question

Why does

json j{true};\n

and

json j(true);\n

yield different results ([true] vs. true)?

This is a known issue, and -- even worse -- the behavior differs between GCC and Clang. The \"culprit\" for this is the library's constructor overloads for initializer lists to allow syntax like

json array = {1, 2, 3, 4};\n

for arrays and

json object = {{\"one\", 1}, {\"two\", 2}}; \n

for objects.

Tip

To avoid any confusion and ensure portable code, do not use brace initialization with the types basic_json, json, or ordered_json unless you want to create an object or array as shown in the examples above.

"},{"location":"home/faq/#limitations","title":"Limitations","text":""},{"location":"home/faq/#relaxed-parsing","title":"Relaxed parsing","text":"

Question

Can you add an option to ignore trailing commas?

This library does not support any feature which would jeopardize interoperability.

"},{"location":"home/faq/#parse-errors-reading-non-ascii-characters","title":"Parse errors reading non-ASCII characters","text":"

Questions

  • Why is the parser complaining about a Chinese character?
  • Does the library support Unicode?
  • I get an exception [json.exception.parse_error.101] parse error at line 1, column 53: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"Test\u00e9$')\"

The library supports Unicode input as follows:

  • Only UTF-8 encoded input is supported which is the default encoding for JSON according to RFC 8259.
  • std::u16string and std::u32string can be parsed, assuming UTF-16 and UTF-32 encoding, respectively. These encodings are not supported when reading from files or other input containers.
  • Other encodings such as Latin-1 or ISO 8859-1 are not supported and will yield parse or serialization errors.
  • Unicode noncharacters will not be replaced by the library.
  • Invalid surrogates (e.g., incomplete pairs such as \\uDEAD) will yield parse errors.
  • The strings stored in the library are UTF-8 encoded. When using the default string type (std::string), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs.
  • When you store strings with different encodings in the library, calling dump() may throw an exception unless json::error_handler_t::replace or json::error_handler_t::ignore are used as error handlers.

In most cases, the parser is right to complain, because the input is not UTF-8 encoded. This is especially true for Microsoft Windows where Latin-1 or ISO 8859-1 is often the standard encoding.

"},{"location":"home/faq/#wide-string-handling","title":"Wide string handling","text":"

Question

Why are wide strings (e.g., std::wstring) dumped as arrays of numbers?

As described above, the library assumes UTF-8 as encoding. To store a wide string, you need to change the encoding.

Example

#include <codecvt> // codecvt_utf8\n#include <locale>  // wstring_convert\n\n// encoding function\nstd::string to_utf8(std::wstring& wide_string)\n{\n    static std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;\n    return utf8_conv.to_bytes(wide_string);\n}\n\njson j;\nstd::wstring ws = L\"\u8ecaB1234 \u3053\u3093\u306b\u3061\u306f\";\n\nj[\"original\"] = ws;\nj[\"encoded\"] = to_utf8(ws);\n\nstd::cout << j << std::endl;\n

The result is:

{\n  \"encoded\": \"\u8ecaB1234 \u3053\u3093\u306b\u3061\u306f\",\n  \"original\": [36554, 66, 49, 50, 51, 52, 32, 12371, 12435, 12395, 12385, 12399]\n}\n
"},{"location":"home/faq/#exceptions","title":"Exceptions","text":""},{"location":"home/faq/#parsing-without-exceptions","title":"Parsing without exceptions","text":"

Question

Is it possible to indicate a parse error without throwing an exception?

Yes, see Parsing and exceptions.

"},{"location":"home/faq/#key-name-in-exceptions","title":"Key name in exceptions","text":"

Question

Can I get the key of the object item that caused an exception?

Yes, you can. Please define the symbol JSON_DIAGNOSTICS to get extended diagnostics messages.

"},{"location":"home/faq/#serialization-issues","title":"Serialization issues","text":""},{"location":"home/faq/#number-precision","title":"Number precision","text":"

Question

  • It seems that precision is lost when serializing a double.
  • Can I change the precision for floating-point serialization?

The library uses std::numeric_limits<number_float_t>::digits10 (15 for IEEE doubles) digits for serialization. This value is sufficient to guarantee roundtripping. If one uses more than this number of digits of precision, then string -> value -> string is not guaranteed to round-trip.

cppreference.com

The value of std::numeric_limits<T>::digits10 is the number of base-10 digits that can be represented by the type T without change, that is, any number with this many significant decimal digits can be converted to a value of type T and back to decimal form, without change due to rounding or overflow.

Tip

The website https://float.exposed gives a good insight into the internal storage of floating-point numbers.

See this section on the library's number handling for more information.

"},{"location":"home/faq/#compilation-issues","title":"Compilation issues","text":""},{"location":"home/faq/#android-sdk","title":"Android SDK","text":"

Question

Why does the code not compile with Android SDK?

Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your Application.mk. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default.

APP_STL := c++_shared\nNDK_TOOLCHAIN_VERSION := clang3.6\nAPP_CPPFLAGS += -frtti -fexceptions\n

The code compiles successfully with Android NDK, Revision 9 - 11 (and possibly later) and CrystaX's Android NDK version 10.

"},{"location":"home/faq/#missing-stl-function","title":"Missing STL function","text":"

Questions

  • Why do I get a compilation error 'to_string' is not a member of 'std' (or similarly, for strtod or strtof)?
  • Why does the code not compile with MinGW or Android SDK?

This is not an issue with the code, but rather with the compiler itself. On Android, see above to build with a newer environment. For MinGW, please refer to this site and this discussion for information on how to fix this bug. For Android NDK using APP_STL := gnustl_static, please refer to this discussion.

"},{"location":"home/license/","title":"License","text":"

The class is licensed under the MIT License:

Copyright \u00a9 2013-2022 Niels Lohmann

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the MIT License (see above). Copyright \u00a9 2008-2009 Bj\u00f6rn Hoehrmann bjoern@hoehrmann.de

The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the MIT License (see above). Copyright \u00a9 2009 Florian Loitsch

The class contains a copy of Hedley from Evan Nemerson which is licensed as CC0-1.0.

"},{"location":"home/releases/","title":"Releases","text":""},{"location":"home/releases/#v373","title":"v3.7.3","text":"

Files

  • include.zip (274 KB)
  • include.zip.asc (1 KB)
  • json.hpp (791 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-17 SHA-256: 3b5d2b8f8282b80557091514d8ab97e27f9574336c804ee666fda673a9b59926 (json.hpp), 87b5884741427220d3a33df1363ae0e8b898099fbc59f1c451113f6732891014 (include.zip)

"},{"location":"home/releases/#summary","title":"Summary","text":"

This release fixes a bug introduced in release 3.7.2 which could yield quadratic complexity in destructor calls. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes","title":"Bug Fixes","text":"
  • Removed reserve() calls from the destructor which could lead to quadratic complexity. #1837 #1838
"},{"location":"home/releases/#deprecated-functions","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v372","title":"v3.7.2","text":"

Files

  • include.zip (274 KB)
  • include.zip.asc (1 KB)
  • json.hpp (791 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-10 SHA-256: 0a65fcbbe1b334d3f45c9498e5ee28c3f3b2428aea98557da4a3ff12f0f14ad6 (json.hpp), 67f69c9a93b7fa0612dc1b6273119d2c560317333581845f358aaa68bff8f087 (include.zip)

"},{"location":"home/releases/#summary_1","title":"Summary","text":"

Project bad_json_parsers tested how JSON parser libraries react on deeply nested inputs. It turns out that this library segfaulted at a certain nesting depth. This bug was fixed with this release. Now the parsing is only bounded by the available memory. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_1","title":"Bug Fixes","text":"
  • Fixed a bug that lead to stack overflow for deeply nested JSON values (objects, array) by changing the implementation of the destructor from a recursive to an iterative approach. #832, #1419, #1835
"},{"location":"home/releases/#further-changes","title":"Further Changes","text":"
  • Added WhiteStone Bolt. #1830
"},{"location":"home/releases/#deprecated-functions_1","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v371","title":"v3.7.1","text":"

Files

  • include.zip (273 KB)
  • include.zip.asc (1 KB)
  • json.hpp (789 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-11-06 SHA-256: b5ba7228f3c22a882d379e93d08eab4349458ee16fbf45291347994eac7dc7ce (json.hpp), 77b9f54b34e7989e6f402afb516f7ff2830df551c3a36973085e2c7a6b1045fe (include.zip)

"},{"location":"home/releases/#summary_2","title":"Summary","text":"

This release fixes several small bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_2","title":"Bug Fixes","text":"
  • Fixed a segmentation fault when serializing std::int64_t minimum value. #1708 #1722
  • Fixed the contains() function for JSON Pointers. #1727 #1741
  • Fixed too lax SFINAE guard for conversion from std::pair and std::tuple to json. #1805 #1806 #1825 #1826
  • Fixed some regressions detected by UBSAN. Updated CI to use Clang-Tidy 7.1.0. #1716 #1728
  • Fixed integer truncation in iteration_proxy. #1797
  • Updated Hedley to v11 to fix a E2512 error in MSVC. #1799
  • Fixed a compile error in enum deserialization of non non-default-constructible types. #1647 #1821
  • Fixed the conversion from json to std::valarray.
"},{"location":"home/releases/#improvements","title":"Improvements","text":"
  • The items() function can now be used with a custom string type. #1765
  • Made json_pointer::back const. #1764 #1769
  • Meson is part of the release archive. #1672 #1694
  • Improved documentation on the Meson and Spack package manager. #1694 #1720
"},{"location":"home/releases/#further-changes_1","title":"Further Changes","text":"
  • Added GitHub Workflow with ubuntu-latest/GCC 7.4.0 as CI step.
  • Added GCC 9 to Travis CI to compile with C++20 support. #1724
  • Added MSVC 2019 to the AppVeyor CI. #1780
  • Added badge to fuzzing status.
  • Fixed some cppcheck warnings. #1760
  • Fixed several typos in the documentation. #1720 #1767 #1803
  • Added documentation on the JSON_THROW_USER, JSON_TRY_USER, and JSON_CATCH_USER macros to control user-defined exception handling.
  • Used GitHub's CODEOWNERS and SECURITY feature.
  • Removed GLOB from CMake files. #1779
  • Updated to Doctest 2.3.5.
"},{"location":"home/releases/#deprecated-functions_2","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v370","title":"v3.7.0","text":"

Files

  • include.zip (143 KB)
  • include.zip.asc (1 KB)
  • json.hpp (782 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-07-28 SHA-256: a503214947952b69f0062f572cb74c17582a495767446347ce2e452963fc2ca4 (json.hpp), 541c34438fd54182e9cdc68dd20c898d766713ad6d901fb2c6e28ff1f1e7c10d (include.zip)

"},{"location":"home/releases/#summary_3","title":"Summary","text":"

This release introduces a few convenience functions and performs a lot of house keeping (bug fixes and small improvements). All changes are backward-compatible.

"},{"location":"home/releases/#new-features","title":"New Features","text":"
  • Add overload of the contains function to check if a JSON pointer is valid without throwing exceptions, just like its counterpart for object keys. #1600
  • Add a function to_string to allow for generic conversion to strings. #916 #1585
  • Add return value for the emplace_back function, returning a reference to the added element just like C++17 is introducing this for std::vector. #1609
  • Add info how to use the library with the pacman package manager on MSYS2. #1670
"},{"location":"home/releases/#bug-fixes_3","title":"Bug Fixes","text":"
  • Fix an issue where typedefs with certain names yielded a compilation error. #1642 #1643
  • Fix a conversion to std::string_view in the unit tests. #1634 #1639
  • Fix MSVC Debug build. #1536 #1570 #1608
  • Fix get_to method to clear existing content before writing. #1511 #1555
  • Fix a -Wc++17-extensions warning. nodiscard attributes are now only used with Clang when -std=c++17 is used. #1535 #1551
"},{"location":"home/releases/#improvements_1","title":"Improvements","text":"
  • Switch from Catch to doctest for the unit tests which speeds up compilation and runtime of the 112,112,308 tests.
  • Add an explicit section to the README about the frequently addressed topics character encoding, comments in JSON, and the order of object keys.
"},{"location":"home/releases/#further-changes_2","title":"Further Changes","text":"
  • Use GNUInstallDirs to set library install directories. #1673
  • Fix links in the README. #1620 #1621 #1622 #1623 #1625
  • Mention json type on the documentation start page. #1616
  • Complete documentation of value() function with respect to type_error.302 exception. #1601
  • Fix links in the documentation. #1598
  • Add regression tests for MSVC. #1543 #1570
  • Use CircleCI for continuous integration.
  • Use Doozer for continuous integration on Linux (CentOS, Raspbian, Fedora)
  • Add tests to check each CMake flag (JSON_BuildTests, JSON_Install, JSON_MultipleHeaders, JSON_Sanitizer, JSON_Valgrind, JSON_NoExceptions, JSON_Coverage).
  • Use Hedley to avoid re-inventing several compiler-agnostic feature macros like JSON_DEPRECATED, JSON_NODISCARD, JSON_LIKELY, JSON_UNLIKELY, JSON_HAS_CPP_14, or JSON_HAS_CPP_17. Functions taking or returning pointers are annotated accordingly when a pointer will not be null.
  • Build and run tests on AppVeyor in DEBUG and RELEASE mode.
"},{"location":"home/releases/#deprecated-functions_3","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v361","title":"v3.6.1","text":"

Files

  • include.zip (136 KB)
  • include.zip.asc (1 KB)
  • json.hpp (711 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-03-20 SHA-256: d2eeb25d2e95bffeb08ebb7704cdffd2e8fca7113eba9a0b38d60a5c391ea09a (json.hpp), 69cc88207ce91347ea530b227ff0776db82dcb8de6704e1a3d74f4841bc651cf (include.zip)

"},{"location":"home/releases/#summary_4","title":"Summary","text":"

This release fixes a regression and a bug introduced by the earlier 3.6.0 release. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_4","title":"Bug Fixes","text":"
  • Fixed regression of #590 which could lead to compilation errors with GCC 7 and GCC 8. #1530
  • Fixed a compilation error when <Windows.h> was included. #1531
"},{"location":"home/releases/#further-changes_3","title":"Further Changes","text":"
  • Fixed a warning for missing field initializers. #1527
"},{"location":"home/releases/#deprecated-functions_4","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v360","title":"v3.6.0","text":"

Files

  • include.zip (136 KB)
  • include.zip.asc (1 KB)
  • json.hpp (711 KB)
  • json.hpp.asc (1 KB)

Release date: 2019-03-20 SHA-256: ce9839370f28094c71107c405affb3b08c4a098154988014cbb0800b1c44a831 (json.hpp), 237c5e66e7f8186a02804ce9dbd5f69ce89fe7424ef84adf6142e973bd9532f4 (include.zip)

\u2139\ufe0f This release introduced a regression. Please update to version 3.6.1!

"},{"location":"home/releases/#summary_5","title":"Summary","text":"

This release adds some convenience functions for JSON Pointers, introduces a contains function to check if a key is present in an object, and improves the performance of integer serialization. Furthermore, a lot of small bug fixes and improvements have been made. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_1","title":"New Features","text":"
  • Overworked the public interface for JSON Pointers. The creation of JSON Pointers is simplified with operator/ and operator/=. JSON Pointers can be inspected with empty, back, and parent_pointer, and manipulated with push_back and pop_back. #1434
  • Added a boolean method contains to check whether an element exists in a JSON object with a given key. Returns false when called on non-object types. #1471 #1474
"},{"location":"home/releases/#bug-fixes_5","title":"Bug Fixes","text":"
  • Fixed a compilation issues with libc 2.12. #1483 #1514
  • Fixed endian conversion on PPC64. #1489
  • Fixed library to compile with GCC 9. #1472 #1492
  • Fixed a compilation issue with GCC 7 on CentOS. #1496
  • Fixed an integer overflow. #1447
  • Fixed buffer flushing in serializer. #1445 #1446
"},{"location":"home/releases/#improvements_2","title":"Improvements","text":"
  • The performance of dumping integers has been greatly improved. #1411
  • Added CMake parameter JSON_Install to control whether the library should be installed (default: on). #1330
  • Fixed a lot of compiler and linter warnings. #1400 #1435 #1502
  • Reduced required CMake version from 3.8 to 3.1. #1409 #1428 #1441 #1498
  • Added nodiscard attribute to meta(), array(), object(), from_cbor, from_msgpack, from_ubjson, from_bson, and parse. #1433
"},{"location":"home/releases/#further-changes_4","title":"Further Changes","text":"
  • Added missing headers. #1500
  • Fixed typos and broken links in README. #1417 #1423 #1425 #1451 #1455 #1491
  • Fixed documentation of parse function. #1473
  • Suppressed warning that cannot be fixed inside the library. #1401 #1468
  • Imroved package manager suppert:
    • Updated Buckaroo instructions. #1495
    • Improved Meson support. #1463
    • Added Conda package manager documentation. #1430
    • Added NuGet package manager documentation. #1132
  • Continuous Integration
    • Removed unstable or deprecated Travis builders (Xcode 6.4 - 8.2) and added Xcode 10.1 builder.
    • Added Clang 7 to Travis CI.
    • Fixed AppVeyor x64 builds. #1374 #1414
  • Updated thirdparty libraries:
    • Catch 1.12.0 -> 1.12.2
    • Google Benchmark 1.3.0 -> 1.4.1
    • Doxygen 1.8.15 -> 1.8.16
"},{"location":"home/releases/#deprecated-functions_5","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v350","title":"v3.5.0","text":"

Files

  • include.zip (133 KB)
  • include.zip.asc (1 KB)
  • json.hpp (693 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-12-22 SHA-256: 8a6dbf3bf01156f438d0ca7e78c2971bca50eec4ca6f0cf59adf3464c43bb9d5 (json.hpp), 3564da9c5b0cf2e032f97c69baedf10ddbc98030c337d0327a215ea72259ea21 (include.zip)

"},{"location":"home/releases/#summary_6","title":"Summary","text":"

This release introduces the support for structured bindings and reading from FILE*. Besides, a few bugs have been fixed. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_2","title":"New Features","text":"
  • Structured bindings are now supported for JSON objects and arrays via the items() member function, so finally this code is possible:

    for (auto& [key, val] : j.items()) {\n    std::cout << key << ':' << val << '\\n';\n}\n
    #1388 #1391

  • Added support for reading from FILE* to support situations in which streams are nit available or would require too much RAM. #1370 #1392

"},{"location":"home/releases/#bug-fixes_6","title":"Bug Fixes","text":"
  • The eofbit was not set for input streams when the end of a stream was reached while parsing. #1340 #1343
  • Fixed a bug in the SAX parser for BSON arrays.
"},{"location":"home/releases/#improvements_3","title":"Improvements","text":"
  • Added support for Clang 5.0.1 (PS4 version). #1341 #1342
"},{"location":"home/releases/#further-changes_5","title":"Further Changes","text":"
  • Added a warning for implicit conversions to the documentation: It is not recommended to use implicit conversions when reading from a JSON value. Details about this recommendation can be found here. #1363
  • Fixed typos in the documentation. #1329 #1380 #1382
  • Fixed a C4800 warning. #1364
  • Fixed a -Wshadow warning #1346
  • Wrapped std::snprintf calls to avoid error in MSVC. #1337
  • Added code to allow installation via Meson. #1345
"},{"location":"home/releases/#deprecated-functions_6","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v340","title":"v3.4.0","text":"

Files

  • include.zip (132 KB)
  • include.zip.asc (1 KB)
  • json.hpp (689 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-10-30 SHA-256: 63da6d1f22b2a7bb9e4ff7d6b255cf691a161ff49532dcc45d398a53e295835f (json.hpp), bfec46fc0cee01c509cf064d2254517e7fa80d1e7647fea37cf81d97c5682bdc (include.zip)

"},{"location":"home/releases/#summary_7","title":"Summary","text":"

This release introduces three new features:

  • BSON (Binary JSON) is next to CBOR, MessagePack, and UBJSON the fourth binary (de)serialization format supported by the library.
  • Adjustable error handlers for invalid Unicode allows to specify the behavior when invalid byte sequences are serialized.
  • Simplified enum/JSON mapping with a macro in case the default mapping to integers is not desired.

Furthermore, some effort has been invested in improving the parse error messages. Besides, a few bugs have been fixed. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_3","title":"New Features","text":"
  • The library can read and write a subset of BSON (Binary JSON). All data types known from JSON are supported, whereas other types more tied to MongoDB such as timestamps, object ids, or binary data are currently not implemented. See the README for examples. #1244 #1320
  • The behavior when the library encounters an invalid Unicode sequence during serialization can now be controlled by defining one of three Unicode error handlers: (1) throw an exception (default behavior), (2) replace invalid sequences by the Unicode replacement character (U+FFFD), or (3) ignore/filter invalid sequences. See the documentation of the dump function for examples. #1198 #1314
  • To easily specify a user-defined enum/JSON mapping, a macro NLOHMANN_JSON_SERIALIZE_ENUM has been introduced. See the README section for more information. #1208 #1323
"},{"location":"home/releases/#bug-fixes_7","title":"Bug Fixes","text":"
  • fixed truncation #1286 #1315
  • fixed an issue with std::pair #1299 #1301
  • fixed an issue with std::variant #1292 #1294
  • fixed a bug in the JSON Pointer parser
"},{"location":"home/releases/#improvements_4","title":"Improvements","text":"
  • The diagnosis messages for parse errors have been improved: error messages now indicated line/column positions where possible (in addition to a byte count) and also the context in which the error occurred (e.g., \"while parsing a JSON string\"). Example: error parse error at 2: syntax error - invalid string: control character must be escaped; last read: '<U+0009>' is now reported as parse error at line 1, column 2: syntax error while parsing value - invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t; last read: '<U+0009>'. #1280 #1288 #1303
"},{"location":"home/releases/#further-changes_6","title":"Further Changes","text":"
  • improved Meson documentation #1305
  • fixed some more linter warnings #1280
  • fixed Clang detection for third-party Google Benchmark library #1277
"},{"location":"home/releases/#deprecated-functions_7","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v330","title":"v3.3.0","text":"

Files

  • include.zip (123 KB)
  • include.zip.asc (1 KB)
  • json.hpp (635 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-10-05 SHA-256: f1327bb60c58757a3dd2b0c9c45d49503d571337681d950ec621f8374bcc14d4 (json.hpp), 9588d63557333aaa485e92221ec38014a85a6134e7486fe3441e0541a5a89576 (include.zip)

"},{"location":"home/releases/#summary_8","title":"Summary","text":"

This release adds support for GCC 4.8. Furthermore, it adds a function get_to to write a JSON value to a passed reference. Another topic of this release was the CMake support which has been overworked and documented.

Besides, a lot of bugs have been fixed and slight improvements have been made. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_4","title":"New Features","text":"
  • The library can now also built with GCC 4.8. Though this compiler does not fully support C++11, it can successfully compile and run the test suite. Note that bug 57824 in GCC 4.8 still forbids to use multiline raw strings in arguments to macros. #1257
  • Added new function get_to to write a JSON value to a passed reference. The destination type is automatically derived which allows more succinct code compared to the get function. #1227 #1231
"},{"location":"home/releases/#bug-fixes_8","title":"Bug Fixes","text":"
  • Fixed a bug in the CMake file that made target_link_libraries to not properly include nlohmann_json. #1243 #1245 #1260
  • Fixed a warning in MSVC 2017 complaining about a constexpr if. #1204 #1268 #1272
  • Fixed a bug that prevented compilation with ICPC. #755 #1222
  • Improved the SFINAE correctness to fix a bug in the conversion operator. #1237 #1238
  • Fixed a -Wctor-dtor-privacy warning. #1224
  • Fixed a warning on a lambda in unevaluated context. #1225 #1230
  • Fixed a bug introduced in version 3.2.0 where defining JSON_CATCH_USER led to duplicate macro definition of JSON_INTERNAL_CATCH. #1213 #1214
  • Fixed a bug that prevented compilation with Clang 3.4.2 in RHEL 7. #1179 #1249
"},{"location":"home/releases/#improvements_5","title":"Improvements","text":"
  • Added documentation on CMake integration of the library. #1270
  • Changed the CMake file to use find_package(nlohmann_json) without installing the library. #1202
  • Improved error messages in case operator[] is used with the wrong combination (json.exception.type_error.305) of JSON container type and argument type. Example: \"cannot use operator[] with a string argument\". #1220 #1221
  • Added a license and version information to the Meson build file. #1252
  • Removed static assertions to indicated missing to_json or from_json functions as such assertions do not play well with SFINAE. These assertions also led to problems with GMock. #960 #1212 #1228
  • The test suite now does not wait forever if run in a wrong directory and input files are not found. #1262
  • The test suite does not show deprecation warnings for deprecated functions which frequently led to confusion. #1271
"},{"location":"home/releases/#further-changes_7","title":"Further Changes","text":"
  • GCC 4.8 and Xcode 10 were added to the continuous integration suite at Travis.
  • Added lgtm checks to pull requests.
  • Added tests for CMake integration. #1260
"},{"location":"home/releases/#deprecated-functions_8","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v320","title":"v3.2.0","text":"

Files

  • include.zip (124 KB)
  • include.zip.asc (1 KB)
  • json.hpp (636 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-08-20 SHA-256: ce6b5610a051ec6795fa11c33854abebb086f0fd67c311f5921c3c07f9531b44 (json.hpp), 35ee642558b90e2f9bc758995c4788c4b4d4dec54eef95fb8f38cb4d49c8fc7c (include.zip)

"},{"location":"home/releases/#summary_9","title":"Summary","text":"

This release introduces a SAX interface to the library. While this may be a very special feature used by only few people, it allowed to unify all functions that consumed input and created some kind of JSON value. Internally, now all existing functions like parse, accept, from_cbor, from_msgpack, and from_ubjson use the SAX interface with different event processors. This allowed to separate the input processing from the value generation. Furthermore, throwing an exception in case of a parse error is now optional and up to the event processor. Finally, the JSON parser is now non-recursive (meaning it does not use the call stack, but std::vector<bool> to track the hierarchy of structured values) which allows to process nested input more efficiently.

Furthermore, the library finally is able to parse from wide string types. This is the first step toward opening the library from UTF-8 to UTF-16 and UTF-32.

This release further fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_5","title":"New Features","text":"
  • added a parser with a SAX interface (#971, #1153)
  • support to parse from wide string types std::wstring, std::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)
"},{"location":"home/releases/#bug-fixes_9","title":"Bug Fixes","text":"
  • 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 accidentally skipped unit tests (#1176)
  • fixed MSVC issue with std::swap (#1168)
"},{"location":"home/releases/#improvements_6","title":"Improvements","text":"
  • 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)
"},{"location":"home/releases/#further-changes_8","title":"Further Changes","text":"
  • changed issue templates
  • improved continuous integration: added builders for Xcode 9.3 and 9.4, added builders for GCC 8 and Clang 6, added builder for MinGW, added builders for MSVC targeting x86
  • required CMake version is now at least 3.8 (#1040)
  • overworked CMake file wrt. packaging (#1048)
  • added package managers: Spack (#1041) and CocoaPods (#1148)
  • fixed Meson include directory (#1142)
  • preprocessor macro JSON_SKIP_UNSUPPORTED_COMPILER_CHECK can skip the rejection of unsupported compilers - use at your own risk! (#1128)
  • preprocessor macro JSON_INTERNAL_CATCH/JSON_INTERNAL_CATCH_USER allows to control the behavior of exception handling inside the library (#1187)
  • added note on char to JSON conversion
  • added note how to send security-related issue via encrypted email
  • removed dependency to std::stringstream (#1117)
  • added SPDX-License-Identifier
  • added updated JSON Parsing Test Suite, described in Parsing JSON is a Minefield \ud83d\udca3
  • updated to Catch 1.12.0
"},{"location":"home/releases/#deprecated-functions_9","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v312","title":"v3.1.2","text":"

Files

  • include.zip (115 KB)
  • include.zip.asc (1 KB)
  • json.hpp (582 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-03-14 SHA-256: fbdfec4b4cf63b3b565d09f87e6c3c183bdd45c5be1864d3fcb338f6f02c1733 (json.hpp), 495362ee1b9d03d9526ba9ccf1b4a9c37691abe3a642ddbced13e5778c16660c (include.zip)

"},{"location":"home/releases/#summary_10","title":"Summary","text":"

This release fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_10","title":"Bug Fixes","text":"
  • Fixed a memory leak occurring in the parser callback (#1001).
  • Different specializations of basic_json (e.g., using different template arguments for strings or objects) can now be used in assignments (#972, #977, #986).
  • Fixed a logical error in an iterator range check (#992).
"},{"location":"home/releases/#improvements_7","title":"Improvements","text":"
  • The parser and the serialization now support user-defined string types (#1006, #1009).
"},{"location":"home/releases/#further-changes_9","title":"Further Changes","text":"
  • Clang Analyzer is now used as additional static analyzer; see make clang_analyze.
  • Overworked README by adding links to the documentation (#981).
"},{"location":"home/releases/#deprecated-functions_10","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v311","title":"v3.1.1","text":"

Files

  • include.zip (114 KB)
  • include.zip.asc (1 KB)
  • json.hpp (577 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-02-13 SHA-256: e14ce5e33d6a2daf748026bd4947f3d9686ca4cfd53d10c3da46a0a9aceb7f2e (json.hpp), fde771d4b9e4f222965c00758a2bdd627d04fb7b59e09b7f3d1965abdc848505 (include.zip)

"},{"location":"home/releases/#summary_11","title":"Summary","text":"

This release fixes several bugs in the library. All changes are backward-compatible.

"},{"location":"home/releases/#bug-fixes_11","title":"Bug Fixes","text":"
  • Fixed parsing of CBOR strings with indefinite length (#961). Earlier versions of this library misinterpreted the CBOR standard and rejected input with the 0x7F start byte.
  • Fixed user-defined conversion to vector type (#924, #969). A wrong SFINAE check rejected code though a user-defined conversion was provided.
  • Fixed documentation of the parser behavior for objects with duplicate keys (#963). The exact behavior is not specified by RFC 8259 and the library now also provides no guarantee which object key is stored.
  • Added check to detect memory overflow when parsing UBJSON containers (#962). The optimized UBJSON format allowed for specifying an array with billions of null elements with a few bytes and the library did not check whether this size exceeded max_size().
"},{"location":"home/releases/#further-changes_10","title":"Further Changes","text":"
  • Code coverage is now calculated for the individual header files, allowing to find uncovered lines more quickly than by browsing through the single header version (#953, #957).
  • A Makefile target run_benchmarks was added to quickly build and run the benchmark suite.
  • The documentation was harmonized with respect to the header inclusion (#955). Now all examples and the README use #include <nlohmann/json.hpp> to allow for selecting single_include or include or whatever installation folder as include directory.
  • Added note on how to use the library with the cget package manager (#954).
"},{"location":"home/releases/#deprecated-functions_11","title":"Deprecated functions","text":"

This release does not deprecate any functions. As an overview, the following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0):

  • Function iterator_wrapper are deprecated. Please use the member function items() instead.
  • Functions friend std::istream& operator<<(basic_json&, std::istream&) and friend std::ostream& operator>>(const basic_json&, std::ostream&) are deprecated. Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.
"},{"location":"home/releases/#v310","title":"v3.1.0","text":"

Files

  • include.zip (114 KB)
  • include.zip.asc (1 KB)
  • json.hpp (577 KB)
  • json.hpp.asc (1 KB)

Release date: 2018-02-01 SHA-256: d40f614d10a6e4e4e80dca9463da905285f20e93116c36d97d4dc1aa63d10ba4 (json.hpp), 2b7234fca394d1e27b7e017117ed80b7518fafbb4f4c13a7c069624f6f924673 (include.zip)

"},{"location":"home/releases/#summary_12","title":"Summary","text":"

This release adds support for the UBJSON format and JSON Merge Patch. It also contains some minor changes and bug fixes. All changes are backward-compatible.

"},{"location":"home/releases/#new-features_6","title":"New features","text":"
  • The library now supports UBJSON (Universal Binary JSON Specification) as binary format to read and write JSON values space-efficiently. See the documentation overview for a comparison of the different formats CBOR, MessagePack, and UBJSON.
  • JSON Merge Patch (RFC 7386) offers an intuitive means to describe patches between JSON values (#876, #877). See the documentation of merge_patch for more information.
"},{"location":"home/releases/#improvements_8","title":"Improvements","text":"
  • The library now uses the Grisu2 algorithm for printing floating-point numbers (based on the reference implementation by Florian Loitsch) which produces a short representation which is guaranteed to round-trip (#360, #935, #936).
  • The UTF-8 handling was further simplified by using the decoder of Bj\u00f6rn Hoehrmann in more scenarios.
"},{"location":"home/releases/#reorganization","title":"Reorganization","text":"
  • Though the library is released as a single header, its development got more and more complicated. With this release, the header is split into several files and the single-header file json.hpp can be generated from these development sources. In the repository, folder include contains the development sources and single_include contains the single json.hpp header (#700, #906, #907, #910, #911, #915, #920, #924, #925, #928, #944).
  • The split further allowed for a forward declaration header include/nlohmann/json_fwd.hpp to speed up compilation times (#314).
"},{"location":"home/releases/#further-changes_11","title":"Further changes","text":"
  • Google Benchmark is now used for micro benchmarks (see benchmarks folder, #921).
  • The serialization (JSON and binary formats) now properly work with the libraries string template parameter, allowing for optimized string implementations to be used in constraint environments such as embedded software (#941, #950).
  • The exceptional behavior can now be overridden by defining macros JSON_THROW_USER, JSON_TRY_USER, and JSON_CATCH_USER, defining the behavior of throw, try and catch, respectively. This allows to switch off C++'s exception mechanism yet still execute user-defined code in case an error condition occurs (#938).
  • To facilitate the interplay with flex and Bison, the library does not use the variable name yytext any more as it could clash with macro definitions (#933).
  • The library now defines NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR, and NLOHMANN_JSON_VERSION_PATCH to allow for conditional compilation based on the included library version (#943, #948).
  • A compilation error with ICC has been fixed (#947).
  • Typos and links in the documentation have been fixed (#900, #930).
  • A compiler error related to incomplete types has been fixed (#919).
  • The tests form the UTF-8 decoder stress test have been added to the test suite.
"},{"location":"home/releases/#deprecated-functions_12","title":"Deprecated functions","text":"
  • Function iterator_wrapper has been deprecated (#874). Since its introduction, the name was up for discussion, as it was too technical. We now introduced the member function items() with the same semantics. iterator_wrapper will be removed in the next major version (i.e., 4.0.0).

Furthermore, the following functions are deprecated since version 3.0.0 and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#v301","title":"v3.0.1","text":"

Files

  • json.hpp (502 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-12-29 SHA-256: c9b3591f1bb94e723a0cd7be861733a3a555b234ef132be1e9027a0364118c4c

"},{"location":"home/releases/#summary_13","title":"Summary","text":"

This release fixes small issues in the implementation of JSON Pointer and JSON Patch. All changes are backward-compatible.

"},{"location":"home/releases/#changes","title":"Changes","text":"
  • The \"copy\" operation of JSON Patch (RFC 6902) requests that it is an error if the target path points into a non-existing array or object (see #894 for a detailed description). This release fixes the implementation to detect such invalid target paths and throw an exception.
  • An array index in a JSON Pointer (RFC 6901) must be an integer. This release fixes the implementation to throw an exception in case invalid array indices such as 10e2 are used.
  • Added the JSON Patch tests from Byron Ruth and Mike McCabe.
  • Fixed the documentation of the at(ptr) function with JSON Pointers to list all possible exceptions (see #888).
  • Updated the container overview documentation (see #883).
  • The CMake files now respect the BUILD_TESTING option (see #846, #885)
  • Fixed some compiler warnings (see #858, #882).
"},{"location":"home/releases/#deprecated-functions_13","title":"Deprecated functions","text":"

To unify the interfaces and to improve similarity with the STL, the following functions are deprecated since version 3.0.0 and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#v300","title":"v3.0.0","text":"

Files

  • json.hpp (501 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-12-17 SHA-256: 076d4a0cb890a3c3d389c68421a11c3d77c64bd788e85d50f1b77ed252f2a462

"},{"location":"home/releases/#summary_14","title":"Summary","text":"

After almost a year, here is finally a new release of JSON for Modern C++, and it is a major one! As we adhere to semantic versioning, this means the release includes some breaking changes, so please read the next section carefully before you update. But don't worry, we also added a few new features and put a lot of effort into fixing a lot of bugs and straighten out a few inconsistencies.

"},{"location":"home/releases/#breaking-changes","title":"Breaking changes","text":"

This section describes changes that change the public API of the library and may require changes in code using a previous version of the library. In section \"Moving from 2.x.x to 3.0.0\" at the end of the release notes, we describe in detail how existing code needs to be changed.

  • The library now uses user-defined exceptions instead of re-using those defined in <stdexcept> (#244). This not only allows to add more information to the exceptions (every exception now has an identifier, and parse errors contain the position of the error), but also to easily catch all library exceptions with a single catch(json::exception).
  • When strings with a different encoding as UTF-8 were stored in JSON values, their serialization could not be parsed by the library itself, as only UTF-8 is supported. To enforce this library limitation and improve consistency, non-UTF-8 encoded strings now yield a json::type_error exception during serialization (#838). The check for valid UTF-8 is realized with code from Bj\u00f6rn Hoehrmann.
  • NaN and infinity values can now be stored inside the JSON value without throwing an exception. They are, however, still serialized as null (#388).
  • The library's iterator tag was changed from RandomAccessIterator to BidirectionalIterator (#593). Supporting RandomAccessIterator was incorrect as it assumed an ordering of values in a JSON objects which are unordered by definition.
  • The library does not include the standard headers <iostream>, <ctype>, and <stdexcept> any more. You may need to add these headers to code relying on them.
  • Removed constructor explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) which was deprecated in version 2.0.0 (#480).
"},{"location":"home/releases/#deprecated-functions_14","title":"Deprecated functions","text":"

To unify the interfaces and to improve similarity with the STL, the following functions are now deprecated and will be removed in the next major version (i.e., 4.0.0):

  • friend std::istream& operator<<(basic_json&, std::istream&)
  • friend std::ostream& operator>>(const basic_json&, std::ostream&)

Please use friend std::istream& operator>>(std::istream&, basic_json&) and friend operator<<(std::ostream&, const basic_json&) instead.

"},{"location":"home/releases/#new-features_7","title":"New features","text":"

With all this breaking and deprecation out of the way, let's talk about features!

  • We improved the diagnostic information for syntax errors (#301). Now, an exception json::parse_error is thrown which contains a detailed message on the error, but also a member byte to indicate the byte offset in the input where the error occurred.
  • We added a non-throwing syntax check (#458): The new accept function returns a Boolean indicating whether the input is proper JSON. We also added a Boolean parameter allow_exceptions to the existing parse functions to return a discarded value in case a syntax error occurs instead of throwing an exception.
  • An update function was added to merge two JSON objects (#428). In case you are wondering: the name was inspired by Python.
  • The insert function now also supports an iterator range to add elements to an object.
  • The binary exchange formats CBOR and MessagePack can now be parsed from input streams and written to output streams (#477).
  • Input streams are now only read until the end of a JSON value instead of the end of the input (#367).
  • The serialization function dump now has two optional parameters ensure_ascii to escape all non-ASCII characters with \\uxxxx and an indent_char parameter to choose whether to indent with spaces or tabs (#654).
  • Added built-in type support for C arrays (#502), std::pair and std::tuple (#563, #614), enum and enum class (#545), std::vector<bool> (#494). Fixed support for std::valarray (#702), std::array (#553), and std::map<std::string, std::string> (#600, #607).
"},{"location":"home/releases/#further-changes_12","title":"Further changes","text":"

Furthermore, there have been a lot of changes under the hood:

  • Replaced the re2c generated scanner by a self-coded version which allows for a better modularization of the parser and better diagnostics. To test the new scanner, we added millions (8,860,608 to be exact) of unit tests to check all valid and invalid byte sequences of the Unicode standard.
  • Google's OSS-Fuzz is still constantly fuzz-testing the library and found several issues that were fixed in this release (#497, #504, #514, #516, #518, #519, #575).
  • We now also ignore UTF-8 byte order marks when parsing from an iterator range (#602).
  • Values can be now moved from initializer lists (#663).
  • Updated to Catch 1.9.7. Unfortunately, Catch2 currently has some performance issues.
  • The non-exceptional paths of the library are now annotated with __builtin_expect to optimize branch prediction as long as no error occurs.
  • MSVC now produces a stack trace in MSVC if a from_json or to_json function was not found for a user-defined type. We also added a debug visualizer nlohmann_json.natvis for better debugging in MSVC (#844).
  • Overworked the documentation and added even more examples.
  • The build workflow now relies on CMake and CTest. Special flags can be chosen with CMake, including coverage (JSON_Coverage), compilation without exceptions (JSON_NoExceptions), LLVM sanitizers (JSON_Sanitizer), or execution with Valgrind (JSON_Valgrind).
  • Added support for package managers Meson (#576), Conan (#566), Hunter (#671, #829), and vcpkg (#753).
  • Added CI builders: Xcode 8.3, 9.0, 9.1, and 9.2; GCC 7.2; Clang 3.8, 3.9, 4.0, and 5.0; Visual Studio 2017. The library is further built with C++17 settings on the latest Clang, GCC, and MSVC version to quickly detect new issues.
"},{"location":"home/releases/#moving-from-2xx-to-300","title":"Moving from 2.x.x to 3.0.0","text":""},{"location":"home/releases/#user-defined-exceptions","title":"User-defined Exceptions","text":"

There are five different exceptions inheriting from json::exception:

  • json::parse_error for syntax errors (including the binary formats),
  • json::invalid_iterator for errors related to iterators,
  • json::type_error for errors where functions were called with the wrong JSON type,
  • json::out_of_range for range errors, and
  • json::other_error for miscellaneous errors.

To support these exception, the try/catch blocks of your code need to be adjusted:

new exception previous exception parse_error.101 invalid_argument parse_error.102 invalid_argument parse_error.103 invalid_argument parse_error.104 invalid_argument parse_error.105 invalid_argument parse_error.106 domain_error parse_error.107 domain_error parse_error.108 domain_error parse_error.109 invalid_argument parse_error.110 out_of_range parse_error.111 invalid_argument parse_error.112 invalid_argument invalid_iterator.201 domain_error invalid_iterator.202 domain_error invalid_iterator.203 domain_error invalid_iterator.204 out_of_range invalid_iterator.205 out_of_range invalid_iterator.206 domain_error invalid_iterator.207 domain_error invalid_iterator.208 domain_error invalid_iterator.209 domain_error invalid_iterator.210 domain_error invalid_iterator.211 domain_error invalid_iterator.212 domain_error invalid_iterator.213 domain_error invalid_iterator.214 out_of_range type_error.301 domain_error type_error.302 domain_error type_error.303 domain_error type_error.304 domain_error type_error.305 domain_error type_error.306 domain_error type_error.307 domain_error type_error.308 domain_error type_error.309 domain_error type_error.310 domain_error type_error.311 domain_error type_error.313 domain_error type_error.314 domain_error type_error.315 domain_error out_of_range.401 out_of_range out_of_range.402 out_of_range out_of_range.403 out_of_range out_of_range.404 out_of_range out_of_range.405 domain_error other_error.501 domain_error"},{"location":"home/releases/#handling-of-nan-and-inf","title":"Handling of NaN and INF","text":"
  • If an overflow occurs during parsing a number from a JSON text, an exception json::out_of_range is thrown so that the overflow is detected early and roundtripping is guaranteed.

  • NaN and INF floating-point values can be stored in a JSON value and are not replaced by null. That is, the basic_json class behaves like double in this regard (no exception occurs). However, NaN and INF are serialized to null.

"},{"location":"home/releases/#removal-of-deprecated-functions","title":"Removal of deprecated functions","text":"

Function explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) should be replaced by the parse function: Let ss be a stream and cb be a parse callback function.

Old code:

json j(ss, cb);\n

New code:

json j = json::parse(ss, cb);\n

If no callback function is used, also the following code works:

json j;\nj << ss;\n

or

json j;\nss >> j;\n
"},{"location":"home/releases/#v211","title":"v2.1.1","text":"

Files

  • json.hpp (437 KB)
  • json.hpp.asc (1 KB)

Release date: 2017-02-25 SHA-256: faa2321beb1aa7416d035e7417fcfa59692ac3d8c202728f9bcc302e2d558f57

"},{"location":"home/releases/#summary_15","title":"Summary","text":"

This release fixes a locale-related bug in the parser. To do so, the whole number handling (lexer, parser, and also the serialization) have been overworked. Furthermore, a lot of small changes added up that were added to this release. All changes are backward-compatible.

"},{"location":"home/releases/#changes_1","title":"Changes","text":"
  • Locales that have a different character than . as decimal separator (e.g., the Norwegian locale nb_NO.UTF-8) led to truncated number parsing or parse errors. The library now has been fixed to work with any locale. Note that . is still the only valid decimal separator for JSON input.
  • Numbers like 1.0 were correctly parsed as floating-point number, but serialized as integer (1). Now, floating-point numbers correctly round trip.
  • Parsing incorrect JSON numbers with leading 0 (0123) could yield a buffer overflow. This is fixed now by detecting such errors directly by the lexer.
  • Constructing a JSON value from a pointer was incorrectly interpreted as a Boolean; such code will now yield a compiler error.
  • Comparing a JSON number with 0 led to a comparison with null. This is fixed now.
  • All throw calls are now wrapped in macros.
  • Starting during the preparation of this release (since 8 February 2017), commits and released files are cryptographically signed with this GPG key. Previous releases have also been signed.
  • The parser for MessagePack and CBOR now supports an optional start index parameter to define a byte offset for the parser.
  • Some more warnings have been fixed. With Clang, the code compiles without warnings with -Weverything (well, it needs -Wno-documentation-unknown-command and -Wno-deprecated-declarations, but you get the point).
  • The code can be compiled easier with many Android NDKs by avoiding macros like UINT8_MAX which previously required defining a preprocessor macro for compilation.
  • The unit tests now compile two times faster.
  • Cotire is used to speed up the build.
  • Fixed a lot of typos in the documentation.
  • Added a section to the README file that lists all used third-party code/tools.
  • Added a note on constructing a string value vs. parsing.
  • The test suite now contains 11202597 unit tests.
  • Improved the Doxygen documentation by shortening the template parameters of class basic_json.
  • Removed Doozer.
  • Added Codacity.
  • Upgraded Catch to version 1.7.2.
"},{"location":"home/releases/#v210","title":"v2.1.0","text":"

Files

  • json.hpp (426 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2017-01-28
  • SHA-256: a571dee92515b685784fd527e38405cf3f5e13e96edbfe3f03d6df2e363a767b
"},{"location":"home/releases/#summary_16","title":"Summary","text":"

This release introduces a means to convert from/to user-defined types. The release is backwards compatible.

"},{"location":"home/releases/#changes_2","title":"Changes","text":"
  • The library now offers an elegant way to convert from and to arbitrary value types. All you need to do is to implement two functions: to_json and from_json. Then, a conversion is as simple as putting a = between variables. See the README for more information and examples.
  • Exceptions can now be switched off. This can be done by defining the preprocessor symbol JSON_NOEXCEPTION or by passing -fno-exceptions to your compiler. In case the code would usually thrown an exception, abort() is now called.
  • Information on the library can be queried with the new (static) function meta() which returns a JSON object with information on the version, compiler, and platform. See the documentation for an example.
  • A bug in the CBOR parser was fixed which led to a buffer overflow.
  • The function type_name() is now public. It allows to query the type of a JSON value as string.
  • Added the Big List of Naughty Strings as test case.
  • Updated to Catch v1.6.0.
  • Some typos in the documentation have been fixed.
"},{"location":"home/releases/#v2010","title":"v2.0.10","text":"

Files

  • json.hpp (409 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2017-01-02
  • SHA-256: ec27d4e74e9ce0f78066389a70724afd07f10761009322dc020656704ad5296d
"},{"location":"home/releases/#summary_17","title":"Summary","text":"

This release fixes several security-relevant bugs in the MessagePack and CBOR parsers. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_3","title":"Changes","text":"
  • Fixed a lot of bugs in the CBOR and MesssagePack parsers. These bugs occurred if invalid input was parsed and then could lead in buffer overflows. These bugs were found with Google's OSS-Fuzz, see #405, #407, #408, #409, #411, and #412 for more information.
  • We now also use the Doozer continuous integration platform.
  • The complete test suite is now also run with Clang's address sanitizer and undefined-behavior sanitizer.
  • Overworked fuzz testing; CBOR and MessagePack implementations are now fuzz-tested. Furthermore, all fuzz tests now include a round trip which ensures created output can again be properly parsed and yields the same JSON value.
  • Clarified documentation of find() function to always return end() when called on non-object value types.
  • Moved thirdparty test code to test/thirdparty directory.
"},{"location":"home/releases/#v209","title":"v2.0.9","text":"

Files

  • json.hpp (406 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-12-16
  • SHA-256: fbf3396f13e187d6c214c297bddc742d918ea9b55e10bfb3d9f458b9bfdc22e5
"},{"location":"home/releases/#summary_18","title":"Summary","text":"

This release implements with CBOR and MessagePack two binary serialization/deserialization formats. It further contains some small fixes and improvements. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_4","title":"Changes","text":"
  • The library can now read and write the binary formats CBOR (Concise Binary Object Representation) and MessagePack. Both formats are aimed to produce a very compact representation of JSON which can be parsed very efficiently. See the README file for more information and examples.
  • simplified the iteration implementation allowing to remove dozens of lines of code
  • fixed an integer overflow error detected by Google's OSS-Fuzz
  • suppressed documentation warnings inside the library to facilitate compilation with -Wdocumentation
  • fixed an overflow detection error in the number parser
  • updated contribution guidelines to a list of frequentely asked features that will most likely be never added to the library
  • added a table of contents to the README file to add some structure
  • mentioned the many examples and the documentation in the README file
  • split unit tests into individual independent binaries to speed up compilation and testing
  • the test suite now contains 11201886 tests
"},{"location":"home/releases/#v208","title":"v2.0.8","text":"

Files

  • json.hpp (360 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-12-02
  • SHA-256: b70db0ad34f8e0e61dc3f0cbab88099336c9674c193d8a3439d93d6aca2d7120
"},{"location":"home/releases/#summary_19","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_5","title":"Changes","text":"
  • fixed a bug that froze the parser if a passed file was not found (now, std::invalid_argument is thrown)
  • fixed a bug that lead to an error of a file at EOF was parsed again (now, std::invalid_argument is thrown)
  • the well known functions emplace and emplace_back have been added to JSON values and work as expected
  • improved the performance of the serialization (dump function)
  • improved the performance of the deserialization (parser)
  • some continuous integration images at Travis were added and retired; see here for the current continuous integration setup
  • the Coverity scan works again
  • the benchmarking code has been improved to produce more stable results
  • the README file has been extended and includes more frequently asked examples
  • the test suite now contains 8905518 tests
  • updated Catch to version 1.5.8
"},{"location":"home/releases/#v207","title":"v2.0.7","text":"

Files

  • json.hpp (355 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-11-02
  • SHA-256: 5545c323670f8165bae90b9dc6078825e86ec310d96cc4e5b47233ea43715bbf
"},{"location":"home/releases/#summary_20","title":"Summary","text":"

This release fixes a few bugs in the JSON parser found in the Parsing JSON is a Minefield \ud83d\udca3 article. The fixes are backwards compatible.

"},{"location":"home/releases/#changes_6","title":"Changes","text":"
  • The article Parsing JSON is a Minefield \ud83d\udca3 discusses a lot of pitfalls of the JSON specification. When investigating the published test cases, a few bugs in the library were found and fixed:
  • Files with less than 5 bytes can now be parsed without error.
  • The library now properly rejects any file encoding other than UTF-8. Furthermore, incorrect surrogate pairs are properly detected and rejected.
  • The library now accepts all but one \"yes\" test (y_string_utf16.json): UTF-16 is not supported.
  • The library rejects all but one \"no\" test (n_number_then_00.json): Null bytes are treated as end of file instead of an error. This allows to parse input from null-terminated strings.
  • The string length passed to a user-defined string literal is now exploited to choose a more efficient constructor.
  • A few grammar mistakes in the README file have been fixed.
"},{"location":"home/releases/#v206","title":"v2.0.6","text":"

Files

  • json.hpp (349 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-10-15
  • SHA256: 459cc93d5e2f503e50c6d5876eb86bfea7daf405f5a567c5a2c9abc2383756ae
"},{"location":"home/releases/#summary_21","title":"Summary","text":"

This release fixes the semantics of operator[] for JSON Pointers (see below). This fix is backwards compatible.

"},{"location":"home/releases/#changes_7","title":"Changes","text":"
  • operator[] for JSON Pointers now behaves like the other versions of operator[] and transforms null values into objects or arrays if required. This allows to created nested structures like j[\"/foo/bar/2\"] = 17 (yielding {\"foo\": \"bar\": [null, null, 17]}) without problems.
  • overworked a helper SFINAE function
  • fixed some documentation issues
  • fixed the CMake files to allow to run the test suite outside the main project directory
  • restored test coverage to 100%.
"},{"location":"home/releases/#v205","title":"v2.0.5","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-09-14
  • SHA-256: 8b7565263a44e2b7d3b89808bc73d2d639037ff0c1f379e3d56dbd77e00b98d9
"},{"location":"home/releases/#summary_22","title":"Summary","text":"

This release fixes a regression bug in the stream parser (function parse() and the <</>> operators). This fix is backwards compatible.

"},{"location":"home/releases/#changes_8","title":"Changes","text":"
  • Bug fix: The end of a file stream was not detected properly which led to parse errors. This bug should have been fixed with 2.0.4, but there was still a flaw in the code.
"},{"location":"home/releases/#v204","title":"v2.0.4","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-09-11
  • SHA-256: 632ceec4c25c4e2153f71470d3a2b992c8355f6d8b4d627d05dd16095cd3aeda
"},{"location":"home/releases/#summary_23","title":"Summary","text":"

This release fixes a bug in the stream parser (function parse() and the <</>> operators). This fix is backwards compatible.

"},{"location":"home/releases/#changes_9","title":"Changes","text":"
  • Bug fix: The end of a file stream was not detected properly which led to parse errors.
  • Fixed a compiler warning about an unused variable.
"},{"location":"home/releases/#v203","title":"v2.0.3","text":"

Files

  • json.hpp (347 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-08-31
  • SHA-256: 535b73efe5546fde9e763c14aeadfc7b58183c0b3cd43c29741025aba6cf6bd3
"},{"location":"home/releases/#summary_24","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The release is backwards compatible.

"},{"location":"home/releases/#changes_10","title":"Changes","text":"
  • The parser/deserialization functions have been generalized to process any contiguous sequence of 1-byte elements (e.g., char, unsigned char, uint8_t). This includes all kind of string representations (string literals, char arrays, std::string, const char*), contiguous containers (C-style arrays, std::vector, std::array, std::valarray, std::initializer_list). User-defined containers providing random-access iterator access via std::begin and std::end can be used as well. See the documentation (1, 2, 3, 4) for more information. Note that contiguous storage cannot be checked at compile time; if any of the parse functions are called with a noncompliant container, the behavior is undefined and will most likely yield segmentation violation. The preconditions are enforced by an assertion unless the library is compiled with preprocessor symbol NDEBUG.
  • As a general remark on assertions: The library uses assertions to preclude undefined behavior. A prominent example for this is the operator[] for const JSON objects. The behavior of this const version of the operator is undefined if the given key does not exist in the JSON object, because unlike the non-const version, it cannot add a null value at the given key. Assertions can be switched of by defining the preprocessor symbol NDEBUG. See the documentation of assert for more information.
  • In the course of cleaning up the parser/deserialization functions, the constructor basic_json(std::istream&, const parser_callback_t) has been deprecated and will be deleted with the next major release 3.0.0 to unify the interface of the library. Deserialization will be done by stream operators or by calling one of the parse functions. That is, calls like json j(i); for an input stream i need to be replaced by json j = json::parse(i);. Compilers will produce a deprecation warning if client code uses this function.
  • Minor improvements:
  • Improved the performance of the serialization by avoiding the re-creation of a locale object.
  • Fixed two MSVC warnings. Compiling the test suite with /Wall now only warns about non-inlined functions (C4710) and the deprecation of the constructor from input-stream (C4996).
  • Some project internals:
  • The project has qualified for the Core Infrastructure Initiative Best Practices Badge. While most requirements where already satisfied, some led to a more explicit documentation of quality-ensuring procedures. For instance, static analysis is now executed with every commit on the build server. Furthermore, the contribution guidelines document how to communicate security issues privately.
  • The test suite has been overworked and split into several files to allow for faster compilation and analysis. The execute the test suite, simply execute make check.
  • The continuous integration with Travis was extended with Clang versions 3.6.0 to 3.8.1 and now includes 18 different compiler/OS combinations.
  • An 11-day run of American fuzzy lop checked 962 million inputs on the parser and found no issue.
"},{"location":"home/releases/#v202","title":"v2.0.2","text":"

Files

  • json.hpp (338 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-07-31
  • SHA-256: 8e97b7965b4594b00998d6704465412360e1a0ed927badb51ded8b82291a8f3d
"},{"location":"home/releases/#summary_25","title":"Summary","text":"

This release combines a lot of small fixes and improvements. The release is backwards compatible.

"},{"location":"home/releases/#changes_11","title":"Changes","text":"
  • The parser has been overworked, and a lot of small issues have been fixed:
  • Improved parser performance by avoiding recursion and using move semantics for the return value.
  • Unescaped control characters \\x10-\\x1f are not accepted any more.
  • Fixed a bug in the parser when reading from an input stream.
  • Improved test case coverage for UTF-8 parsing: now, all valid Unicode code points are tested both escaped and unescaped.
  • The precision of output streams is now preserved by the parser.
  • Started to check the code correctness by proving termination of important loops. Furthermore, individual assertions have been replaced by a more systematic function which checks the class invariants. Note that assertions should be switched off in production by defining the preprocessor macro NDEBUG, see the documentation of assert.
  • A lot of code cleanup: removed unused headers, fixed some compiler warnings, and fixed a build error for Windows-based Clang builds.
  • Added some compile-time checks:
  • Unsupported compilers are rejected during compilation with an #error command.
  • Static assertion prohibits code with incompatible pointer types used in get_ptr().
  • Improved the documentation, and adjusted the documentation script to choose the correct version of sed.
  • Replaced a lot of \"raw loops\" by STL functions like std::all_of, std::for_each, or std::accumulate. This facilitates reasoning about termination of loops and sometimes allowed to simplify functions to a single return statement.
  • Implemented a value() function for JSON pointers (similar to at function).
  • The Homebrew formula (see Integration) is now tested for all Xcode builds (6.1 - 8.x) with Travis.
  • Avoided output to std::cout in the test cases.
"},{"location":"home/releases/#v201","title":"v2.0.1","text":"

Files

  • json.hpp (321 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-06-28
  • SHA-256: ef550fcd7df572555bf068e9ec4e9d3b9e4cdd441cecb0dcea9ea7fd313f72dd
"},{"location":"home/releases/#summary_26","title":"Summary","text":"

This release fixes a performance regression in the JSON serialization (function dump()). This fix is backwards compatible.

"},{"location":"home/releases/#changes_12","title":"Changes","text":"
  • The locale of the output stream (or the internal string stream if a JSON value is serialized to a string) is now adjusted once for the whole serialization instead of for each floating-point number.
  • The locale of an output stream is now correctly reset to the previous value by the JSON library.
"},{"location":"home/releases/#v200","title":"v2.0.0","text":"

Files

  • json.hpp (321 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-06-24
  • SHA-256: ac9e1fb25c2ac9ca5fc501fcd2fe3281fe04f07018a1b48820e7b1b11491bb6c
"},{"location":"home/releases/#summary_27","title":"Summary","text":"

This release adds several features such as JSON Pointers, JSON Patch, or support for 64 bit unsigned integers. Furthermore, several (subtle) bugs have been fixed.

As noexcept and constexpr specifier have been added to several functions, the public API has effectively been changed in a (potential) non-backwards compatible manner. As we adhere to Semantic Versioning, this calls for a new major version, so say hello to 2\ufe0f\u20e3.0\ufe0f\u20e3.0\ufe0f\u20e3.

"},{"location":"home/releases/#changes_13","title":"Changes","text":"
  • \ud83d\udd1f A JSON value now uses uint64_t (default value for template parameter NumberUnsignedType) as data type for unsigned integer values. This type is used automatically when an unsigned number is parsed. Furthermore, constructors, conversion operators and an is_number_unsigned() test have been added.
  • \ud83d\udc49 JSON Pointer (RFC 6901) support: A JSON Pointer is a string (similar to an XPath expression) to address a value inside a structured JSON value. JSON Pointers can be used in at() and operator[] functions. Furthermore, JSON values can be \u201cflattened\u201d to key/value pairs using flatten() where each key is a JSON Pointer. The original value can be restored by \u201cunflattening\u201d the flattened value using unflatten().
  • \ud83c\udfe5 JSON Patch (RFC 6902) support. A JSON Patch is a JSON value that describes the required edit operations (add, change, remove, \u2026) to transform a JSON value into another one. A JSON Patch can be created with function diff(const basic_json&) and applied with patch(const basic_json&). Note the created patches use a rather primitive algorithm so far and leave room for improvement.
  • \ud83c\uddea\ud83c\uddfa The code is now locale-independent: Floating-point numbers are always serialized with a period (.) as decimal separator and ignores different settings from the locale.
  • \ud83c\udf7a Homebrew support: Install the library with brew tap nlohmann/json && brew install nlohmann_json.
  • Added constructor to create a JSON value by parsing a std::istream (e.g., std::stringstream or std::ifstream).
  • Added noexcept specifier to basic_json(boolean_t), basic_json(const number_integer_t), basic_json(const int), basic_json(const number_float_t), iterator functions (begin(), end(), etc.)
  • When parsing numbers, the sign of 0.0 (vs. -0.0) is preserved.
  • Improved MSVC 2015, Android, and MinGW support. See README for more information.
  • Improved test coverage (added 2,225,386 tests).
  • Removed some misuses of std::move.
  • Fixed several compiler warnings.
  • Improved error messages from JSON parser.
  • Updated to re2c to version 0.16 to use a minimal DFAs for the lexer.
  • Updated test suite to use Catch version 1.5.6.
  • Made type getters (is_number, etc.) and const value access constexpr.
  • Functions push_back and operator+= now work with key/value pairs passed as initializer list, e.g. j_object += {\"key\", 1}.
  • Overworked CMakeLists.txt to make it easier to integrate the library into other projects.
"},{"location":"home/releases/#notes","title":"Notes","text":"
  • Parser error messages are still very vague and contain no information on the error location.
  • The implemented diff function is rather primitive and does not create minimal diffs.
  • The name of function iteration_wrapper may change in the future and the function will be deprecated in the next release.
  • Roundtripping (i.e., parsing a JSON value from a string, serializing it, and comparing the strings) of floating-point numbers is not 100% accurate. Note that RFC 8259 defines no format to internally represent numbers and states not requirement for roundtripping. Nevertheless, benchmarks like Native JSON Benchmark treat roundtripping deviations as conformance errors.
"},{"location":"home/releases/#v110","title":"v1.1.0","text":"

Files

  • json.hpp (257 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2016-01-24
  • SHA-256: c0cf0e3017798ca6bb18e757ebc570d21a3bdac877845e2b9e9573d183ed2f05
"},{"location":"home/releases/#summary_28","title":"Summary","text":"

This release fixes several small bugs and adds functionality in a backwards-compatible manner. Compared to the last version (1.0.0), the following changes have been made:

"},{"location":"home/releases/#changes_14","title":"Changes","text":"
  • Fixed: Floating-point numbers are now serialized and deserialized properly such that rountripping works in more cases. [#185, #186, #190, #191, #194]
  • Added: The code now contains assertions to detect undefined behavior during development. As the standard function assert is used, the assertions can be switched off by defining the preprocessor symbol NDEBUG during compilation. [#168]
  • Added: It is now possible to get a reference to the stored values via the newly added function get_ref(). [#128, #184]
  • Fixed: Access to object values via keys (operator[]) now works with all kind of string representations. [#171, #189]
  • Fixed: The code now compiles again with Microsoft Visual Studio 2015. [#144, #167, #188]
  • Fixed: All required headers are now included.
  • Fixed: Typos and other small issues. [#162, #166, #175, #177, #179, #180]
"},{"location":"home/releases/#notes_1","title":"Notes","text":"

There are still known open issues (#178, #187) which will be fixed in version 2.0.0. However, these fixes will require a small API change and will not be entirely backwards-compatible.

"},{"location":"home/releases/#v100","title":"v1.0.0","text":"

Files

  • json.hpp (243 KB)
  • json.hpp.asc (1 KB)
  • Release date: 2015-12-28
  • SHA-256: 767dc2fab1819d7b9e19b6e456d61e38d21ef7182606ecf01516e3f5230446de
"},{"location":"home/releases/#summary_29","title":"Summary","text":"

This is the first official release. Compared to the prerelease version 1.0.0-rc1, only a few minor improvements have been made:

"},{"location":"home/releases/#changes_15","title":"Changes","text":"
  • Changed: A UTF-8 byte order mark is silently ignored.
  • Changed: sprintf is no longer used.
  • Changed: iterator_wrapper also works for const objects; note: the name may change!
  • Changed: Error messages during deserialization have been improved.
  • Added: The parse function now also works with type std::istream&&.
  • Added: Function value(key, default_value) returns either a copy of an object's element at the specified key or a given default value if no element with the key exists.
  • Added: Public functions are tagged with the version they were introduced. This shall allow for better versioning in the future.
  • Added: All public functions and types are documented (see http://nlohmann.github.io/json/doxygen/) including executable examples.
  • Added: Allocation of all types (in particular arrays, strings, and objects) is now exception-safe.
  • Added: They descriptions of thrown exceptions have been overworked and are part of the tests suite and documentation.
"},{"location":"home/sponsors/","title":"Sponsors","text":"

You can sponsor this library at GitHub Sponsors.

"},{"location":"home/sponsors/#named-sponsors","title":"Named Sponsors","text":"
  • Michael Hartmann
  • Stefan Hagen
  • Steve Sperandeo
  • Robert Jefe Lindst\u00e4dt
  • Steve Wagner

Thanks everyone!

"},{"location":"integration/","title":"Header only","text":"

json.hpp is the single required file in single_include/nlohmann or released here. You need to add

#include <nlohmann/json.hpp>\n\n// for convenience\nusing json = nlohmann::json;\n

to the files you want to process JSON and set the necessary switches to enable C++11 (e.g., -std=c++11 for GCC and Clang).

You can further use file single_include/nlohmann/json_fwd.hpp for forward declarations.

"},{"location":"integration/cmake/","title":"CMake","text":""},{"location":"integration/cmake/#integration","title":"Integration","text":"

You can use the nlohmann_json::nlohmann_json interface target in CMake. This target populates the appropriate usage requirements for INTERFACE_INCLUDE_DIRECTORIES to point to the appropriate include directories and INTERFACE_COMPILE_FEATURES for the necessary C++11 flags.

"},{"location":"integration/cmake/#external","title":"External","text":"

To use this library from a CMake project, you can locate it directly with find_package() and use the namespaced imported target from the generated package configuration:

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.1)\nproject(ExampleProject LANGUAGES CXX)\n\nfind_package(nlohmann_json 3.11.3 REQUIRED)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

The package configuration file, nlohmann_jsonConfig.cmake, can be used either from an install tree or directly out of the build tree.

"},{"location":"integration/cmake/#embedded","title":"Embedded","text":"

To embed the library directly into an existing CMake project, place the entire source tree in a subdirectory and call add_subdirectory() in your CMakeLists.txt file.

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.1)\nproject(ExampleProject LANGUAGES CXX)\n\n# If you only include this third party in PRIVATE source files, you do not need to install it\n# when your main project gets installed.\nset(JSON_Install OFF CACHE INTERNAL \"\")\n\nadd_subdirectory(nlohmann_json)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

Note

Do not use include(nlohmann_json/CMakeLists.txt), since that carries with it unintended consequences that will break the build. It is generally discouraged (although not necessarily well documented as such) to use include(...) for pulling in other CMake projects anyways.

"},{"location":"integration/cmake/#supporting-both","title":"Supporting Both","text":"

To allow your project to support either an externally supplied or an embedded JSON library, you can use a pattern akin to the following.

Example

CMakeLists.txt
project(ExampleProject LANGUAGES CXX)\n\noption(EXAMPLE_USE_EXTERNAL_JSON \"Use an external JSON library\" OFF)\n\nadd_subdirectory(thirdparty)\n\nadd_executable(example example.cpp)\n\n# Note that the namespaced target will always be available regardless of the import method\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n
thirdparty/CMakeLists.txt
if(EXAMPLE_USE_EXTERNAL_JSON)\n    find_package(nlohmann_json 3.11.3 REQUIRED)\nelse()\n    set(JSON_BuildTests OFF CACHE INTERNAL \"\")\n    add_subdirectory(nlohmann_json)\nendif()\n

thirdparty/nlohmann_json is then a complete copy of this source tree.

"},{"location":"integration/cmake/#fetchcontent","title":"FetchContent","text":"

Since CMake v3.11, FetchContent can be used to automatically download a release as a dependency at configure type.

Example

CMakeLists.txt
cmake_minimum_required(VERSION 3.11)\nproject(ExampleProject LANGUAGES CXX)\n\ninclude(FetchContent)\n\nFetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz)\nFetchContent_MakeAvailable(json)\n\nadd_executable(example example.cpp)\ntarget_link_libraries(example PRIVATE nlohmann_json::nlohmann_json)\n

Note

It is recommended to use the URL approach described above which is supported as of version 3.10.0. It is also possible to pass the Git repository like

FetchContent_Declare(json\n    GIT_REPOSITORY https://github.com/nlohmann/json\n    GIT_TAG v3.11.3\n)\n

However, the repository https://github.com/nlohmann/json download size is quite large. You might want to depend on a smaller repository. For instance, you might want to replace the URL in the example by https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent.

"},{"location":"integration/cmake/#cmake-options","title":"CMake Options","text":""},{"location":"integration/cmake/#json_buildtests","title":"JSON_BuildTests","text":"

Build the unit tests when BUILD_TESTING is enabled. This option is ON by default if the library's CMake project is the top project. That is, when integrating the library as described above, the test suite is not built unless explicitly switched on with this option.

"},{"location":"integration/cmake/#json_ci","title":"JSON_CI","text":"

Enable CI build targets. The exact targets are used during the several CI steps and are subject to change without notice. This option is OFF by default.

"},{"location":"integration/cmake/#json_diagnostics","title":"JSON_Diagnostics","text":"

Enable extended diagnostic messages by defining macro JSON_DIAGNOSTICS. This option is OFF by default.

"},{"location":"integration/cmake/#json_disableenumserialization","title":"JSON_DisableEnumSerialization","text":"

Disable default enum serialization by defining the macro JSON_DISABLE_ENUM_SERIALIZATION. This option is OFF by default.

"},{"location":"integration/cmake/#json_fasttests","title":"JSON_FastTests","text":"

Skip expensive/slow test suites. This option is OFF by default. Depends on JSON_BuildTests.

"},{"location":"integration/cmake/#json_globaludls","title":"JSON_GlobalUDLs","text":"

Place user-defined string literals in the global namespace by defining the macro JSON_USE_GLOBAL_UDLS. This option is OFF by default.

"},{"location":"integration/cmake/#json_implicitconversions","title":"JSON_ImplicitConversions","text":"

Enable implicit conversions by defining macro JSON_USE_IMPLICIT_CONVERSIONS. This option is ON by default.

"},{"location":"integration/cmake/#json_install","title":"JSON_Install","text":"

Install CMake targets during install step. This option is ON by default if the library's CMake project is the top project.

"},{"location":"integration/cmake/#json_multipleheaders","title":"JSON_MultipleHeaders","text":"

Use non-amalgamated version of the library. This option is OFF by default.

"},{"location":"integration/cmake/#json_systeminclude","title":"JSON_SystemInclude","text":"

Treat the library headers like system headers (i.e., adding SYSTEM to the target_include_directories call) to checks for this library by tools like Clang-Tidy. This option is OFF by default.

"},{"location":"integration/cmake/#json_valgrind","title":"JSON_Valgrind","text":"

Execute test suite with Valgrind. This option is OFF by default. Depends on JSON_BuildTests.

"},{"location":"integration/migration_guide/","title":"Migration Guide","text":"

This page collects some guidelines on how to future-proof your code for future versions of this library.

"},{"location":"integration/migration_guide/#replace-deprecated-functions","title":"Replace deprecated functions","text":"

The following functions have been deprecated and will be removed in the next major version (i.e., 4.0.0). All deprecations are annotated with HEDLEY_DEPRECATED_FOR to report which function to use instead.

"},{"location":"integration/migration_guide/#parsing","title":"Parsing","text":"
  • Function friend std::istream& operator<<(basic_json&, std::istream&) is deprecated since 3.0.0. Please use friend std::istream& operator>>(std::istream&, basic_json&) instead.

    DeprecatedFuture-proof
    nlohmann::json j;\nstd::stringstream ss(\"[1,2,3]\");\nj << ss;\n
    nlohmann::json j;\nstd::stringstream ss(\"[1,2,3]\");\nss >> j;\n
  • Passing iterator pairs or pointer/length pairs to parsing functions (parse, accept, sax_parse, from_cbor, from_msgpack, from_ubjson, and from_bson via initializer lists is deprecated since 3.8.0. Instead, pass two iterators; for instance, call from_cbor(ptr, ptr+len) instead of from_cbor({ptr, len}).

    DeprecatedFuture-proof
    const char* s = \"[1,2,3]\";\nbool ok = nlohmann::json::accept({s, s + std::strlen(s)});\n
    const char* s = \"[1,2,3]\";\nbool ok = nlohmann::json::accept(s, s + std::strlen(s));\n
"},{"location":"integration/migration_guide/#json-pointers","title":"JSON Pointers","text":"
  • Comparing JSON Pointers with strings via operator== and operator!= is deprecated since 3.11.2. To compare a json_pointer p with a string s, convert s to a json_pointer first and use json_pointer::operator== or json_pointer::operator!=.

    DeprecatedFuture-proof
    nlohmann::json::json_pointer lhs(\"/foo/bar/1\");\nassert(lhs == \"/foo/bar/1\");\n
    nlohmann::json::json_pointer lhs(\"/foo/bar/1\");\nassert(lhs == nlohmann::json::json_pointer(\"/foo/bar/1\"));\n
  • The implicit conversion from JSON Pointers to string (json_pointer::operator string_t) is deprecated since 3.11.0. Use json_pointer::to_string instead.

    DeprecatedFuture-proof
    nlohmann::json::json_pointer ptr(\"/foo/bar/1\");\nstd::string s = ptr;\n
    nlohmann::json::json_pointer ptr(\"/foo/bar/1\");\nstd::string s = ptr.to_string();\n
  • Passing a basic_json specialization as template parameter RefStringType to json_pointer is deprecated since 3.11.0. The string type can now be directly provided.

    DeprecatedFuture-proof
    using my_json = nlohmann::basic_json<std::map, std::vector, my_string_type>;\nnlohmann::json_pointer<my_json> ptr(\"/foo/bar/1\");\n
    nlohmann::json_pointer<my_string_type> ptr(\"/foo/bar/1\");\n

    Thereby, nlohmann::my_json::json_pointer is an alias for nlohmann::json_pointer<my_string_type> and is always an alias to the json_pointer with the appropriate string type for all specializations of basic_json.

"},{"location":"integration/migration_guide/#miscellaneous-functions","title":"Miscellaneous functions","text":"
  • The function iterator_wrapper is deprecated since 3.1.0. Please use the member function items instead.

    DeprecatedFuture-proof
    for (auto &x : nlohmann::json::iterator_wrapper(j))\n{\n    std::cout << x.key() << \":\" << x.value() << std::endl;\n}\n
    for (auto &x : j.items())\n{\n    std::cout << x.key() << \":\" << x.value() << std::endl;\n}\n
  • Function friend std::ostream& operator>>(const basic_json&, std::ostream&) is deprecated since 3.0.0. Please use friend operator<<(std::ostream&, const basic_json&) instead.

    DeprecatedFuture-proof
    j >> std::cout;\n
    std::cout << j;\n
  • The legacy comparison behavior for discarded values is deprecated since 3.11.0. It is already disabled by default and can still be enabled by defining JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON to 1.

    DeprecatedFuture-proof
    #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 1\n#include <nlohmann/json.hpp>\n
    #include <nlohmann/json.hpp>\n
"},{"location":"integration/migration_guide/#replace-implicit-conversions","title":"Replace implicit conversions","text":"

Implicit conversions via operator ValueType will be switched off by default in the next major release of the library.

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get, get_to, get_ref, or get_ptr.

DeprecatedFuture-proofFuture-proof (alternative)
nlohmann::json j = \"Hello, world!\";\nstd::string s = j;\n
nlohmann::json j = \"Hello, world!\";\nauto s = j.template get<std::string>();\n
nlohmann::json j = \"Hello, world!\";\nstd::string s;\nj.get_to(s);\n

You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS to 0 and replace any implicit conversions with calls to get.

"},{"location":"integration/migration_guide/#import-namespace-literals-for-udls","title":"Import namespace literals for UDLs","text":"

The user-defined string literals operator\"\"_json and operator\"\"_json_pointer will be removed from the global namespace in the next major release of the library.

DeprecatedFuture-proof
nlohmann::json j = \"[1,2,3]\"_json;\n
using namespace nlohmann::literals;\nnlohmann::json j = \"[1,2,3]\"_json;\n

To prepare existing code, define JSON_USE_GLOBAL_UDLS to 0 and bring the string literals into scope where needed.

"},{"location":"integration/migration_guide/#do-not-hard-code-the-complete-library-namespace","title":"Do not hard-code the complete library namespace","text":"

The nlohmann namespace contains a sub-namespace to avoid problems when different versions or configurations of the library are used in the same project. Always use nlohmann as namespace or, when the exact version and configuration is relevant, use macro NLOHMANN_JSON_NAMESPACE to denote the namespace.

DangerousFuture-proofFuture-proof (alternative)
void to_json(nlohmann::json_abi_v3_11_2::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
void to_json(nlohmann::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
void to_json(NLOHMANN_JSON_NAMESPACE::json& j, const person& p)\n{\n    j[\"age\"] = p.age;\n}\n
"},{"location":"integration/migration_guide/#do-not-use-the-details-namespace","title":"Do not use the details namespace","text":"

The details namespace is not part of the public API of the library and can change in any version without announcement. Do not rely on any function or type in the details namespace.

"},{"location":"integration/package_managers/","title":"Package Managers","text":"

Throughout this page, we will describe how to compile the example file example.cpp below.

#include <nlohmann/json.hpp>\n#include <iostream>\n#include <iomanip>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::setw(4) << json::meta() << std::endl;\n}\n

When executed, this program should create output similar to

{\n    \"compiler\": {\n        \"c++\": \"201103\",\n        \"family\": \"gcc\",\n        \"version\": \"12.3.0\"\n    },\n    \"copyright\": \"(C) 2013-2022 Niels Lohmann\",\n    \"name\": \"JSON for Modern C++\",\n    \"platform\": \"apple\",\n    \"url\": \"https://github.com/nlohmann/json\",\n    \"version\": {\n        \"major\": 3,\n        \"minor\": 11,\n        \"patch\": 3,\n        \"string\": \"3.11.3\"\n    }\n}\n
"},{"location":"integration/package_managers/#homebrew","title":"Homebrew","text":"

If you are using OS X and Homebrew, just type

brew install nlohmann-json\n

and you're set. If you want the bleeding edge rather than the latest release, use

brew install nlohmann-json --HEAD\n

instead. See nlohmann-json for more information.

Example
  1. Create the following file:

    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n#include <iomanip>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << std::setw(4) << json::meta() << std::endl;\n}\n
  2. Install the package

    brew install nlohmann-json\n
  3. Determine the include path, which defaults to /usr/local/Cellar/nlohmann-json/$version/include, where $version is the version of the library, e.g. 3.7.3. The path of the library can be determined with

    brew list nlohmann-json\n
  4. Compile the code. For instance, the code can be compiled using Clang with

    clang++ example.cpp -I/usr/local/Cellar/nlohmann-json/3.7.3/include -std=c++11 -o example\n

The formula is updated automatically.

"},{"location":"integration/package_managers/#meson","title":"Meson","text":"

If you are using the Meson Build System, add this source tree as a meson subproject. You may also use the include.zip published in this project's Releases to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from Meson WrapDB, or simply use meson wrap install nlohmann_json. Please see the meson project for any issues regarding the packaging.

The provided meson.build can also be used as an alternative to cmake for installing nlohmann_json system-wide in which case a pkg-config file is installed. To use it, simply have your build system require the nlohmann_json pkg-config dependency. In Meson, it is preferred to use the dependency() object with a subproject fallback, rather than using the subproject directly.

"},{"location":"integration/package_managers/#bazel","title":"Bazel","text":"

This repository provides a Bazel WORKSPACE.bazel and a corresponding BUILD.bazel file. Therefore, this repository can be referenced by workspace rules such as http_archive, git_repository, or local_repository from other Bazel workspaces. To use the library you only need to depend on the target @nlohmann_json//:json (e.g. via deps attribute).

"},{"location":"integration/package_managers/#conan","title":"Conan","text":"

If you are using Conan to manage your dependencies, merely add nlohmann_json/x.y.z to your conanfile's requires, where x.y.z is the release version you want to use. Please file issues here if you experience problems with the packages.

Example
  1. Create the following files:

    Conanfile.txt
    [requires]\nnlohmann_json/3.7.3\n\n[generators]\ncmake\n
    CMakeLists.txt
    project(json_example)\ncmake_minimum_required(VERSION 2.8.12)\nadd_definitions(\"-std=c++11\")\n\ninclude(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)\nconan_basic_setup()\n\nadd_executable(json_example example.cpp)\ntarget_link_libraries(json_example ${CONAN_LIBS})\n
    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << json::meta() << std::endl;\n}\n
  2. Build:

    mkdir build\ncd build\nconan install ..\ncmake ..\ncmake --build .\n

The package is updated automatically.

"},{"location":"integration/package_managers/#spack","title":"Spack","text":"

If you are using Spack to manage your dependencies, you can use the nlohmann-json package. Please see the spack project for any issues regarding the packaging.

"},{"location":"integration/package_managers/#hunter","title":"Hunter","text":"

If you are using hunter on your project for external dependencies, then you can use the nlohmann_json package. Please see the hunter project for any issues regarding the packaging.

"},{"location":"integration/package_managers/#buckaroo","title":"Buckaroo","text":"

If you are using Buckaroo, you can install this library's module with buckaroo add github.com/buckaroo-pm/nlohmann-json. Please file issues here. There is a demo repo here.

"},{"location":"integration/package_managers/#vcpkg","title":"vcpkg","text":"

If you are using vcpkg on your project for external dependencies, then you can install the nlohmann-json package with vcpkg install nlohmann-json and follow the then displayed descriptions. Please see the vcpkg project for any issues regarding the packaging.

Example
  1. Create the following files:

    CMakeLists.txt
    project(json_example)\ncmake_minimum_required(VERSION 2.8.12)\n\nfind_package(nlohmann_json CONFIG REQUIRED)\n\nadd_executable(json_example example.cpp)\ntarget_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json)\n
    example.cpp
    #include <nlohmann/json.hpp>\n#include <iostream>\n\nusing json = nlohmann::json;\n\nint main()\n{\n    std::cout << json::meta() << std::endl;\n}\n
  2. Install package:

    vcpkg install nlohmann-json\n
  3. Build:

    mkdir build\ncd build\ncmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake\ncmake --build .\n

Note you need to adjust /path/to/vcpkg/scripts/buildsystems/vcpkg.cmake to your system.

"},{"location":"integration/package_managers/#cget","title":"cget","text":"

If you are using cget, you can install the latest development version with cget install nlohmann/json. A specific version can be installed with cget install nlohmann/json@v3.1.0. Also, the multiple header version can be installed by adding the -DJSON_MultipleHeaders=ON flag (i.e., cget install nlohmann/json -DJSON_MultipleHeaders=ON).

cget reads directly from the GitHub repository and is always up-to-date.

"},{"location":"integration/package_managers/#cocoapods","title":"CocoaPods","text":"

If you are using CocoaPods, you can use the library by adding pod \"nlohmann_json\", '~>3.1.2' to your podfile (see an example). Please file issues here.

"},{"location":"integration/package_managers/#nuget","title":"NuGet","text":"

If you are using NuGet, you can use the package nlohmann.json. Please check this extensive description on how to use the package. Please file issues here.

"},{"location":"integration/package_managers/#conda","title":"Conda","text":"

If you are using conda, you can use the package nlohmann_json from conda-forge executing conda install -c conda-forge nlohmann_json. Please file issues here.

"},{"location":"integration/package_managers/#msys2","title":"MSYS2","text":"

If you are using MSYS2, you can use the mingw-w64-nlohmann-json package, just type pacman -S mingw-w64-i686-nlohmann-json or pacman -S mingw-w64-x86_64-nlohmann-json for installation. Please file issues here if you experience problems with the packages.

The package is updated automatically.

"},{"location":"integration/package_managers/#macports","title":"MacPorts","text":"

If you are using MacPorts, execute sudo port install nlohmann-json to install the nlohmann-json package.

The package is updated automatically.

"},{"location":"integration/package_managers/#build2","title":"build2","text":"

If you are using build2, you can use the nlohmann-json package from the public repository http://cppget.org or directly from the package's sources repository. In your project's manifest file, just add depends: nlohmann-json (probably with some version constraints). If you are not familiar with using dependencies in build2, please read this introduction. Please file issues here if you experience problems with the packages.

The package is updated automatically.

"},{"location":"integration/package_managers/#wsjcpp","title":"wsjcpp","text":"

If you are using wsjcpp, you can use the command wsjcpp install \"https://github.com/nlohmann/json:develop\" to get the latest version. Note you can change the branch \":develop\" to an existing tag or another branch.

wsjcpp reads directly from the GitHub repository and is always up-to-date.

"},{"location":"integration/package_managers/#cpmcmake","title":"CPM.cmake","text":"

If you are using CPM.cmake, you can check this example. After adding CPM script to your project, implement the following snippet to your CMake:

CPMAddPackage(\n    NAME nlohmann_json\n    GITHUB_REPOSITORY nlohmann/json\n    VERSION 3.9.1)\n
"},{"location":"integration/pkg-config/","title":"Pkg-config","text":"

If you are using bare Makefiles, you can use pkg-config to generate the include flags that point to where the library is installed:

pkg-config nlohmann_json --cflags\n

Users of the Meson build system will also be able to use a system-wide library, which will be found by pkg-config:

json = dependency('nlohmann_json', required: true)\n
"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 0bca1b1a4..bfcae5f2c 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,1122 +2,1122 @@ https://json.nlohmann.me/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/operator_gtgt/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/operator_literal_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/operator_literal_json_pointer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/operator_ltlt/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/ordered_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/ordered_map/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/adl_serializer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/adl_serializer/from_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/adl_serializer/to_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/accept/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/array/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/array_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/at/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/basic_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/begin/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/binary/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/binary_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/boolean_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/cbegin/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/cbor_tag_handler_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/cend/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/clear/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/contains/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/count/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/crbegin/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/crend/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/default_object_comparator_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/diff/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/dump/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/emplace/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/emplace_back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/empty/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/end/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/erase/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/error_handler_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/exception/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/find/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/flatten/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/from_bjdata/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/from_bson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/from_cbor/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/from_msgpack/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/from_ubjson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/front/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get_allocator/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get_binary/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get_ptr/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get_ref/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/get_to/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/input_format_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/insert/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/invalid_iterator/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_array/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_binary/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_boolean/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_discarded/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_null/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_number/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_number_float/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_number_integer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_number_unsigned/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_object/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_primitive/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_string/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/is_structured/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/items/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/json_base_class_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/json_serializer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/max_size/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/merge_patch/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/meta/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/number_float_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/number_integer_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/number_unsigned_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/object/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/object_comparator_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/object_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator%2B%3D/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator%3D/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator%5B%5D/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_ValueType/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_eq/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_ge/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_gt/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_le/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_lt/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_ne/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_spaceship/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/operator_value_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/other_error/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/out_of_range/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/parse/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/parse_error/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/parse_event_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/parser_callback_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/patch/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/patch_inplace/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/push_back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/rbegin/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/rend/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/sax_parse/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/size/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/std_hash/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/std_swap/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/string_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/swap/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_bjdata/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_bson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_cbor/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_msgpack/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_string/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/to_ubjson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/type/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/type_error/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/type_name/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/unflatten/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/update/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/value/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/value_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/basic_json/~basic_json/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/clear_subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/has_subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/set_subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/byte_container_with_subtype/subtype/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/empty/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/json_pointer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/operator_eq/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/operator_ne/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/operator_slash/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/operator_slasheq/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/operator_string_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/parent_pointer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/pop_back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/push_back/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/string_t/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_pointer/to_string/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/binary/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/boolean/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/end_array/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/end_object/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/key/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/null/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/number_float/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/number_integer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/number_unsigned/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/parse_error/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/start_array/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/start_object/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/json_sax/string/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_assert/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_diagnostics/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_disable_enum_serialization/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_has_cpp_11/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_has_filesystem/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_has_ranges/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_has_static_rtti/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_has_three_way_comparison/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_no_io/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_noexception/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_skip_library_version_check/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_skip_unsupported_compiler_check/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_throw_user/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_use_global_udls/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_use_implicit_conversions/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/json_use_legacy_discarded_value_comparison/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_json_namespace/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_json_namespace_begin/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_json_namespace_no_version/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_json_serialize_enum/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/api/macros/nlohmann_json_version_major/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/arbitrary_types/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/assertions/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_values/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/comments/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/enum_conversion/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/iterators/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/json_patch/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/json_pointer/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/macros/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/merge_patch/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/namespace/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/object_order/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/bjdata/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/bson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/cbor/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/messagepack/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/binary_formats/ubjson/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/element_access/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/element_access/checked_access/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/element_access/default_value/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/element_access/unchecked_access/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/parsing/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/parsing/json_lines/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/parsing/parse_exceptions/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/parsing/parser_callbacks/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/parsing/sax_interface/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/types/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/features/types/number_handling/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/code_of_conduct/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/design_goals/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/exceptions/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/faq/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/license/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/releases/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/home/sponsors/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/integration/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/integration/cmake/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/integration/migration_guide/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/integration/package_managers/ - 2023-11-26 + 2023-11-28 daily https://json.nlohmann.me/integration/pkg-config/ - 2023-11-26 + 2023-11-28 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 51ee80c71bff13b54dc1065256cef748e8b94b90..ac5932b983ff1e7e7aad7f80b06532ccddad7006 100644 GIT binary patch delta 1598 zcmV-E2EqCD4D<{KABzYG0bXX22Ot6{(2*%Gf6tGzJ$vAojCY^TuP)!6pRv=vH*WlN z{@d4IFFu}szI}7EM4LFDm6KiibUx)Ae%@@h+wEmCnP&>=(#LU=^i)U#jR4#Luyt{PPPcu1pIrHXbQ$IdFn^K;Ae|!Dz`u)Y#)y4J4 ze{#xt?C3N-ksEo4{Oz_UV|O>3qa%Ba&4J@z5m7Mhpind)I8ydejd{${8EsLHNLC@p z^O#iyZ(MmRo;h2wIuLt~+>8F{SHx<*WD-(uRpMyKnm@#9;|s_k`dRX?{sK39$*>(I zqd@>kYYrKJGe+8hU@8Q80x))@?-3|*e@1)9qd~wlj^Yl56JfY_-diSzfT}^1RCmRf z&oruX`QCDbkS)6&fU>A+1iEA8h%`w#?x zGW2E`04SF^$fx8vSkepwsxUnNLYo1+R0vzekrIM}##qcJkjKZ5HNImI7N>(je^AuH zQqGJZ&KlC~?t03E0t*pCX{dGa2ZB1MF+fbGjdtnoP_zJHNi{MCq#|4XqpnRba8V+Z zl{I7#p++7sK(m+6X|DUR*Mx0~u@k%>fA15Y23|d0+_I zl%sJY3hJWs5+PJJ^9-=%+7gn>dsez&Bm@ti8@;hR57cEQf3m|{_+^UhU0Yz>goyvb}*LH zE@hrUfLpqJ0)Z`)LK$@`=4?QS^AwrYmUe4lt4R>!&Us}#1gG?7zQ?rb-UMY$7wa8T z*85i~J+atW)_3s5CtpJFF>~J(+SHcMDBqxrMZZ-`61xIAe}*lXYP7y1tCrp-5Mnb2 zYqY6l{BBin6m-iY>D_ZzxV1_T#cV$vRy_~Kv1&hLUDp8H*Gp_R%nD8=T895}_skDm!e zcM?2cO7;s6kZVJ;c1L-D325KTKLL@7E&Y5IILV%pUf>EX1APs*n1ns&f2Nwq%ry88vAMU_IEE1Dn#1$7 zmxROo+&&6|xi-9ME1p5PA1ppjv-y z(UZsxx5g;iMm55LzDY&1Mza&yZL8tM;+jxmvA=8zMeSq;|5|Eul$zFdOs8kMXW@*q wSzoDfC^5Zs+PZiyYiLzID^KFpGu)3CWg;BRe=uFQr^Na8FUNJ-C0Jo6>5C8xG delta 1599 zcmV-F2Eh6B4D}2LABzYGnn7cc2Ot9Iu#qV*e@~CIJ$vAojCUW;uP)!6pRv=vH*WlR z{@a&dFMd4#bo=IJi8gUQD<`}3@qEfT{Jhz0x7*8PGS3v!rH|t#>8ZR)oAu!4-Q`c` zw{OnMqh4VDsy%M3*SGa5sa)nRd3WiopJsCIa^}s=rha^UHl;lK{`UIa_4|vftBdO& zf66KAv7^)UL~i6E^4Hs*jNRRAj*jdxHV2M>MMS~0gF?}K;7Hj=HRdr(XS78*B3XqX z&tp~Okx{axeO)UlFVMl1WItRf(e^YyJ?cjV~aF=x52l`U~9bCBt@< zj0OQDtvO@>&KPM2f~gSX3BcHqzDJOvWVy(#0WYXG9tL5n>$mJkVmZ^4%TlthAp4?L!a% z%Fvr(0H9pvAfJ-wU`aC!sKW643vCAQQXy;=M@k3^8e=h^Kpr1I*7%M=Sey<9e?d_P zOF1)wIBQ6^yXz?v3M@nnrJ>fv9|-E4#sD#$Hrl1TL(u|+CDq6nkcw>ikGeL&z(t8r zR@RU~gc^Ck0L@-Lr*UD)YVdKUjNqsmmpDRjK9DuNYKbQh_R1s$vU^%cQ4DKE-S4SD zu=XZtiaqxbv~IB$1a$5=0->tGe|m(i|7YNu(l=tscyY;$4rHwDHwPe4Lo~C==7Aw- zQ;x=sD5#6hON3C_%rn52YfDHj?^)@Bkq|uahAcjD^$2*TN0kaH04c|jRiLaV1XzTK z@v%RHFuG3N86e^(Zw3Jw#hHQ3$XKBfNY_%Ex7VNFzW)V?7Yg>n=eHk#e|XjJWEcLj z3k<}}Ux8ppB*~6Ic1&3$$yy}IIwZ-aK$_EJ0ub{$$ zfDu$qxmOdV34=6kDIk#6e@#1t*$G3Q*~6ruS5%19;{uA2eqKOflFth(%7%SGMah!S z5Yg63iL&f#td3>?u`Uj#R%!`ljsg&A3#Nf!A~;ch%5UDY%dFN;6CBmnJg0otjaAPSBro^VR;7;yrMrU3F2e6X-y(?mz;Wir|AnnJ=VomYu*Nsjc*I-@X=u9;M@nF4ujg6kVx%z+~5p zuGBsO6`g8-AiZbt!W3NWe8ecec=#o&?7HEXw8Be<54iGEM1HpL_|y$IN|GXj5B0qkMxh7X4N&N$d*fe;Br4s?qw6tXg`TK#0v8 ztkI^H@w-*QQP3@qq<7C<;npfW6tn$wSoJ&@$Eqd8l?8uXlHBf4-(z>>cR}Od&q*|M zt4f80R+0;R{sFysEvwN%;y<*PYD+XE@+TK&raO_buYsv{a7!DCoypDXs-`80Mr~0L zq4VZ}a=pu6f14sjgO=%gW|u`Xw#dx0!z3B?sl&5qdG2?$g;pxRpcI=Ua^MsjKYk_@ z-AV9(DcLVPK&}nV+8yNqCZK&U{{%!Tw)FE=;3RuWdVwpn4D>bJViFRKEVLl>HEOZ7 zmd`$w6t$BX{A;PrQEFP-F`b_2o`o~c xW__i`DaG{CY3t&-tf5u;tUQTV&u~9pl!

&409s;qLV7__h^!l9K)|CnYdg9svW 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⁣7HN%n26PkN2N|f(mF5f#c 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