blob: b3b2bbecad3c6691d54775293cd9e4f4af21c375 [file] [log] [blame]
<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content="Niels Lohmann"><link href=https://json.nlohmann.me/api/basic_json/basic_json/ rel=canonical><link href=../ rel=prev><link href=../~basic_json/ rel=next><link rel=icon href=../../../assets/images/favicon.png><meta name=generator content="mkdocs-1.5.3, mkdocs-material-9.4.7"><title>(Constructor) - JSON for Modern C++</title><link rel=stylesheet href=../../../assets/stylesheets/main.4b4a2bd9.min.css><link rel=stylesheet href=../../../assets/stylesheets/palette.356b1318.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"JetBrains Mono"}</style><link rel=stylesheet href=../../../css/custom.css><script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo> <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#nlohmannbasic_jsonbasic_json class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../../.. title="JSON for Modern C++" class="md-header__button md-logo" aria-label="JSON for Modern C++" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> JSON for Modern C++ </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> (Constructor) </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to dark mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_2 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=indigo data-md-color-accent=indigo aria-label="Switch to light mode" type=radio name=__palette id=__palette_2> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg> </label> </form> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/nlohmann/json title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> nlohmann/json </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../../features/arbitrary_types/ class=md-tabs__link> Features </a> </li> <li class=md-tabs__item> <a href=../../../integration/ class=md-tabs__link> Integration </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> API Documentation </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../../.. title="JSON for Modern C++" class="md-nav__button md-logo" aria-label="JSON for Modern C++" data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> JSON for Modern C++ </label> <div class=md-nav__source> <a href=https://github.com/nlohmann/json title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> nlohmann/json </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_1> <div class="md-nav__link md-nav__container"> <a href=../../.. class="md-nav__link "> <span class=md-ellipsis> Home </span> </a> <label class="md-nav__link " for=__nav_1 id=__nav_1_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_1_label aria-expanded=false> <label class=md-nav__title for=__nav_1> <span class="md-nav__icon md-icon"></span> Home </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../home/license/ class=md-nav__link> <span class=md-ellipsis> License </span> </a> </li> <li class=md-nav__item> <a href=../../../home/code_of_conduct/ class=md-nav__link> <span class=md-ellipsis> Code of Conduct </span> </a> </li> <li class=md-nav__item> <a href=../../../home/faq/ class=md-nav__link> <span class=md-ellipsis> FAQ </span> </a> </li> <li class=md-nav__item> <a href=../../../home/exceptions/ class=md-nav__link> <span class=md-ellipsis> Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/ class=md-nav__link> <span class=md-ellipsis> Releases </span> </a> </li> <li class=md-nav__item> <a href=../../../home/design_goals/ class=md-nav__link> <span class=md-ellipsis> Design goals </span> </a> </li> <li class=md-nav__item> <a href=../../../home/sponsors/ class=md-nav__link> <span class=md-ellipsis> Sponsors </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Features </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Features </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/arbitrary_types/ class=md-nav__link> <span class=md-ellipsis> Arbitrary Type Conversions </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_2> <div class="md-nav__link md-nav__container"> <a href=../../../features/binary_formats/ class="md-nav__link "> <span class=md-ellipsis> Binary Formats </span> </a> <label class="md-nav__link " for=__nav_2_2 id=__nav_2_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2_2> <span class="md-nav__icon md-icon"></span> Binary Formats </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/binary_formats/bjdata/ class=md-nav__link> <span class=md-ellipsis> BJData </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/bson/ class=md-nav__link> <span class=md-ellipsis> BSON </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/cbor/ class=md-nav__link> <span class=md-ellipsis> CBOR </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/messagepack/ class=md-nav__link> <span class=md-ellipsis> MessagePack </span> </a> </li> <li class=md-nav__item> <a href=../../../features/binary_formats/ubjson/ class=md-nav__link> <span class=md-ellipsis> UBJSON </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../../features/binary_values/ class=md-nav__link> <span class=md-ellipsis> Binary Values </span> </a> </li> <li class=md-nav__item> <a href=../../../features/comments/ class=md-nav__link> <span class=md-ellipsis> Comments </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_5> <div class="md-nav__link md-nav__container"> <a href=../../../features/element_access/ class="md-nav__link "> <span class=md-ellipsis> Element Access </span> </a> <label class="md-nav__link " for=__nav_2_5 id=__nav_2_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_5_label aria-expanded=false> <label class=md-nav__title for=__nav_2_5> <span class="md-nav__icon md-icon"></span> Element Access </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/element_access/unchecked_access/ class=md-nav__link> <span class=md-ellipsis> Unchecked access: operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../../features/element_access/checked_access/ class=md-nav__link> <span class=md-ellipsis> Checked access: at </span> </a> </li> <li class=md-nav__item> <a href=../../../features/element_access/default_value/ class=md-nav__link> <span class=md-ellipsis> Access with default value: value </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../../features/iterators/ class=md-nav__link> <span class=md-ellipsis> Iterators </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_pointer/ class=md-nav__link> <span class=md-ellipsis> JSON Pointer </span> </a> </li> <li class=md-nav__item> <a href=../../../features/json_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Patch and Diff </span> </a> </li> <li class=md-nav__item> <a href=../../../features/merge_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Merge Patch </span> </a> </li> <li class=md-nav__item> <a href=../../../features/namespace/ class=md-nav__link> <span class=md-ellipsis> nlohmann Namespace </span> </a> </li> <li class=md-nav__item> <a href=../../../features/object_order/ class=md-nav__link> <span class=md-ellipsis> Object Order </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_12> <div class="md-nav__link md-nav__container"> <a href=../../../features/parsing/ class="md-nav__link "> <span class=md-ellipsis> Parsing </span> </a> <label class="md-nav__link " for=__nav_2_12 id=__nav_2_12_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_12_label aria-expanded=false> <label class=md-nav__title for=__nav_2_12> <span class="md-nav__icon md-icon"></span> Parsing </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/parsing/json_lines/ class=md-nav__link> <span class=md-ellipsis> JSON Lines </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/parse_exceptions/ class=md-nav__link> <span class=md-ellipsis> Parsing and Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/parser_callbacks/ class=md-nav__link> <span class=md-ellipsis> Parser Callbacks </span> </a> </li> <li class=md-nav__item> <a href=../../../features/parsing/sax_interface/ class=md-nav__link> <span class=md-ellipsis> SAX Interface </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../../features/assertions/ class=md-nav__link> <span class=md-ellipsis> Runtime Assertions </span> </a> </li> <li class=md-nav__item> <a href=../../../features/enum_conversion/ class=md-nav__link> <span class=md-ellipsis> Specializing enum conversion </span> </a> </li> <li class=md-nav__item> <a href=../../../features/macros/ class=md-nav__link> <span class=md-ellipsis> Supported Macros </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_16> <div class="md-nav__link md-nav__container"> <a href=../../../features/types/ class="md-nav__link "> <span class=md-ellipsis> Types </span> </a> <label class="md-nav__link " for=__nav_2_16 id=__nav_2_16_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_16_label aria-expanded=false> <label class=md-nav__title for=__nav_2_16> <span class="md-nav__icon md-icon"></span> Types </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../features/types/number_handling/ class=md-nav__link> <span class=md-ellipsis> Number Handling </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_3> <div class="md-nav__link md-nav__container"> <a href=../../../integration/ class="md-nav__link "> <span class=md-ellipsis> Integration </span> </a> <label class="md-nav__link " for=__nav_3 id=__nav_3_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Integration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../integration/migration_guide/ class=md-nav__link> <span class=md-ellipsis> Migration Guide </span> </a> </li> <li class=md-nav__item> <a href=../../../integration/cmake/ class=md-nav__link> <span class=md-ellipsis> CMake </span> </a> </li> <li class=md-nav__item> <a href=../../../integration/package_managers/ class=md-nav__link> <span class=md-ellipsis> Package Managers </span> </a> </li> <li class=md-nav__item> <a href=../../../integration/pkg-config/ class=md-nav__link> <span class=md-ellipsis> Pkg-config </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4 checked> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex> <span class=md-ellipsis> API Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=true> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> API Documentation </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_1 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> basic_json </span> </a> <label class="md-nav__link " for=__nav_4_1 id=__nav_4_1_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_1_label aria-expanded=true> <label class=md-nav__title for=__nav_4_1> <span class="md-nav__icon md-icon"></span> basic_json </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> (Constructor) </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> (Constructor) </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#template-parameters class=md-nav__link> Template parameters </a> </li> <li class=md-nav__item> <a href=#parameters class=md-nav__link> Parameters </a> </li> <li class=md-nav__item> <a href=#exception-safety class=md-nav__link> Exception safety </a> </li> <li class=md-nav__item> <a href=#exceptions class=md-nav__link> Exceptions </a> </li> <li class=md-nav__item> <a href=#complexity class=md-nav__link> Complexity </a> </li> <li class=md-nav__item> <a href=#notes class=md-nav__link> Notes </a> </li> <li class=md-nav__item> <a href=#examples class=md-nav__link> Examples </a> </li> <li class=md-nav__item> <a href=#version-history class=md-nav__link> Version history </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../~basic_json/ class=md-nav__link> <span class=md-ellipsis> (Destructor) </span> </a> </li> <li class=md-nav__item> <a href=../accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../array/ class=md-nav__link> <span class=md-ellipsis> array </span> </a> </li> <li class=md-nav__item> <a href=../array_t/ class=md-nav__link> <span class=md-ellipsis> array_t </span> </a> </li> <li class=md-nav__item> <a href=../at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../binary_t/ class=md-nav__link> <span class=md-ellipsis> binary_t </span> </a> </li> <li class=md-nav__item> <a href=../boolean_t/ class=md-nav__link> <span class=md-ellipsis> boolean_t </span> </a> </li> <li class=md-nav__item> <a href=../cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../cbor_tag_handler_t/ class=md-nav__link> <span class=md-ellipsis> cbor_tag_handler_t </span> </a> </li> <li class=md-nav__item> <a href=../cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../clear/ class=md-nav__link> <span class=md-ellipsis> clear </span> </a> </li> <li class=md-nav__item> <a href=../contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../crbegin/ class=md-nav__link> <span class=md-ellipsis> crbegin </span> </a> </li> <li class=md-nav__item> <a href=../crend/ class=md-nav__link> <span class=md-ellipsis> crend </span> </a> </li> <li class=md-nav__item> <a href=../default_object_comparator_t/ class=md-nav__link> <span class=md-ellipsis> default_object_comparator_t </span> </a> </li> <li class=md-nav__item> <a href=../diff/ class=md-nav__link> <span class=md-ellipsis> diff </span> </a> </li> <li class=md-nav__item> <a href=../dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../emplace/ class=md-nav__link> <span class=md-ellipsis> emplace </span> </a> </li> <li class=md-nav__item> <a href=../emplace_back/ class=md-nav__link> <span class=md-ellipsis> emplace_back </span> </a> </li> <li class=md-nav__item> <a href=../empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../error_handler_t/ class=md-nav__link> <span class=md-ellipsis> error_handler_t </span> </a> </li> <li class=md-nav__item> <a href=../exception/ class=md-nav__link> <span class=md-ellipsis> exception </span> </a> </li> <li class=md-nav__item> <a href=../find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../flatten/ class=md-nav__link> <span class=md-ellipsis> flatten </span> </a> </li> <li class=md-nav__item> <a href=../from_bjdata/ class=md-nav__link> <span class=md-ellipsis> from_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../from_bson/ class=md-nav__link> <span class=md-ellipsis> from_bson </span> </a> </li> <li class=md-nav__item> <a href=../from_cbor/ class=md-nav__link> <span class=md-ellipsis> from_cbor </span> </a> </li> <li class=md-nav__item> <a href=../from_msgpack/ class=md-nav__link> <span class=md-ellipsis> from_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../from_ubjson/ class=md-nav__link> <span class=md-ellipsis> from_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../get_allocator/ class=md-nav__link> <span class=md-ellipsis> get_allocator </span> </a> </li> <li class=md-nav__item> <a href=../get_binary/ class=md-nav__link> <span class=md-ellipsis> get_binary </span> </a> </li> <li class=md-nav__item> <a href=../get_ptr/ class=md-nav__link> <span class=md-ellipsis> get_ptr </span> </a> </li> <li class=md-nav__item> <a href=../get_ref/ class=md-nav__link> <span class=md-ellipsis> get_ref </span> </a> </li> <li class=md-nav__item> <a href=../get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../std_hash/ class=md-nav__link> <span class=md-ellipsis> std::hash&lt;basic_json&gt; </span> </a> </li> <li class=md-nav__item> <a href=../input_format_t/ class=md-nav__link> <span class=md-ellipsis> input_format_t </span> </a> </li> <li class=md-nav__item> <a href=../insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../invalid_iterator/ class=md-nav__link> <span class=md-ellipsis> invalid_iterator </span> </a> </li> <li class=md-nav__item> <a href=../is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../is_number_float/ class=md-nav__link> <span class=md-ellipsis> is_number_float </span> </a> </li> <li class=md-nav__item> <a href=../is_number_integer/ class=md-nav__link> <span class=md-ellipsis> is_number_integer </span> </a> </li> <li class=md-nav__item> <a href=../is_number_unsigned/ class=md-nav__link> <span class=md-ellipsis> is_number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../json_base_class_t/ class=md-nav__link> <span class=md-ellipsis> json_base_class_t </span> </a> </li> <li class=md-nav__item> <a href=../json_serializer/ class=md-nav__link> <span class=md-ellipsis> json_serializer </span> </a> </li> <li class=md-nav__item> <a href=../max_size/ class=md-nav__link> <span class=md-ellipsis> max_size </span> </a> </li> <li class=md-nav__item> <a href=../meta/ class=md-nav__link> <span class=md-ellipsis> meta </span> </a> </li> <li class=md-nav__item> <a href=../merge_patch/ class=md-nav__link> <span class=md-ellipsis> merge_patch </span> </a> </li> <li class=md-nav__item> <a href=../number_float_t/ class=md-nav__link> <span class=md-ellipsis> number_float_t </span> </a> </li> <li class=md-nav__item> <a href=../number_integer_t/ class=md-nav__link> <span class=md-ellipsis> number_integer_t </span> </a> </li> <li class=md-nav__item> <a href=../number_unsigned_t/ class=md-nav__link> <span class=md-ellipsis> number_unsigned_t </span> </a> </li> <li class=md-nav__item> <a href=../object/ class=md-nav__link> <span class=md-ellipsis> object </span> </a> </li> <li class=md-nav__item> <a href=../object_comparator_t/ class=md-nav__link> <span class=md-ellipsis> object_comparator_t </span> </a> </li> <li class=md-nav__item> <a href=../object_t/ class=md-nav__link> <span class=md-ellipsis> object_t </span> </a> </li> <li class=md-nav__item> <a href=../operator_ValueType/ class=md-nav__link> <span class=md-ellipsis> operator ValueType </span> </a> </li> <li class=md-nav__item> <a href=../operator_value_t/ class=md-nav__link> <span class=md-ellipsis> operator value_t </span> </a> </li> <li class=md-nav__item> <a href=../operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../operator%3D/ class=md-nav__link> <span class=md-ellipsis> operator= </span> </a> </li> <li class=md-nav__item> <a href=../operator%2B%3D/ class=md-nav__link> <span class=md-ellipsis> operator+= </span> </a> </li> <li class=md-nav__item> <a href=../operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../operator_lt/ class=md-nav__link> <span class=md-ellipsis> operator< </span> </a> </li> <li class=md-nav__item> <a href=../operator_gt/ class=md-nav__link> <span class=md-ellipsis> operator> </span> </a> </li> <li class=md-nav__item> <a href=../operator_le/ class=md-nav__link> <span class=md-ellipsis> operator<= </span> </a> </li> <li class=md-nav__item> <a href=../operator_ge/ class=md-nav__link> <span class=md-ellipsis> operator>= </span> </a> </li> <li class=md-nav__item> <a href=../operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../out_of_range/ class=md-nav__link> <span class=md-ellipsis> out_of_range </span> </a> </li> <li class=md-nav__item> <a href=../other_error/ class=md-nav__link> <span class=md-ellipsis> other_error </span> </a> </li> <li class=md-nav__item> <a href=../parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../parse_event_t/ class=md-nav__link> <span class=md-ellipsis> parse_event_t </span> </a> </li> <li class=md-nav__item> <a href=../parser_callback_t/ class=md-nav__link> <span class=md-ellipsis> parser_callback_t </span> </a> </li> <li class=md-nav__item> <a href=../patch/ class=md-nav__link> <span class=md-ellipsis> patch </span> </a> </li> <li class=md-nav__item> <a href=../patch_inplace/ class=md-nav__link> <span class=md-ellipsis> patch_inplace </span> </a> </li> <li class=md-nav__item> <a href=../push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../rbegin/ class=md-nav__link> <span class=md-ellipsis> rbegin </span> </a> </li> <li class=md-nav__item> <a href=../rend/ class=md-nav__link> <span class=md-ellipsis> rend </span> </a> </li> <li class=md-nav__item> <a href=../sax_parse/ class=md-nav__link> <span class=md-ellipsis> sax_parse </span> </a> </li> <li class=md-nav__item> <a href=../size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../swap/ class=md-nav__link> <span class=md-ellipsis> swap </span> </a> </li> <li class=md-nav__item> <a href=../std_swap/ class=md-nav__link> <span class=md-ellipsis> std::swap&lt;basic_json&gt; </span> </a> </li> <li class=md-nav__item> <a href=../to_bjdata/ class=md-nav__link> <span class=md-ellipsis> to_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../to_bson/ class=md-nav__link> <span class=md-ellipsis> to_bson </span> </a> </li> <li class=md-nav__item> <a href=../to_cbor/ class=md-nav__link> <span class=md-ellipsis> to_cbor </span> </a> </li> <li class=md-nav__item> <a href=../to_msgpack/ class=md-nav__link> <span class=md-ellipsis> to_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> <li class=md-nav__item> <a href=../to_ubjson/ class=md-nav__link> <span class=md-ellipsis> to_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../type_error/ class=md-nav__link> <span class=md-ellipsis> type_error </span> </a> </li> <li class=md-nav__item> <a href=../type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../unflatten/ class=md-nav__link> <span class=md-ellipsis> unflatten </span> </a> </li> <li class=md-nav__item> <a href=../update/ class=md-nav__link> <span class=md-ellipsis> update </span> </a> </li> <li class=md-nav__item> <a href=../value/ class=md-nav__link> <span class=md-ellipsis> value </span> </a> </li> <li class=md-nav__item> <a href=../value_t/ class=md-nav__link> <span class=md-ellipsis> value_t </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_2> <div class="md-nav__link md-nav__container"> <a href=../../byte_container_with_subtype/ class="md-nav__link "> <span class=md-ellipsis> byte_container_with_subtype </span> </a> <label class="md-nav__link " for=__nav_4_2 id=__nav_4_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_2_label aria-expanded=false> <label class=md-nav__title for=__nav_4_2> <span class="md-nav__icon md-icon"></span> byte_container_with_subtype </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../byte_container_with_subtype/byte_container_with_subtype/ class=md-nav__link> <span class=md-ellipsis> (constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../byte_container_with_subtype/clear_subtype/ class=md-nav__link> <span class=md-ellipsis> clear_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../byte_container_with_subtype/has_subtype/ class=md-nav__link> <span class=md-ellipsis> has_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../byte_container_with_subtype/set_subtype/ class=md-nav__link> <span class=md-ellipsis> set_subtype </span> </a> </li> <li class=md-nav__item> <a href=../../byte_container_with_subtype/subtype/ class=md-nav__link> <span class=md-ellipsis> subtype </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_3> <div class="md-nav__link md-nav__container"> <a href=../../adl_serializer/ class="md-nav__link "> <span class=md-ellipsis> adl_serializer </span> </a> <label class="md-nav__link " for=__nav_4_3 id=__nav_4_3_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_3_label aria-expanded=false> <label class=md-nav__title for=__nav_4_3> <span class="md-nav__icon md-icon"></span> adl_serializer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../adl_serializer/from_json/ class=md-nav__link> <span class=md-ellipsis> from_json </span> </a> </li> <li class=md-nav__item> <a href=../../adl_serializer/to_json/ class=md-nav__link> <span class=md-ellipsis> to_json </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../json/ class=md-nav__link> <span class=md-ellipsis> json </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_5> <div class="md-nav__link md-nav__container"> <a href=../../json_pointer/ class="md-nav__link "> <span class=md-ellipsis> json_pointer </span> </a> <label class="md-nav__link " for=__nav_4_5 id=__nav_4_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_5_label aria-expanded=false> <label class=md-nav__title for=__nav_4_5> <span class="md-nav__icon md-icon"></span> json_pointer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../json_pointer/json_pointer/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_string_t/ class=md-nav__link> <span class=md-ellipsis> operator string_t </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_slash/ class=md-nav__link> <span class=md-ellipsis> operator/ </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/operator_slasheq/ class=md-nav__link> <span class=md-ellipsis> operator/= </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/parent_pointer/ class=md-nav__link> <span class=md-ellipsis> parent_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/pop_back/ class=md-nav__link> <span class=md-ellipsis> pop_back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_6> <div class="md-nav__link md-nav__container"> <a href=../../json_sax/ class="md-nav__link "> <span class=md-ellipsis> json_sax </span> </a> <label class="md-nav__link " for=__nav_4_6 id=__nav_4_6_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_6_label aria-expanded=false> <label class=md-nav__title for=__nav_4_6> <span class="md-nav__icon md-icon"></span> json_sax </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../json_sax/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/boolean/ class=md-nav__link> <span class=md-ellipsis> boolean </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/end_array/ class=md-nav__link> <span class=md-ellipsis> end_array </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/end_object/ class=md-nav__link> <span class=md-ellipsis> end_object </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/key/ class=md-nav__link> <span class=md-ellipsis> key </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/null/ class=md-nav__link> <span class=md-ellipsis> null </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_float/ class=md-nav__link> <span class=md-ellipsis> number_float </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_integer/ class=md-nav__link> <span class=md-ellipsis> number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/number_unsigned/ class=md-nav__link> <span class=md-ellipsis> number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/start_array/ class=md-nav__link> <span class=md-ellipsis> start_array </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/start_object/ class=md-nav__link> <span class=md-ellipsis> start_object </span> </a> </li> <li class=md-nav__item> <a href=../../json_sax/string/ class=md-nav__link> <span class=md-ellipsis> string </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<<(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<<(json_pointer) </span> </a> </li> <li class=md-nav__item> <a href=../../operator_gtgt/ class=md-nav__link> <span class=md-ellipsis> operator>>(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../operator_literal_json/ class=md-nav__link> <span class=md-ellipsis> operator""_json </span> </a> </li> <li class=md-nav__item> <a href=../../operator_literal_json_pointer/ class=md-nav__link> <span class=md-ellipsis> operator""_json_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_json/ class=md-nav__link> <span class=md-ellipsis> ordered_json </span> </a> </li> <li class=md-nav__item> <a href=../../ordered_map/ class=md-nav__link> <span class=md-ellipsis> ordered_map </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_14> <div class="md-nav__link md-nav__container"> <a href=../../macros/ class="md-nav__link "> <span class=md-ellipsis> macros </span> </a> <label class="md-nav__link " for=__nav_4_14 id=__nav_4_14_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_14_label aria-expanded=false> <label class=md-nav__title for=__nav_4_14> <span class="md-nav__icon md-icon"></span> macros </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../macros/json_assert/ class=md-nav__link> <span class=md-ellipsis> JSON_ASSERT </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_CATCH_USER </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_diagnostics/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTICS </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_disable_enum_serialization/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_ENUM_SERIALIZATION </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_11 </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_14 </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_17 </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_cpp_11/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_CPP_20 </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_filesystem/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_EXPERIMENTAL_FILESYSTEM </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_filesystem/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_FILESYSTEM </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_ranges/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_RANGES </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_static_rtti/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_STATIC_RTTI </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_has_three_way_comparison/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_THREE_WAY_COMPARISON </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_noexception/ class=md-nav__link> <span class=md-ellipsis> JSON_NOEXCEPTION </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_no_io/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_IO </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_skip_library_version_check/ class=md-nav__link> <span class=md-ellipsis> JSON_SKIP_LIBRARY_VERSION_CHECK </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_skip_unsupported_compiler_check/ class=md-nav__link> <span class=md-ellipsis> JSON_SKIP_UNSUPPORTED_COMPILER_CHECK </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_THROW_USER </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_throw_user/ class=md-nav__link> <span class=md-ellipsis> JSON_TRY_USER </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_use_global_udls/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_GLOBAL_UDLS </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_use_implicit_conversions/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_IMPLICIT_CONVERSIONS </span> </a> </li> <li class=md-nav__item> <a href=../../macros/json_use_legacy_discarded_value_comparison/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_define_type_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_define_type_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_define_type_non_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_define_type_non_intrusive/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_namespace/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_namespace_begin/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_BEGIN </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_namespace_begin/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_END </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_namespace_no_version/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_NAMESPACE_NO_VERSION </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_serialize_enum/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_SERIALIZE_ENUM </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_MAJOR </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_MINOR </span> </a> </li> <li class=md-nav__item> <a href=../../macros/nlohmann_json_version_major/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_VERSION_PATCH </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#template-parameters class=md-nav__link> Template parameters </a> </li> <li class=md-nav__item> <a href=#parameters class=md-nav__link> Parameters </a> </li> <li class=md-nav__item> <a href=#exception-safety class=md-nav__link> Exception safety </a> </li> <li class=md-nav__item> <a href=#exceptions class=md-nav__link> Exceptions </a> </li> <li class=md-nav__item> <a href=#complexity class=md-nav__link> Complexity </a> </li> <li class=md-nav__item> <a href=#notes class=md-nav__link> Notes </a> </li> <li class=md-nav__item> <a href=#examples class=md-nav__link> Examples </a> </li> <li class=md-nav__item> <a href=#version-history class=md-nav__link> Version history </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=nlohmannbasic_jsonbasic_json><small>nlohmann::basic_json::</small>basic_json<a class=headerlink href=#nlohmannbasic_jsonbasic_json title="Permanent link">&para;</a></h1> <div class=highlight><pre><span></span><code><span class=c1>// (1)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=k>const</span><span class=w> </span><span class=n>value_t</span><span class=w> </span><span class=n>v</span><span class=p>);</span>
<span class=c1>// (2)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>nullptr_t</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>nullptr</span><span class=p>)</span><span class=w> </span><span class=k>noexcept</span><span class=p>;</span>
<span class=c1>// (3)</span>
<span class=k>template</span><span class=o>&lt;</span><span class=k>typename</span><span class=w> </span><span class=nc>CompatibleType</span><span class=o>&gt;</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>CompatibleType</span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>val</span><span class=p>)</span><span class=w> </span><span class=k>noexcept</span><span class=p>(</span><span class=k>noexcept</span><span class=p>(</span>
<span class=w> </span><span class=n>JSONSerializer</span><span class=o>&lt;</span><span class=n>U</span><span class=o>&gt;::</span><span class=n>to_json</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>declval</span><span class=o>&lt;</span><span class=n>basic_json_t</span><span class=o>&amp;&gt;</span><span class=p>(),</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>forward</span><span class=o>&lt;</span><span class=n>CompatibleType</span><span class=o>&gt;</span><span class=p>(</span><span class=n>val</span><span class=p>))));</span>
<span class=c1>// (4)</span>
<span class=k>template</span><span class=o>&lt;</span><span class=k>typename</span><span class=w> </span><span class=nc>BasicJsonType</span><span class=o>&gt;</span>
<span class=n>basic_json</span><span class=p>(</span><span class=k>const</span><span class=w> </span><span class=n>BasicJsonType</span><span class=o>&amp;</span><span class=w> </span><span class=n>val</span><span class=p>);</span>
<span class=c1>// (5)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>initializer_list_t</span><span class=w> </span><span class=n>init</span><span class=p>,</span>
<span class=w> </span><span class=kt>bool</span><span class=w> </span><span class=n>type_deduction</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=nb>true</span><span class=p>,</span>
<span class=w> </span><span class=n>value_t</span><span class=w> </span><span class=n>manual_type</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>value_t</span><span class=o>::</span><span class=n>array</span><span class=p>);</span>
<span class=c1>// (6)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>size_type</span><span class=w> </span><span class=n>cnt</span><span class=p>,</span><span class=w> </span><span class=k>const</span><span class=w> </span><span class=n>basic_json</span><span class=o>&amp;</span><span class=w> </span><span class=n>val</span><span class=p>);</span>
<span class=c1>// (7)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>iterator</span><span class=w> </span><span class=n>first</span><span class=p>,</span><span class=w> </span><span class=n>iterator</span><span class=w> </span><span class=n>last</span><span class=p>);</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>const_iterator</span><span class=w> </span><span class=n>first</span><span class=p>,</span><span class=w> </span><span class=n>const_iterator</span><span class=w> </span><span class=n>last</span><span class=p>);</span>
<span class=c1>// (8)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=k>const</span><span class=w> </span><span class=n>basic_json</span><span class=o>&amp;</span><span class=w> </span><span class=n>other</span><span class=p>);</span>
<span class=c1>// (9)</span>
<span class=n>basic_json</span><span class=p>(</span><span class=n>basic_json</span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>other</span><span class=p>)</span><span class=w> </span><span class=k>noexcept</span><span class=p>;</span>
</code></pre></div> <ol> <li> <p>Create an empty JSON value with a given type. The value will be default initialized with an empty value which depends on the type:</p> <table> <thead> <tr> <th>Value type</th> <th>initial value</th> </tr> </thead> <tbody> <tr> <td>null</td> <td><code class=highlight><span class=kc>null</span></code></td> </tr> <tr> <td>boolean</td> <td><code class=highlight><span class=kc>false</span></code></td> </tr> <tr> <td>string</td> <td><code class=highlight><span class=s2>&quot;&quot;</span></code></td> </tr> <tr> <td>number</td> <td><code class=highlight><span class=mi>0</span></code></td> </tr> <tr> <td>object</td> <td><code class=highlight><span class=p>{}</span></code></td> </tr> <tr> <td>array</td> <td><code class=highlight><span class=p>[]</span></code></td> </tr> <tr> <td>binary</td> <td>empty array</td> </tr> </tbody> </table> <p>The postcondition of this constructor can be restored by calling <a href=../clear/ ><code>clear()</code></a>.</p> </li> <li> <p>Create a <code class=highlight><span class=kc>null</span></code> JSON value. It either takes a null pointer as parameter (explicitly creating <code class=highlight><span class=kc>null</span></code>) or no parameter (implicitly creating <code class=highlight><span class=kc>null</span></code>). The passed null pointer itself is not read -- it is only used to choose the right constructor.</p> </li> <li> <p>This is a "catch all" constructor for all compatible JSON types; that is, types for which a <code>to_json()</code> method exists. The constructor forwards the parameter <code>val</code> to that method (to <code>json_serializer&lt;U&gt;::to_json</code> method with <code>U = uncvref_t&lt;CompatibleType&gt;</code>, to be exact).</p> <p>Template type <code>CompatibleType</code> includes, but is not limited to, the following types:</p> <ul> <li><strong>arrays</strong>: <a href=../array_t/ ><code>array_t</code></a> and all kinds of compatible containers such as <code>std::vector</code>, <code>std::deque</code>, <code>std::list</code>, <code>std::forward_list</code>, <code>std::array</code>, <code>std::valarray</code>, <code>std::set</code>, <code>std::unordered_set</code>, <code>std::multiset</code>, and <code>std::unordered_multiset</code> with a <code>value_type</code> from which a <code>basic_json</code> value can be constructed.</li> <li><strong>objects</strong>: <a href=../object_t/ ><code>object_t</code></a> and all kinds of compatible associative containers such as <code>std::map</code>, <code>std::unordered_map</code>, <code>std::multimap</code>, and <code>std::unordered_multimap</code> with a <code>key_type</code> compatible to <code>string_t</code> and a <code>value_type</code> from which a <code>basic_json</code> value can be constructed.</li> <li><strong>strings</strong>: <code>string_t</code>, string literals, and all compatible string containers can be used.</li> <li><strong>numbers</strong>: <a href=../number_integer_t/ ><code>number_integer_t</code></a>, <a href=../number_unsigned_t/ ><code>number_unsigned_t</code></a>, <a href=../number_float_t/ ><code>number_float_t</code></a>, and all convertible number types such as <code>int</code>, <code>size_t</code>, <code>int64_t</code>, <code>float</code> or <code>double</code> can be used.</li> <li><strong>boolean</strong>: <code>boolean_t</code> / <code>bool</code> can be used.</li> <li><strong>binary</strong>: <code>binary_t</code> / <code>std::vector&lt;uint8_t&gt;</code> may be used; unfortunately because string literals cannot be distinguished from binary character arrays by the C++ type system, all types compatible with <code>const char*</code> 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.</li> </ul> <p>See the examples below.</p> </li> <li> <p>This is a constructor for existing <code>basic_json</code> types. It does not hijack copy/move constructors, since the parameter has different template arguments than the current ones.</p> <p>The constructor tries to convert the internal <code>m_value</code> of the parameter.</p> </li> <li> <p>Creates a JSON value of type array or object from the passed initializer list <code>init</code>. In case <code>type_deduction</code> is <code class=highlight><span class=nb>true</span></code> (default), the type of the JSON value to be created is deducted from the initializer list <code>init</code> according to the following rules:</p> <ol> <li>If the list is empty, an empty JSON object value <code>{}</code> is created.</li> <li>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.</li> <li>In all other cases, an array is created.</li> </ol> <p>The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows:</p> <ol> <li>The empty initializer list is written as <code class=highlight><span class=p>{}</span></code> which is exactly an empty JSON object.</li> <li>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.</li> <li>In all other cases, the initializer list could not be interpreted as JSON object type, so interpreting it as JSON array type is safe.</li> </ol> <p>With the rules described above, the following JSON values cannot be expressed by an initializer list:</p> <ul> <li>the empty array (<code class=highlight><span class=p>[]</span></code>): use <code>array(initializer_list_t)</code> with an empty initializer list in this case</li> <li>arrays whose elements satisfy rule 2: use <code>array(initializer_list_t)</code> with the same initializer list in this case</li> </ul> <p>Function <a href=../array/ ><code>array()</code></a> and <a href=../object/ ><code>object()</code></a> force array and object creation from initializer lists, respectively.</p> </li> <li> <p>Constructs a JSON array value by creating <code>cnt</code> copies of a passed value. In case <code>cnt</code> is <code>0</code>, an empty array is created.</p> </li> <li> <p>Constructs the JSON value with the contents of the range <code>[first, last)</code>. The semantics depends on the different types a JSON value can have:</p> <ul> <li>In case of a <code class=highlight><span class=kc>null</span></code> type, <a href=../../../home/exceptions/#jsonexceptioninvalid_iterator206>invalid_iterator.206</a> is thrown.</li> <li>In case of other primitive types (number, boolean, or string), <code>first</code> must be <code>begin()</code> and <code>last</code> must be <code>end()</code>. In this case, the value is copied. Otherwise, <a href=../../../home/exceptions/#jsonexceptioninvalid_iterator204><code>invalid_iterator.204</code></a> is thrown.</li> <li>In case of structured types (array, object), the constructor behaves as similar versions for <code>std::vector</code> or <code>std::map</code>; that is, a JSON array or object is constructed from the values in the range.</li> </ul> </li> <li> <p>Creates a copy of a given JSON value.</p> </li> <li> <p>Move constructor. Constructs a JSON value with the contents of the given value <code>other</code> using move semantics. It "steals" the resources from <code>other</code> and leaves it as JSON <code class=highlight><span class=kc>null</span></code> value.</p> </li> </ol> <h2 id=template-parameters>Template parameters<a class=headerlink href=#template-parameters title="Permanent link">&para;</a></h2> <dl> <dt><code>CompatibleType</code></dt> <dd> <p>a type such that:</p> <ul> <li><code>CompatibleType</code> is not derived from <code>std::istream</code>,</li> <li><code>CompatibleType</code> is not <code>basic_json</code> (to avoid hijacking copy/move constructors),</li> <li><code>CompatibleType</code> is not a different <code>basic_json</code> type (i.e. with different template arguments)</li> <li><code>CompatibleType</code> is not a <code>basic_json</code> nested type (e.g., <code>json_pointer</code>, <code>iterator</code>, etc.)</li> <li><code>json_serializer&lt;U&gt;</code> (with <code>U = uncvref_t&lt;CompatibleType&gt;</code>) has a <code>to_json(basic_json_t&amp;, CompatibleType&amp;&amp;)</code> method</li> </ul> </dd> <dt><code>BasicJsonType</code>:</dt> <dd> <p>a type such that:</p> <ul> <li><code>BasicJsonType</code> is a <code>basic_json</code> type.</li> <li><code>BasicJsonType</code> has different template arguments than <code>basic_json_t</code>.</li> </ul> </dd> <dt><code>U</code>:</dt> <dd><code>uncvref_t&lt;CompatibleType&gt;</code></dd> </dl> <h2 id=parameters>Parameters<a class=headerlink href=#parameters title="Permanent link">&para;</a></h2> <dl> <dt><code>v</code> (in)</dt> <dd>the type of the value to create</dd> <dt><code>val</code> (in)</dt> <dd>the value to be forwarded to the respective constructor</dd> <dt><code>init</code> (in)</dt> <dd>initializer list with JSON values</dd> <dt><code>type_deduction</code> (in)</dt> <dd>internal parameter; when set to <code class=highlight><span class=nb>true</span></code>, the type of the JSON value is deducted from the initializer list <code>init</code>; when set to <code class=highlight><span class=nb>false</span></code>, the type provided via <code>manual_type</code> is forced. This mode is used by the functions <code>array(initializer_list_t)</code> and <code>object(initializer_list_t)</code>.</dd> <dt><code>manual_type</code> (in)</dt> <dd>internal parameter; when <code>type_deduction</code> is set to <code class=highlight><span class=nb>false</span></code>, the created JSON value will use the provided type (only <code>value_t::array</code> and <code>value_t::object</code> are valid); when <code>type_deduction</code> is set to <code class=highlight><span class=nb>true</span></code>, this parameter has no effect</dd> <dt><code>cnt</code> (in)</dt> <dd>the number of JSON copies of <code>val</code> to create</dd> <dt><code>first</code> (in)</dt> <dd>begin of the range to copy from (included)</dd> <dt><code>last</code> (in)</dt> <dd>end of the range to copy from (excluded)</dd> <dt><code>other</code> (in)</dt> <dd>the JSON value to copy/move</dd> </dl> <h2 id=exception-safety>Exception safety<a class=headerlink href=#exception-safety title="Permanent link">&para;</a></h2> <ol> <li>Strong guarantee: if an exception is thrown, there are no changes to any JSON value.</li> <li>No-throw guarantee: this constructor never throws exceptions.</li> <li>Depends on the called constructor. For types directly supported by the library (i.e., all types for which no <code>to_json()</code> function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.</li> <li>Depends on the called constructor. For types directly supported by the library (i.e., all types for which no <code>to_json()</code> function was provided), strong guarantee holds: if an exception is thrown, there are no changes to any JSON value.</li> <li>Strong guarantee: if an exception is thrown, there are no changes to any JSON value.</li> <li>Strong guarantee: if an exception is thrown, there are no changes to any JSON value.</li> <li>Strong guarantee: if an exception is thrown, there are no changes to any JSON value.</li> <li>Strong guarantee: if an exception is thrown, there are no changes to any JSON value.</li> <li>No-throw guarantee: this constructor never throws exceptions.</li> </ol> <h2 id=exceptions>Exceptions<a class=headerlink href=#exceptions title="Permanent link">&para;</a></h2> <ol> <li>(none)</li> <li>The function does not throw exceptions.</li> <li>(none)</li> <li>(none)</li> <li>The function can throw the following exceptions:<ul> <li>Throws <a href=../../../home/exceptions/#jsonexceptiontype_error301><code>type_error.301</code></a> if <code>type_deduction</code> is <code class=highlight><span class=nb>false</span></code>, <code>manual_type</code> is <code>value_t::object</code>, but <code>init</code> 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 <code>type_deduction</code> would have been <code class=highlight><span class=nb>true</span></code>, an array would have been created. See <code>object(initializer_list_t)</code> for an example.</li> </ul> </li> <li>(none)</li> <li>The function can throw the following exceptions:<ul> <li>Throws <a href=../../../home/exceptions/#jsonexceptioninvalid_iterator201><code>invalid_iterator.201</code></a> if iterators <code>first</code> and <code>last</code> are not compatible (i.e., do not belong to the same JSON value). In this case, the range <code>[first, last)</code> is undefined.</li> <li>Throws <a href=../../../home/exceptions/#jsonexceptioninvalid_iterator204><code>invalid_iterator.204</code></a> if iterators <code>first</code> and <code>last</code> belong to a primitive type (number, boolean, or string), but <code>first</code> does not point to the first element anymore. In this case, the range <code>[first, last)</code> is undefined. See example code below.</li> <li>Throws <a href=../../../home/exceptions/#jsonexceptioninvalid_iterator206><code>invalid_iterator.206</code></a> if iterators <code>first</code> and <code>last</code> belong to a <code class=highlight><span class=kc>null</span></code> value. In this case, the range <code>[first, last)</code> is undefined.</li> </ul> </li> <li>(none)</li> <li>The function does not throw exceptions.</li> </ol> <h2 id=complexity>Complexity<a class=headerlink href=#complexity title="Permanent link">&para;</a></h2> <ol> <li>Constant.</li> <li>Constant.</li> <li>Usually linear in the size of the passed <code>val</code>, also depending on the implementation of the called <code>to_json()</code> method.</li> <li>Usually linear in the size of the passed <code>val</code>, also depending on the implementation of the called <code>to_json()</code> method.</li> <li>Linear in the size of the initializer list <code>init</code>.</li> <li>Linear in <code>cnt</code>.</li> <li>Linear in distance between <code>first</code> and <code>last</code>.</li> <li>Linear in the size of <code>other</code>.</li> <li>Constant.</li> </ol> <h2 id=notes>Notes<a class=headerlink href=#notes title="Permanent link">&para;</a></h2> <ul> <li> <p>Overload 5:</p> <div class="admonition note"> <p class=admonition-title>Empty initializer list</p> <p>When used without parentheses around an empty initializer list, <code>basic_json()</code> is called instead of this function, yielding the JSON <code class=highlight><span class=kc>null</span></code> value.</p> </div> </li> <li> <p>Overload 7:</p> <div class="admonition info"> <p class=admonition-title>Preconditions</p> <ul> <li>Iterators <code>first</code> and <code>last</code> must be initialized. **This precondition is enforced with a <a href=../../../features/assertions/ >runtime assertion</a>.</li> <li>Range <code>[first, last)</code> 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.</li> </ul> </div> <div class="admonition danger"> <p class=admonition-title>Runtime assertion</p> <p>A precondition is enforced with a <a href=../../../features/assertions/ >runtime assertion</a>.</p> </div> </li> <li> <p>Overload 8:</p> <div class="admonition info"> <p class=admonition-title>Postcondition</p> <p><code class=highlight><span class=o>*</span><span class=k>this</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>other</span></code></p> </div> </li> <li> <p>Overload 9:</p> <div class="admonition info"> <p class=admonition-title>Postconditions</p> <ul> <li><code class=highlight><span class=err>`</span><span class=o>*</span><span class=k>this</span></code> has the same value as <code>other</code> before the call.</li> <li><code>other</code> is a JSON <code class=highlight><span class=kc>null</span></code> value</li> </ul> </div> </li> </ul> <h2 id=examples>Examples<a class=headerlink href=#examples title="Permanent link">&para;</a></h2> <details class=example> <summary>Example: (1) create an empty value with a given type</summary> <p>The following code shows the constructor for different <code>value_t</code> values.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create the different JSON values with default values</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_null</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>null</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_boolean</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>boolean</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_number_integer</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>number_integer</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_number_float</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>number_float</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_object</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>object</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>array</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_string</span><span class=p>(</span><span class=n>json</span><span class=o>::</span><span class=n>value_t</span><span class=o>::</span><span class=n>string</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON values</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_null</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_boolean</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_number_integer</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_number_float</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_object</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_array</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_string</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=kc>null</span>
<span class=kc>false</span>
<span class=mi>0</span>
<span class=mf>0.0</span>
<span class=p>{}</span>
<span class=p>[]</span>
<span class=s2>&quot;&quot;</span>
</code></pre></div> </details> <details class=example> <summary>Example: (2) create a <code class=highlight><span class=kc>null</span></code> object</summary> <p>The following code shows the constructor with and without a null pointer parameter.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// implicitly create a JSON null value</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j1</span><span class=p>;</span>
<span class=w> </span><span class=c1>// explicitly create a JSON null value</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j2</span><span class=p>(</span><span class=k>nullptr</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON null value</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j1</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j2</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=kc>null</span>
<span class=kc>null</span>
</code></pre></div> </details> <details class=example> <summary>Example: (3) create a JSON value from compatible types</summary> <p>The following code shows the constructor with several compatible types.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;deque&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;list&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;forward_list&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;set&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;unordered_map&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;unordered_set&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;valarray&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// object types</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// create an object from an object_t value</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>object_t</span><span class=w> </span><span class=n>object_value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>1</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>}</span><span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_object_t</span><span class=p>(</span><span class=n>object_value</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an object from std::map</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>map</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_map</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>1</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>}</span>
<span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_map</span><span class=p>(</span><span class=n>c_map</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an object from std::unordered_map</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>unordered_map</span><span class=o>&lt;</span><span class=k>const</span><span class=w> </span><span class=kt>char</span><span class=o>*</span><span class=p>,</span><span class=w> </span><span class=kt>double</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_umap</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=mf>1.2</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mf>2.3</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=mf>3.4</span><span class=p>}</span>
<span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_umap</span><span class=p>(</span><span class=n>c_umap</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an object from std::multimap</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>multimap</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=p>,</span><span class=w> </span><span class=kt>bool</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_mmap</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>}</span>
<span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_mmap</span><span class=p>(</span><span class=n>c_mmap</span><span class=p>);</span><span class=w> </span><span class=c1>// only one entry for key &quot;three&quot; is used</span>
<span class=w> </span><span class=c1>// create an object from std::unordered_multimap</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>unordered_multimap</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=p>,</span><span class=w> </span><span class=kt>bool</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_ummap</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>}</span>
<span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_ummap</span><span class=p>(</span><span class=n>c_ummap</span><span class=p>);</span><span class=w> </span><span class=c1>// only one entry for key &quot;three&quot; is used</span>
<span class=w> </span><span class=c1>// serialize the JSON objects</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_object_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_map</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_umap</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_mmap</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_ummap</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=c1>// ===========</span>
<span class=w> </span><span class=c1>// array types</span>
<span class=w> </span><span class=c1>// ===========</span>
<span class=w> </span><span class=c1>// create an array from an array_t value</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>array_t</span><span class=w> </span><span class=n>array_value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>,</span><span class=w> </span><span class=mf>4.5</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array_t</span><span class=p>(</span><span class=n>array_value</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::vector</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_vector</span><span class=w> </span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>,</span><span class=w> </span><span class=mi>4</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_vec</span><span class=p>(</span><span class=n>c_vector</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::valarray</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>valarray</span><span class=o>&lt;</span><span class=kt>short</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_valarray</span><span class=w> </span><span class=p>{</span><span class=mi>10</span><span class=p>,</span><span class=w> </span><span class=mi>9</span><span class=p>,</span><span class=w> </span><span class=mi>8</span><span class=p>,</span><span class=w> </span><span class=mi>7</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_valarray</span><span class=p>(</span><span class=n>c_valarray</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::deque</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>deque</span><span class=o>&lt;</span><span class=kt>double</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_deque</span><span class=w> </span><span class=p>{</span><span class=mf>1.2</span><span class=p>,</span><span class=w> </span><span class=mf>2.3</span><span class=p>,</span><span class=w> </span><span class=mf>3.4</span><span class=p>,</span><span class=w> </span><span class=mf>5.6</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_deque</span><span class=p>(</span><span class=n>c_deque</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::list</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>list</span><span class=o>&lt;</span><span class=kt>bool</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_list</span><span class=w> </span><span class=p>{</span><span class=nb>true</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>,</span><span class=w> </span><span class=nb>true</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_list</span><span class=p>(</span><span class=n>c_list</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::forward_list</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>forward_list</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>int64_t</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_flist</span><span class=w> </span><span class=p>{</span><span class=mi>12345678909876</span><span class=p>,</span><span class=w> </span><span class=mi>23456789098765</span><span class=p>,</span><span class=w> </span><span class=mi>34567890987654</span><span class=p>,</span><span class=w> </span><span class=mi>45678909876543</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_flist</span><span class=p>(</span><span class=n>c_flist</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::array</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>array</span><span class=o>&lt;</span><span class=kt>unsigned</span><span class=w> </span><span class=kt>long</span><span class=p>,</span><span class=w> </span><span class=mi>4</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_array</span><span class=w> </span><span class=p>{{</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>,</span><span class=w> </span><span class=mi>4</span><span class=p>}};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array</span><span class=p>(</span><span class=n>c_array</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create an array from std::set</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>set</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_set</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;four&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;one&quot;</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_set</span><span class=p>(</span><span class=n>c_set</span><span class=p>);</span><span class=w> </span><span class=c1>// only one entry for &quot;one&quot; is used</span>
<span class=w> </span><span class=c1>// create an array from std::unordered_set</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>unordered_set</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_uset</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;three&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;four&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;one&quot;</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_uset</span><span class=p>(</span><span class=n>c_uset</span><span class=p>);</span><span class=w> </span><span class=c1>// only one entry for &quot;one&quot; is used</span>
<span class=w> </span><span class=c1>// create an array from std::multiset</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>multiset</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_mset</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;four&quot;</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_mset</span><span class=p>(</span><span class=n>c_mset</span><span class=p>);</span><span class=w> </span><span class=c1>// both entries for &quot;one&quot; are used</span>
<span class=w> </span><span class=c1>// create an array from std::unordered_multiset</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>unordered_multiset</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=o>&gt;</span><span class=w> </span><span class=n>c_umset</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;four&quot;</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_umset</span><span class=p>(</span><span class=n>c_umset</span><span class=p>);</span><span class=w> </span><span class=c1>// both entries for &quot;one&quot; are used</span>
<span class=w> </span><span class=c1>// serialize the JSON arrays</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_array_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_vec</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_valarray</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_deque</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_list</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_flist</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_array</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_set</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_uset</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_mset</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_umset</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// string types</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// create string from a string_t value</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>string_t</span><span class=w> </span><span class=n>string_value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&quot;The quick brown fox jumps over the lazy dog.&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_string_t</span><span class=p>(</span><span class=n>string_value</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create a JSON string directly from a string literal</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_string_literal</span><span class=p>(</span><span class=s>&quot;The quick brown fox jumps over the lazy dog.&quot;</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create string from std::string</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>s_stdstring</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&quot;The quick brown fox jumps over the lazy dog.&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_stdstring</span><span class=p>(</span><span class=n>s_stdstring</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON strings</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_string_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_string_literal</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_stdstring</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// number types</span>
<span class=w> </span><span class=c1>// ============</span>
<span class=w> </span><span class=c1>// create a JSON number from number_integer_t</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>number_integer_t</span><span class=w> </span><span class=n>value_integer_t</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>-42</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_integer_t</span><span class=p>(</span><span class=n>value_integer_t</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create a JSON number from number_unsigned_t</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>number_integer_t</span><span class=w> </span><span class=n>value_unsigned_t</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>17</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_unsigned_t</span><span class=p>(</span><span class=n>value_unsigned_t</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create a JSON number from an anonymous enum</span>
<span class=w> </span><span class=k>enum</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=n>enum_value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>17</span><span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_enum</span><span class=p>(</span><span class=n>enum_value</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create values of different integer types</span>
<span class=w> </span><span class=kt>short</span><span class=w> </span><span class=n>n_short</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>42</span><span class=p>;</span>
<span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>n_int</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>-23</span><span class=p>;</span>
<span class=w> </span><span class=kt>long</span><span class=w> </span><span class=n>n_long</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>1024</span><span class=p>;</span>
<span class=w> </span><span class=kt>int_least32_t</span><span class=w> </span><span class=n>n_int_least32_t</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>-17</span><span class=p>;</span>
<span class=w> </span><span class=kt>uint8_t</span><span class=w> </span><span class=n>n_uint8_t</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>8</span><span class=p>;</span>
<span class=w> </span><span class=c1>// create (integer) JSON numbers</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_short</span><span class=p>(</span><span class=n>n_short</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_int</span><span class=p>(</span><span class=n>n_int</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_long</span><span class=p>(</span><span class=n>n_long</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_int_least32_t</span><span class=p>(</span><span class=n>n_int_least32_t</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_uint8_t</span><span class=p>(</span><span class=n>n_uint8_t</span><span class=p>);</span>
<span class=w> </span><span class=c1>// create values of different floating-point types</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>number_float_t</span><span class=w> </span><span class=n>v_ok</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mf>3.141592653589793</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>number_float_t</span><span class=w> </span><span class=n>v_nan</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>NAN</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>number_float_t</span><span class=w> </span><span class=n>v_infinity</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>INFINITY</span><span class=p>;</span>
<span class=w> </span><span class=c1>// create values of different floating-point types</span>
<span class=w> </span><span class=kt>float</span><span class=w> </span><span class=n>n_float</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mf>42.23</span><span class=p>;</span>
<span class=w> </span><span class=kt>float</span><span class=w> </span><span class=n>n_float_nan</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mf>1.0f</span><span class=w> </span><span class=o>/</span><span class=w> </span><span class=mf>0.0f</span><span class=p>;</span>
<span class=w> </span><span class=kt>double</span><span class=w> </span><span class=n>n_double</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mf>23.42</span><span class=p>;</span>
<span class=w> </span><span class=c1>// create (floating point) JSON numbers</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_ok</span><span class=p>(</span><span class=n>v_ok</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_nan</span><span class=p>(</span><span class=n>v_nan</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_infinity</span><span class=p>(</span><span class=n>v_infinity</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_float</span><span class=p>(</span><span class=n>n_float</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_float_nan</span><span class=p>(</span><span class=n>n_float_nan</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_double</span><span class=p>(</span><span class=n>n_double</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON numbers</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_integer_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_unsigned_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_enum</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_short</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_int</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_long</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_int_least32_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_uint8_t</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_ok</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_nan</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_infinity</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_float</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_float_nan</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_double</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=c1>// =============</span>
<span class=w> </span><span class=c1>// boolean types</span>
<span class=w> </span><span class=c1>// =============</span>
<span class=w> </span><span class=c1>// create boolean values</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_truth</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=nb>true</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_falsity</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=nb>false</span><span class=p>;</span>
<span class=w> </span><span class=c1>// serialize the JSON booleans</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_truth</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_falsity</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=mi>2</span><span class=p>}</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span><span class=nt>&quot;three&quot;</span><span class=p>:</span><span class=mi>3</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=mi>2</span><span class=p>}</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=mf>1.2</span><span class=p>,</span><span class=nt>&quot;three&quot;</span><span class=p>:</span><span class=mf>3.4</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=mf>2.3</span><span class=p>}</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=kc>true</span><span class=p>,</span><span class=nt>&quot;three&quot;</span><span class=p>:</span><span class=kc>false</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=kc>true</span><span class=p>}</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=kc>true</span><span class=p>,</span><span class=nt>&quot;three&quot;</span><span class=p>:</span><span class=kc>false</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=kc>true</span><span class=p>}</span>
<span class=p>[</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mf>4.5</span><span class=p>,</span><span class=kc>false</span><span class=p>]</span>
<span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>4</span><span class=p>]</span>
<span class=p>[</span><span class=mi>10</span><span class=p>,</span><span class=mi>9</span><span class=p>,</span><span class=mi>8</span><span class=p>,</span><span class=mi>7</span><span class=p>]</span>
<span class=p>[</span><span class=mf>1.2</span><span class=p>,</span><span class=mf>2.3</span><span class=p>,</span><span class=mf>3.4</span><span class=p>,</span><span class=mf>5.6</span><span class=p>]</span>
<span class=p>[</span><span class=kc>true</span><span class=p>,</span><span class=kc>true</span><span class=p>,</span><span class=kc>false</span><span class=p>,</span><span class=kc>true</span><span class=p>]</span>
<span class=p>[</span><span class=mi>12345678909876</span><span class=p>,</span><span class=mi>23456789098765</span><span class=p>,</span><span class=mi>34567890987654</span><span class=p>,</span><span class=mi>45678909876543</span><span class=p>]</span>
<span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>4</span><span class=p>]</span>
<span class=p>[</span><span class=s2>&quot;four&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;three&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>]</span>
<span class=p>[</span><span class=s2>&quot;four&quot;</span><span class=p>,</span><span class=s2>&quot;three&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>]</span>
<span class=p>[</span><span class=s2>&quot;four&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>]</span>
<span class=p>[</span><span class=s2>&quot;four&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;one&quot;</span><span class=p>]</span>
<span class=s2>&quot;The quick brown fox jumps over the lazy dog.&quot;</span>
<span class=s2>&quot;The quick brown fox jumps over the lazy dog.&quot;</span>
<span class=s2>&quot;The quick brown fox jumps over the lazy dog.&quot;</span>
<span class=mi>-42</span>
<span class=mi>17</span>
<span class=mi>17</span>
<span class=mi>42</span>
<span class=mi>-23</span>
<span class=mi>1024</span>
<span class=mi>-17</span>
<span class=mi>8</span>
<span class=mf>3.141592653589793</span>
<span class=kc>null</span>
<span class=kc>null</span>
<span class=mf>42.22999954223633</span>
<span class=kc>null</span>
<span class=mf>23.42</span>
<span class=kc>true</span>
<span class=kc>false</span>
</code></pre></div> <p>Note the output is platform-dependent.</p> </details> <details class=example> <summary>Example: (5) create a container (array or object) from an initializer list</summary> <p>The example below shows how JSON values are created from initializer lists.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create JSON values</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_empty_init_list</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=p>({});</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_object</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>1</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>}</span><span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>,</span><span class=w> </span><span class=mi>4</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_nested_object</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=p>{</span><span class=mi>1</span><span class=p>}},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>}}</span><span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_nested_array</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=p>{{</span><span class=mi>1</span><span class=p>},</span><span class=w> </span><span class=s>&quot;one&quot;</span><span class=p>},</span><span class=w> </span><span class=p>{{</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>},</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>}</span><span class=w> </span><span class=p>};</span>
<span class=w> </span><span class=c1>// serialize the JSON value</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_empty_init_list</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_object</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_array</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_nested_object</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_nested_array</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>{}</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span><span class=nt>&quot;two&quot;</span><span class=p>:</span><span class=mi>2</span><span class=p>}</span>
<span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>4</span><span class=p>]</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:[</span><span class=mi>1</span><span class=p>],</span><span class=nt>&quot;two&quot;</span><span class=p>:[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>]}</span>
<span class=p>[[[</span><span class=mi>1</span><span class=p>],</span><span class=s2>&quot;one&quot;</span><span class=p>],[[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>],</span><span class=s2>&quot;two&quot;</span><span class=p>]]</span>
</code></pre></div> </details> <details class=example> <summary>Example: (6) construct an array with count copies of given value</summary> <p>The following code shows examples for creating arrays with several copies of a given value.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create an array by creating copies of a JSON value</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>value</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&quot;Hello&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>array_0</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=w> </span><span class=n>value</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>array_1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=n>value</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>array_5</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=mi>5</span><span class=p>,</span><span class=w> </span><span class=n>value</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON arrays</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>array_0</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>array_1</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>array_5</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[]</span>
<span class=p>[</span><span class=s2>&quot;Hello&quot;</span><span class=p>]</span>
<span class=p>[</span><span class=s2>&quot;Hello&quot;</span><span class=p>,</span><span class=s2>&quot;Hello&quot;</span><span class=p>,</span><span class=s2>&quot;Hello&quot;</span><span class=p>,</span><span class=s2>&quot;Hello&quot;</span><span class=p>,</span><span class=s2>&quot;Hello&quot;</span><span class=p>]</span>
</code></pre></div> </details> <details class=example> <summary>Example: (7) construct a JSON container given an iterator range</summary> <p>The example below shows several ways to create JSON values by specifying a subrange with iterators.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create JSON values</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&quot;alpha&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;bravo&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;charly&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;delta&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;easy&quot;</span><span class=p>};</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_number</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>42</span><span class=p>;</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_object</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;eins&quot;</span><span class=p>},</span><span class=w> </span><span class=p>{</span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;zwei&quot;</span><span class=p>}};</span>
<span class=w> </span><span class=c1>// create copies using iterators</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_array_range</span><span class=p>(</span><span class=n>j_array</span><span class=p>.</span><span class=n>begin</span><span class=p>()</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=n>j_array</span><span class=p>.</span><span class=n>end</span><span class=p>()</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=mi>2</span><span class=p>);</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_number_range</span><span class=p>(</span><span class=n>j_number</span><span class=p>.</span><span class=n>begin</span><span class=p>(),</span><span class=w> </span><span class=n>j_number</span><span class=p>.</span><span class=n>end</span><span class=p>());</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_object_range</span><span class=p>(</span><span class=n>j_object</span><span class=p>.</span><span class=n>begin</span><span class=p>(),</span><span class=w> </span><span class=n>j_object</span><span class=p>.</span><span class=n>find</span><span class=p>(</span><span class=s>&quot;two&quot;</span><span class=p>));</span>
<span class=w> </span><span class=c1>// serialize the values</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_array_range</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_number_range</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_object_range</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=c1>// example for an exception</span>
<span class=w> </span><span class=k>try</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_invalid</span><span class=p>(</span><span class=n>j_number</span><span class=p>.</span><span class=n>begin</span><span class=p>()</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=n>j_number</span><span class=p>.</span><span class=n>end</span><span class=p>());</span>
<span class=w> </span><span class=p>}</span>
<span class=w> </span><span class=k>catch</span><span class=w> </span><span class=p>(</span><span class=k>const</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>invalid_iterator</span><span class=o>&amp;</span><span class=w> </span><span class=n>e</span><span class=p>)</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>e</span><span class=p>.</span><span class=n>what</span><span class=p>()</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span><span class=s2>&quot;bravo&quot;</span><span class=p>,</span><span class=s2>&quot;charly&quot;</span><span class=p>]</span>
<span class=mi>42</span>
<span class=p>{</span><span class=nt>&quot;one&quot;</span><span class=p>:</span><span class=s2>&quot;eins&quot;</span><span class=p>}</span>
<span class=p>[</span><span class=err>jso</span><span class=kc>n</span><span class=err>.excep</span><span class=kc>t</span><span class=err>io</span><span class=kc>n</span><span class=err>.i</span><span class=kc>n</span><span class=err>valid_i</span><span class=kc>terat</span><span class=err>or.</span><span class=mi>204</span><span class=p>]</span><span class=w> </span><span class=err>i</span><span class=kc>terat</span><span class=err>ors</span><span class=w> </span><span class=err>ou</span><span class=kc>t</span><span class=w> </span><span class=err>o</span><span class=kc>f</span><span class=w> </span><span class=err>ra</span><span class=kc>n</span><span class=err>ge</span>
</code></pre></div> </details> <details class=example> <summary>Example: (8) copy constructor</summary> <p>The following code shows an example for the copy constructor.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create a JSON array</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&quot;one&quot;</span><span class=p>,</span><span class=w> </span><span class=s>&quot;two&quot;</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>,</span><span class=w> </span><span class=mf>4.5</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>};</span>
<span class=w> </span><span class=c1>// create a copy</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j2</span><span class=p>(</span><span class=n>j1</span><span class=p>);</span>
<span class=w> </span><span class=c1>// serialize the JSON array</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j1</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot; = &quot;</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j2</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>boolalpha</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=p>(</span><span class=n>j1</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>j2</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mf>4.5</span><span class=p>,</span><span class=kc>false</span><span class=p>]</span><span class=w> </span><span class=err>=</span><span class=w> </span><span class=p>[</span><span class=s2>&quot;one&quot;</span><span class=p>,</span><span class=s2>&quot;two&quot;</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mf>4.5</span><span class=p>,</span><span class=kc>false</span><span class=p>]</span>
<span class=kc>true</span>
</code></pre></div> </details> <details class=example> <summary>Example: (9) move constructor</summary> <p>The code below shows the move constructor explicitly called via <code>std::move</code>.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
<span class=k>using</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json</span><span class=p>;</span>
<span class=kt>int</span><span class=w> </span><span class=nf>main</span><span class=p>()</span>
<span class=p>{</span>
<span class=w> </span><span class=c1>// create a JSON value</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>a</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>23</span><span class=p>;</span>
<span class=w> </span><span class=c1>// move contents of a to b</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>b</span><span class=p>(</span><span class=n>std</span><span class=o>::</span><span class=n>move</span><span class=p>(</span><span class=n>a</span><span class=p>));</span>
<span class=w> </span><span class=c1>// serialize the JSON arrays</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>a</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=kc>null</span>
<span class=mi>23</span>
</code></pre></div> </details> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">&para;</a></h2> <ol> <li>Since version 1.0.0.</li> <li>Since version 1.0.0.</li> <li>Since version 2.1.0.</li> <li>Since version 3.2.0.</li> <li>Since version 1.0.0.</li> <li>Since version 1.0.0.</li> <li>Since version 1.0.0.</li> <li>Since version 1.0.0.</li> <li>Since version 1.0.0.</li> </ol> <hr> <div class=md-source-file> <small> Last update: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 29, 2022</span> </small> </div> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2013 - 2023 Niels Lohmann </div> </div> <div class=md-social> <a href=https://github.com/nlohmann target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> <a href=https://twitter.com/nlohmann target=_blank rel=noopener title=twitter.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> </a> <a href=https://www.linkedin.com/in/nielslohmann/ target=_blank rel=noopener title=www.linkedin.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg> </a> <a href=https://www.xing.com/profile/Niels_Lohmann target=_blank rel=noopener title=www.xing.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 384 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"/></svg> </a> <a href=https://www.paypal.me/nlohmann target=_blank rel=noopener title=www.paypal.me class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 384 512"><!-- Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "../../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "navigation.top", "content.tabs.link"], "search": "../../../assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src=../../../assets/javascripts/bundle.aecac24b.min.js></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script> </body> </html>