| <!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/" rel="canonical"><link href=../../integration/pkg-config/ rel=prev><link href=basic_json/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.5.50"><title>Overview - JSON for Modern C++</title><link rel=stylesheet href=../../assets/stylesheets/main.a40c8224.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.06af60db.min.css><link rel="stylesheet" href="../../assets/external/fonts.googleapis.com/css.61a430c9.css"><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> <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_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.54"/></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 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></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> Overview </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_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 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 12z"/></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_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 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 12s-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 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <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.52 6.52 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 5"/></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.52 6.52 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 5"/></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 11z"/></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 12z"/></svg> </button> </nav> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 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 496 512"><!-- Font Awesome Free 6.7.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 2024 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.6m-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.3m44.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.9M244.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 8M97.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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> <li class=md-tabs__item> <a href=../../community/ class=md-tabs__link> Community </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.54"/></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 496 512"><!-- Font Awesome Free 6.7.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 2024 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.6m-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.3m44.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.9M244.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 8M97.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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--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=0> <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/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/architecture/ class=md-nav__link> <span class=md-ellipsis> Architecture </span> </a> </li> <li class=md-nav__item> <a href=../../home/customers/ class=md-nav__link> <span class=md-ellipsis> Customers </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--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=0> <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--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=0> <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 md-nav__link--active"> <span class=md-ellipsis> basic_json </span> </a> <label class="md-nav__link md-nav__link--active" 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> <a href=basic_json/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </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=end_pos/ class=md-nav__link> <span class=md-ellipsis> end_pos </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<basic_json> </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=start_pos/ class=md-nav__link> <span class=md-ellipsis> start_pos </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<basic_json> </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), 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_13> <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_13 id=__nav_4_13_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_13_label aria-expanded=false> <label class=md-nav__title for=__nav_4_13> <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, JSON_THROW_USER, JSON_TRY_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_diagnostic_positions/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTIC_POSITIONS </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, JSON_HAS_CPP_14, JSON_HAS_CPP_17, 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, 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_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_derived_type/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE </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, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE </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, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE </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, 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, NLOHMANN_JSON_VERSION_MINOR, NLOHMANN_JSON_VERSION_PATCH </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_5> <div class="md-nav__link md-nav__container"> <a href=../../community/ class="md-nav__link "> <span class=md-ellipsis> Community </span> </a> <label class="md-nav__link " for=__nav_5 id=__nav_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> Community </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../community/code_of_conduct/ class=md-nav__link> <span class=md-ellipsis> Code of Conduct </span> </a> </li> <li class=md-nav__item> <a href=../../community/contribution_guidelines/ class=md-nav__link> <span class=md-ellipsis> Contribution Guidelines </span> </a> </li> <li class=md-nav__item> <a href=../../community/quality_assurance/ class=md-nav__link> <span class=md-ellipsis> Quality assurance </span> </a> </li> <li class=md-nav__item> <a href=../../community/governance/ class=md-nav__link> <span class=md-ellipsis> Governance </span> </a> </li> <li class=md-nav__item> <a href=../../community/security_policy/ class=md-nav__link> <span class=md-ellipsis> Security Policy </span> </a> </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> <span class=md-ellipsis> Template parameters </span> </a> </li> <li class=md-nav__item> <a href=#specializations class=md-nav__link> <span class=md-ellipsis> Specializations </span> </a> </li> <li class=md-nav__item> <a href=#iterator-invalidation class=md-nav__link> <span class=md-ellipsis> Iterator invalidation </span> </a> </li> <li class=md-nav__item> <a href=#requirements class=md-nav__link> <span class=md-ellipsis> Requirements </span> </a> <nav class=md-nav aria-label=Requirements> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic class=md-nav__link> <span class=md-ellipsis> Basic </span> </a> </li> <li class=md-nav__item> <a href=#layout class=md-nav__link> <span class=md-ellipsis> Layout </span> </a> </li> <li class=md-nav__item> <a href=#library-wide class=md-nav__link> <span class=md-ellipsis> Library-wide </span> </a> </li> <li class=md-nav__item> <a href=#container class=md-nav__link> <span class=md-ellipsis> Container </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#member-types class=md-nav__link> <span class=md-ellipsis> Member types </span> </a> <nav class=md-nav aria-label="Member types"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#exceptions class=md-nav__link> <span class=md-ellipsis> Exceptions </span> </a> </li> <li class=md-nav__item> <a href=#container-types class=md-nav__link> <span class=md-ellipsis> Container types </span> </a> </li> <li class=md-nav__item> <a href=#json-value-data-types class=md-nav__link> <span class=md-ellipsis> JSON value data types </span> </a> </li> <li class=md-nav__item> <a href=#parser-callback class=md-nav__link> <span class=md-ellipsis> Parser callback </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#member-functions class=md-nav__link> <span class=md-ellipsis> Member functions </span> </a> <nav class=md-nav aria-label="Member functions"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#object-inspection class=md-nav__link> <span class=md-ellipsis> Object inspection </span> </a> </li> <li class=md-nav__item> <a href=#value-access class=md-nav__link> <span class=md-ellipsis> Value access </span> </a> </li> <li class=md-nav__item> <a href=#element-access class=md-nav__link> <span class=md-ellipsis> Element access </span> </a> </li> <li class=md-nav__item> <a href=#lookup class=md-nav__link> <span class=md-ellipsis> Lookup </span> </a> </li> <li class=md-nav__item> <a href=#iterators class=md-nav__link> <span class=md-ellipsis> Iterators </span> </a> </li> <li class=md-nav__item> <a href=#capacity class=md-nav__link> <span class=md-ellipsis> Capacity </span> </a> </li> <li class=md-nav__item> <a href=#modifiers class=md-nav__link> <span class=md-ellipsis> Modifiers </span> </a> </li> <li class=md-nav__item> <a href=#lexicographical-comparison-operators class=md-nav__link> <span class=md-ellipsis> Lexicographical comparison operators </span> </a> </li> <li class=md-nav__item> <a href=#serialization-dumping class=md-nav__link> <span class=md-ellipsis> Serialization / Dumping </span> </a> </li> <li class=md-nav__item> <a href=#deserialization-parsing class=md-nav__link> <span class=md-ellipsis> Deserialization / Parsing </span> </a> </li> <li class=md-nav__item> <a href=#json-pointer-functions class=md-nav__link> <span class=md-ellipsis> JSON Pointer functions </span> </a> </li> <li class=md-nav__item> <a href=#json-patch-functions class=md-nav__link> <span class=md-ellipsis> JSON Patch functions </span> </a> </li> <li class=md-nav__item> <a href=#json-merge-patch-functions class=md-nav__link> <span class=md-ellipsis> JSON Merge Patch functions </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#static-functions class=md-nav__link> <span class=md-ellipsis> Static functions </span> </a> <nav class=md-nav aria-label="Static functions"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#binary-formats class=md-nav__link> <span class=md-ellipsis> Binary formats </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#non-member-functions class=md-nav__link> <span class=md-ellipsis> Non-member functions </span> </a> </li> <li class=md-nav__item> <a href=#literals class=md-nav__link> <span class=md-ellipsis> Literals </span> </a> </li> <li class=md-nav__item> <a href=#helper-classes class=md-nav__link> <span class=md-ellipsis> Helper classes </span> </a> </li> <li class=md-nav__item> <a href=#examples class=md-nav__link> <span class=md-ellipsis> Examples </span> </a> </li> <li class=md-nav__item> <a href=#see-also class=md-nav__link> <span class=md-ellipsis> See also </span> </a> </li> <li class=md-nav__item> <a href=#version-history class=md-nav__link> <span class=md-ellipsis> Version history </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <a href="https://github.com/nlohmann/json/edit/develop/docs/mkdocs/docs/api/basic_json/index.md" title="Edit this page" class="md-content__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg> </a> <a href="https://github.com/nlohmann/json/raw/develop/docs/mkdocs/docs/api/basic_json/index.md" title="View source of this page" class="md-content__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg> </a> <h1 id=nlohmannbasic_json><small>nlohmann::</small>basic_json<a class=headerlink href=#nlohmannbasic_json title="Permanent link">¶</a></h1> <p><small>Defined in header <code><nlohmann/json.hpp></code></small></p> <div class=highlight><pre><span></span><code><span class=k>template</span><span class=o><</span> |
| <span class=w> </span><span class=k>template</span><span class=o><</span><span class=k>typename</span><span class=w> </span><span class=nc>U</span><span class=p>,</span><span class=w> </span><span class=k>typename</span><span class=w> </span><span class=nc>V</span><span class=p>,</span><span class=w> </span><span class=k>typename</span><span class=p>...</span><span class=w> </span><span class=n>Args</span><span class=o>></span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>ObjectType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>map</span><span class=p>,</span> |
| <span class=w> </span><span class=k>template</span><span class=o><</span><span class=k>typename</span><span class=w> </span><span class=nc>U</span><span class=p>,</span><span class=w> </span><span class=k>typename</span><span class=p>...</span><span class=w> </span><span class=n>Args</span><span class=o>></span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>ArrayType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>StringType</span><span class=w> </span><span class=o>=</span><span class=w> </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=k>class</span><span class=w> </span><span class=nc>BooleanType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kt>bool</span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>NumberIntegerType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=kt>int64_t</span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>NumberUnsignedType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=kt>uint64_t</span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>NumberFloatType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kt>double</span><span class=p>,</span> |
| <span class=w> </span><span class=k>template</span><span class=o><</span><span class=k>typename</span><span class=w> </span><span class=nc>U</span><span class=o>></span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>AllocatorType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>allocator</span><span class=p>,</span> |
| <span class=w> </span><span class=k>template</span><span class=o><</span><span class=k>typename</span><span class=w> </span><span class=nc>T</span><span class=p>,</span><span class=w> </span><span class=k>typename</span><span class=w> </span><span class=nc>SFINAE</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kt>void</span><span class=o>></span><span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>JSONSerializer</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>adl_serializer</span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>BinaryType</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o><</span><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span><span class=o>></span><span class=p>,</span> |
| <span class=w> </span><span class=k>class</span><span class=w> </span><span class=nc>CustomBaseClass</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kt>void</span> |
| <span class=o>></span> |
| <span class=k>class</span><span class=w> </span><span class=nc>basic_json</span><span class=p>;</span> |
| </code></pre></div> <h2 id=template-parameters>Template parameters<a class=headerlink href=#template-parameters title="Permanent link">¶</a></h2> <table> <thead> <tr> <th>Template parameter</th> <th>Description</th> <th>Derived type</th> </tr> </thead> <tbody> <tr> <td><code>ObjectType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> objects</td> <td><a href=object_t/ ><code>object_t</code></a></td> </tr> <tr> <td><code>ArrayType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> arrays</td> <td><a href=array_t/ ><code>array_t</code></a></td> </tr> <tr> <td><code>StringType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> strings and object keys</td> <td><a href=string_t/ ><code>string_t</code></a></td> </tr> <tr> <td><code>BooleanType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> booleans</td> <td><a href=boolean_t/ ><code>boolean_t</code></a></td> </tr> <tr> <td><code>NumberIntegerType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> integer numbers</td> <td><a href=number_integer_t/ ><code>number_integer_t</code></a></td> </tr> <tr> <td><code>NumberUnsignedType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> unsigned integer numbers</td> <td><a href=number_unsigned_t/ ><code>number_unsigned_t</code></a></td> </tr> <tr> <td><code>NumberFloatType</code></td> <td>type for <abbr title="JavaScript Object Notation">JSON</abbr> floating-point numbers</td> <td><a href=number_float_t/ ><code>number_float_t</code></a></td> </tr> <tr> <td><code>AllocatorType</code></td> <td>type of the allocator to use</td> <td></td> </tr> <tr> <td><code>JSONSerializer</code></td> <td>the serializer to resolve internal calls to <code>to_json()</code> and <code>from_json()</code></td> <td><a href=json_serializer/ ><code>json_serializer</code></a></td> </tr> <tr> <td><code>BinaryType</code></td> <td>type for binary arrays</td> <td><a href=binary_t/ ><code>binary_t</code></a></td> </tr> <tr> <td><code>CustomBaseClass</code></td> <td>extension point for user code</td> <td><a href=json_base_class_t/ ><code>json_base_class_t</code></a></td> </tr> </tbody> </table> <h2 id=specializations>Specializations<a class=headerlink href=#specializations title="Permanent link">¶</a></h2> <ul> <li><a href=../json/ ><strong>json</strong></a> - default specialization</li> <li><a href=../ordered_json/ ><strong>ordered_json</strong></a> - specialization that maintains the insertion order of object keys</li> </ul> <h2 id=iterator-invalidation>Iterator invalidation<a class=headerlink href=#iterator-invalidation title="Permanent link">¶</a></h2> <p>All operations that add values to an <strong>array</strong> (<a href=push_back/ ><code>push_back</code></a> , <a href=operator%2B%3D/ ><code>operator+=</code></a>, <a href=emplace_back/ ><code>emplace_back</code></a>, <a href=insert/ ><code>insert</code></a>, and <a href=operator%5B%5D/ ><code>operator[]</code></a> for a non-existing index) can yield a reallocation, in which case all iterators (including the <a href=end/ ><code>end()</code></a> iterator) and all references to the elements are invalidated.</p> <p>For <a href=../ordered_json/ ><code>ordered_json</code></a>, also all operations that add a value to an <strong>object</strong> (<a href=push_back/ ><code>push_back</code></a>, <a href=operator%2B%3D/ ><code>operator+=</code></a>, <a href=emplace/ ><code>emplace</code></a>, <a href=insert/ ><code>insert</code></a>, <a href=update/ ><code>update</code></a>, and <a href=operator%5B%5D/ ><code>operator[]</code></a> for a non-existing key) can yield a reallocation, in which case all iterators (including the <a href=end/ ><code>end()</code></a> iterator) and all references to the elements are invalidated.</p> <h2 id=requirements>Requirements<a class=headerlink href=#requirements title="Permanent link">¶</a></h2> <p>The class satisfies the following concept requirements:</p> <h3 id=basic>Basic<a class=headerlink href=#basic title="Permanent link">¶</a></h3> <ul> <li><a href="https://en.cppreference.com/w/cpp/named_req/DefaultConstructible">DefaultConstructible</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be default constructed. The result will be a <abbr title="JavaScript Object Notation">JSON</abbr> null value.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/MoveConstructible">MoveConstructible</a>: A <abbr title="JavaScript Object Notation">JSON</abbr> value can be constructed from an rvalue argument.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/CopyConstructible">CopyConstructible</a>: A <abbr title="JavaScript Object Notation">JSON</abbr> value can be copy-constructed from an lvalue expression.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/MoveAssignable">MoveAssignable</a>: A <abbr title="JavaScript Object Notation">JSON</abbr> value can be assigned from an rvalue argument.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/CopyAssignable">CopyAssignable</a>: A <abbr title="JavaScript Object Notation">JSON</abbr> value can be copy-assigned from an lvalue expression.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/Destructible">Destructible</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be destructed.</li> </ul> <h3 id=layout>Layout<a class=headerlink href=#layout title="Permanent link">¶</a></h3> <ul> <li><a href="https://en.cppreference.com/w/cpp/named_req/StandardLayoutType">StandardLayoutType</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values have <a href="https://en.cppreference.com/w/cpp/language/data_members#Standard_layout">standard layout</a>: All non-static data members are private and standard layout types, the class has no virtual functions or (virtual) base classes.</li> </ul> <h3 id=library-wide>Library-wide<a class=headerlink href=#library-wide title="Permanent link">¶</a></h3> <ul> <li><a href="https://en.cppreference.com/w/cpp/named_req/EqualityComparable">EqualityComparable</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be compared with <code>==</code>, see <a href=operator_eq/ ><code>operator==</code></a>.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/LessThanComparable">LessThanComparable</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be compared with <code><</code>, see <a href=operator_le/ ><code>operator<</code></a>.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/Swappable">Swappable</a>: Any <abbr title="JavaScript Object Notation">JSON</abbr> lvalue or rvalue of can be swapped with any lvalue or rvalue of other compatible types, using unqualified function <code>swap</code>.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/NullablePointer">NullablePointer</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be compared against <code>std::nullptr_t</code> objects which are used to model the <code>null</code> value.</li> </ul> <h3 id=container>Container<a class=headerlink href=#container title="Permanent link">¶</a></h3> <ul> <li><a href="https://en.cppreference.com/w/cpp/named_req/Container">Container</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be used like <abbr title="Standard Template Library">STL</abbr> containers and provide iterator access.</li> <li><a href="https://en.cppreference.com/w/cpp/named_req/ReversibleContainer">ReversibleContainer</a>: <abbr title="JavaScript Object Notation">JSON</abbr> values can be used like <abbr title="Standard Template Library">STL</abbr> containers and provide reverse iterator access.</li> </ul> <h2 id=member-types>Member types<a class=headerlink href=#member-types title="Permanent link">¶</a></h2> <ul> <li><a href=../adl_serializer/ ><strong>adl_serializer</strong></a> - the default serializer</li> <li><a href=value_t/ ><strong>value_t</strong></a> - the <abbr title="JavaScript Object Notation">JSON</abbr> type enumeration</li> <li><a href=../json_pointer/ ><strong>json_pointer</strong></a> - <abbr title="JavaScript Object Notation">JSON</abbr> Pointer implementation</li> <li><a href=json_serializer/ ><strong>json_serializer</strong></a> - type of the serializer to for conversions from/to <abbr title="JavaScript Object Notation">JSON</abbr></li> <li><a href=error_handler_t/ ><strong>error_handler_t</strong></a> - type to choose behavior on decoding errors</li> <li><a href=cbor_tag_handler_t/ ><strong>cbor_tag_handler_t</strong></a> - type to choose how to handle <abbr title="Concise Binary Object Representation">CBOR</abbr> tags</li> <li><strong>initializer_list_t</strong> - type for initializer lists of <code>basic_json</code> values</li> <li><a href=input_format_t/ ><strong>input_format_t</strong></a> - type to choose the format to parse</li> <li><a href=../json_sax/ ><strong>json_sax_t</strong></a> - type for <abbr title="Simple API for XML">SAX</abbr> events</li> </ul> <h3 id=exceptions>Exceptions<a class=headerlink href=#exceptions title="Permanent link">¶</a></h3> <ul> <li><a href=exception/ ><strong>exception</strong></a> - general exception of the <code>basic_json</code> class<ul> <li><a href=parse_error/ ><strong>parse_error</strong></a> - exception indicating a parse error</li> <li><a href=invalid_iterator/ ><strong>invalid_iterator</strong></a> - exception indicating errors with iterators</li> <li><a href=type_error/ ><strong>type_error</strong></a> - exception indicating executing a member function with a wrong type</li> <li><a href=out_of_range/ ><strong>out_of_range</strong></a> - exception indicating access out of the defined range</li> <li><a href=other_error/ ><strong>other_error</strong></a> - exception indicating other library errors</li> </ul> </li> </ul> <h3 id=container-types>Container types<a class=headerlink href=#container-types title="Permanent link">¶</a></h3> <table> <thead> <tr> <th>Type</th> <th>Definition</th> </tr> </thead> <tbody> <tr> <td><code>value_type</code></td> <td><code class=highlight><span class=n>basic_json</span></code></td> </tr> <tr> <td><code>reference</code></td> <td><code class=highlight><span class=n>value_type</span><span class=o>&</span></code></td> </tr> <tr> <td><code>const_reference</code></td> <td><code class=highlight><span class=k>const</span><span class=w> </span><span class=n>value_type</span><span class=o>&</span></code></td> </tr> <tr> <td><code>difference_type</code></td> <td><code class=highlight><span class=n>std</span><span class=o>::</span><span class=kt>ptrdiff_t</span></code></td> </tr> <tr> <td><code>size_type</code></td> <td><code class=highlight><span class=n>std</span><span class=o>::</span><span class=kt>size_t</span></code></td> </tr> <tr> <td><code>allocator_type</code></td> <td><code class=highlight><span class=n>AllocatorType</span><span class=o><</span><span class=n>basic_json</span><span class=o>></span></code></td> </tr> <tr> <td><code>pointer</code></td> <td><code class=highlight><span class=n>std</span><span class=o>::</span><span class=n>allocator_traits</span><span class=o><</span><span class=n>allocator_type</span><span class=o>>::</span><span class=n>pointer</span></code></td> </tr> <tr> <td><code>const_pointer</code></td> <td><code class=highlight><span class=n>std</span><span class=o>::</span><span class=n>allocator_traits</span><span class=o><</span><span class=n>allocator_type</span><span class=o>>::</span><span class=n>const_pointer</span></code></td> </tr> <tr> <td><code>iterator</code></td> <td><a href="https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator">LegacyBidirectionalIterator</a></td> </tr> <tr> <td><code>const_iterator</code></td> <td>constant <a href="https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator">LegacyBidirectionalIterator</a></td> </tr> <tr> <td><code>reverse_iterator</code></td> <td>reverse iterator, derived from <code>iterator</code></td> </tr> <tr> <td><code>const_reverse_iterator</code></td> <td>reverse iterator, derived from <code>const_iterator</code></td> </tr> <tr> <td><code>iteration_proxy</code></td> <td>helper type for <a href=items/ ><code>items</code></a> function</td> </tr> </tbody> </table> <h3 id=json-value-data-types><abbr title="JavaScript Object Notation">JSON</abbr> value data types<a class=headerlink href=#json-value-data-types title="Permanent link">¶</a></h3> <ul> <li><a href=array_t/ ><strong>array_t</strong></a> - type for arrays</li> <li><a href=binary_t/ ><strong>binary_t</strong></a> - type for binary arrays</li> <li><a href=boolean_t/ ><strong>boolean_t</strong></a> - type for booleans</li> <li><a href=default_object_comparator_t/ ><strong>default_object_comparator_t</strong></a> - default comparator for objects</li> <li><a href=number_float_t/ ><strong>number_float_t</strong></a> - type for numbers (floating-point)</li> <li><a href=number_integer_t/ ><strong>number_integer_t</strong></a> - type for numbers (integer)</li> <li><a href=number_unsigned_t/ ><strong>number_unsigned_t</strong></a> - type for numbers (unsigned)</li> <li><a href=object_comparator_t/ ><strong>object_comparator_t</strong></a> - comparator for objects</li> <li><a href=object_t/ ><strong>object_t</strong></a> - type for objects</li> <li><a href=string_t/ ><strong>string_t</strong></a> - type for strings</li> </ul> <h3 id=parser-callback>Parser callback<a class=headerlink href=#parser-callback title="Permanent link">¶</a></h3> <ul> <li><a href=parse_event_t/ ><strong>parse_event_t</strong></a> - parser event types</li> <li><a href=parser_callback_t/ ><strong>parser_callback_t</strong></a> - per-element parser callback type</li> </ul> <h2 id=member-functions>Member functions<a class=headerlink href=#member-functions title="Permanent link">¶</a></h2> <ul> <li><a href=basic_json/ >(constructor)</a></li> <li><a href=~basic_json/ >(destructor)</a></li> <li><a href=operator%3D/ ><strong>operator=</strong></a> - copy assignment</li> <li><a href=array/ ><strong>array</strong></a> (<em>static</em>) - explicitly create an array</li> <li><a href=binary/ ><strong>binary</strong></a> (<em>static</em>) - explicitly create a binary array</li> <li><a href=object/ ><strong>object</strong></a> (<em>static</em>) - explicitly create an object</li> </ul> <h3 id=object-inspection>Object inspection<a class=headerlink href=#object-inspection title="Permanent link">¶</a></h3> <p>Functions to inspect the type of a <abbr title="JavaScript Object Notation">JSON</abbr> value.</p> <ul> <li><a href=type/ ><strong>type</strong></a> - return the type of the <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=operator_value_t/ ><strong>operator value_t</strong></a> - return the type of the <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=type_name/ ><strong>type_name</strong></a> - return the type as string</li> <li><a href=is_primitive/ ><strong>is_primitive</strong></a> - return whether type is primitive</li> <li><a href=is_structured/ ><strong>is_structured</strong></a> - return whether type is structured</li> <li><a href=is_null/ ><strong>is_null</strong></a> - return whether value is null</li> <li><a href=is_boolean/ ><strong>is_boolean</strong></a> - return whether value is a boolean</li> <li><a href=is_number/ ><strong>is_number</strong></a> - return whether value is a number</li> <li><a href=is_number_integer/ ><strong>is_number_integer</strong></a> - return whether value is an integer number</li> <li><a href=is_number_unsigned/ ><strong>is_number_unsigned</strong></a> - return whether value is an unsigned integer number</li> <li><a href=is_number_float/ ><strong>is_number_float</strong></a> - return whether value is a floating-point number</li> <li><a href=is_object/ ><strong>is_object</strong></a> - return whether value is an object</li> <li><a href=is_array/ ><strong>is_array</strong></a> - return whether value is an array</li> <li><a href=is_string/ ><strong>is_string</strong></a> - return whether value is a string</li> <li><a href=is_binary/ ><strong>is_binary</strong></a> - return whether value is a binary array</li> <li><a href=is_discarded/ ><strong>is_discarded</strong></a> - return whether value is discarded</li> </ul> <p>Optional functions to access the <a href=../macros/json_diagnostic_positions/ >diagnostic positions</a>.</p> <ul> <li><a href=start_pos/ ><strong>start_pos</strong></a> - return the start position of the value</li> <li><a href=end_pos/ ><strong>end_pos</strong></a> - return the one past the end position of the value</li> </ul> <h3 id=value-access>Value access<a class=headerlink href=#value-access title="Permanent link">¶</a></h3> <p>Direct access to the stored value of a <abbr title="JavaScript Object Notation">JSON</abbr> value.</p> <ul> <li><a href=get/ ><strong>get</strong></a> - get a value</li> <li><a href=get_to/ ><strong>get_to</strong></a> - get a value and write it to a destination</li> <li><a href=get_ptr/ ><strong>get_ptr</strong></a> - get a pointer value</li> <li><a href=get_ref/ ><strong>get_ref</strong></a> - get a reference value</li> <li><a href=operator_ValueType/ ><strong>operator ValueType</strong></a> - get a value</li> <li><a href=get_binary/ ><strong>get_binary</strong></a> - get a binary value</li> </ul> <h3 id=element-access>Element access<a class=headerlink href=#element-access title="Permanent link">¶</a></h3> <p>Access to the <abbr title="JavaScript Object Notation">JSON</abbr> value</p> <ul> <li><a href=at/ ><strong>at</strong></a> - access specified element with bounds checking</li> <li><a href=operator%5B%5D/ ><strong>operator[]</strong></a> - access specified element</li> <li><a href=value/ ><strong>value</strong></a> - access specified object element with default value</li> <li><a href=front/ ><strong>front</strong></a> - access the first element</li> <li><a href=back/ ><strong>back</strong></a> - access the last element</li> </ul> <h3 id=lookup>Lookup<a class=headerlink href=#lookup title="Permanent link">¶</a></h3> <ul> <li><a href=find/ ><strong>find</strong></a> - find an element in a <abbr title="JavaScript Object Notation">JSON</abbr> object</li> <li><a href=count/ ><strong>count</strong></a> - returns the number of occurrences of a key in a <abbr title="JavaScript Object Notation">JSON</abbr> object</li> <li><a href=contains/ ><strong>contains</strong></a> - check the existence of an element in a <abbr title="JavaScript Object Notation">JSON</abbr> object</li> </ul> <h3 id=iterators>Iterators<a class=headerlink href=#iterators title="Permanent link">¶</a></h3> <ul> <li><a href=begin/ ><strong>begin</strong></a> - returns an iterator to the first element</li> <li><a href=cbegin/ ><strong>cbegin</strong></a> - returns a const iterator to the first element</li> <li><a href=end/ ><strong>end</strong></a> - returns an iterator to one past the last element</li> <li><a href=cend/ ><strong>cend</strong></a> - returns a const iterator to one past the last element</li> <li><a href=rbegin/ ><strong>rbegin</strong></a> - returns an iterator to the reverse-beginning</li> <li><a href=rend/ ><strong>rend</strong></a> - returns an iterator to the reverse-end</li> <li><a href=crbegin/ ><strong>crbegin</strong></a> - returns a const iterator to the reverse-beginning</li> <li><a href=crend/ ><strong>crend</strong></a> - returns a const iterator to the reverse-end</li> <li><a href=items/ ><strong>items</strong></a> - wrapper to access iterator member functions in range-based for</li> </ul> <h3 id=capacity>Capacity<a class=headerlink href=#capacity title="Permanent link">¶</a></h3> <ul> <li><a href=empty/ ><strong>empty</strong></a> - checks whether the container is empty</li> <li><a href=size/ ><strong>size</strong></a> - returns the number of elements</li> <li><a href=max_size/ ><strong>max_size</strong></a> - returns the maximum possible number of elements</li> </ul> <h3 id=modifiers>Modifiers<a class=headerlink href=#modifiers title="Permanent link">¶</a></h3> <ul> <li><a href=clear/ ><strong>clear</strong></a> - clears the contents</li> <li><a href=push_back/ ><strong>push_back</strong></a> - add a value to an array/object</li> <li><a href=operator%2B%3D/ ><strong>operator+=</strong></a> - add a value to an array/object</li> <li><a href=emplace_back/ ><strong>emplace_back</strong></a> - add a value to an array</li> <li><a href=emplace/ ><strong>emplace</strong></a> - add a value to an object if key does not exist</li> <li><a href=erase/ ><strong>erase</strong></a> - remove elements</li> <li><a href=insert/ ><strong>insert</strong></a> - inserts elements</li> <li><a href=update/ ><strong>update</strong></a> - updates a <abbr title="JavaScript Object Notation">JSON</abbr> object from another object, overwriting existing keys </li> <li><a href=swap/ ><strong>swap</strong></a> - exchanges the values</li> </ul> <h3 id=lexicographical-comparison-operators>Lexicographical comparison operators<a class=headerlink href=#lexicographical-comparison-operators title="Permanent link">¶</a></h3> <ul> <li><a href=operator_eq/ ><strong>operator==</strong></a> - comparison: equal</li> <li><a href=operator_ne/ ><strong>operator!=</strong></a> - comparison: not equal</li> <li><a href=operator_lt/ ><strong>operator<</strong></a> - comparison: less than</li> <li><a href=operator_gt/ ><strong>operator></strong></a> - comparison: greater than</li> <li><a href=operator_le/ ><strong>operator<=</strong></a> - comparison: less than or equal</li> <li><a href=operator_ge/ ><strong>operator>=</strong></a> - comparison: greater than or equal</li> <li><a href=operator_spaceship/ ><strong>operator<=></strong></a> - comparison: 3-way</li> </ul> <h3 id=serialization-dumping>Serialization / Dumping<a class=headerlink href=#serialization-dumping title="Permanent link">¶</a></h3> <ul> <li><a href=dump/ ><strong>dump</strong></a> - serialization</li> </ul> <h3 id=deserialization-parsing>Deserialization / Parsing<a class=headerlink href=#deserialization-parsing title="Permanent link">¶</a></h3> <ul> <li><a href=parse/ ><strong>parse</strong></a> (<em>static</em>) - deserialize from a compatible input</li> <li><a href=accept/ ><strong>accept</strong></a> (<em>static</em>) - check if the input is valid <abbr title="JavaScript Object Notation">JSON</abbr></li> <li><a href=sax_parse/ ><strong>sax_parse</strong></a> (<em>static</em>) - generate <abbr title="Simple API for XML">SAX</abbr> events</li> </ul> <h3 id=json-pointer-functions><abbr title="JavaScript Object Notation">JSON</abbr> Pointer functions<a class=headerlink href=#json-pointer-functions title="Permanent link">¶</a></h3> <ul> <li><a href=flatten/ ><strong>flatten</strong></a> - return flattened <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=unflatten/ ><strong>unflatten</strong></a> - unflatten a previously flattened <abbr title="JavaScript Object Notation">JSON</abbr> value</li> </ul> <h3 id=json-patch-functions><abbr title="JavaScript Object Notation">JSON</abbr> Patch functions<a class=headerlink href=#json-patch-functions title="Permanent link">¶</a></h3> <ul> <li><a href=patch/ ><strong>patch</strong></a> - applies a <abbr title="JavaScript Object Notation">JSON</abbr> patch</li> <li><a href=patch_inplace/ ><strong>patch_inplace</strong></a> - applies a <abbr title="JavaScript Object Notation">JSON</abbr> patch in place</li> <li><a href=diff/ ><strong>diff</strong></a> (<em>static</em>) - creates a diff as a <abbr title="JavaScript Object Notation">JSON</abbr> patch</li> </ul> <h3 id=json-merge-patch-functions><abbr title="JavaScript Object Notation">JSON</abbr> Merge Patch functions<a class=headerlink href=#json-merge-patch-functions title="Permanent link">¶</a></h3> <ul> <li><a href=merge_patch/ ><strong>merge_patch</strong></a> - applies a <abbr title="JavaScript Object Notation">JSON</abbr> Merge Patch</li> </ul> <h2 id=static-functions>Static functions<a class=headerlink href=#static-functions title="Permanent link">¶</a></h2> <ul> <li><a href=meta/ ><strong>meta</strong></a> - returns version information on the library</li> <li><a href=get_allocator/ ><strong>get_allocator</strong></a> - returns the allocator associated with the container</li> </ul> <h3 id=binary-formats>Binary formats<a class=headerlink href=#binary-formats title="Permanent link">¶</a></h3> <ul> <li><a href=from_bjdata/ ><strong>from_bjdata</strong></a> (<em>static</em>) - create a <abbr title="JavaScript Object Notation">JSON</abbr> value from an input in <abbr title="Binary JData">BJData</abbr> format</li> <li><a href=from_bson/ ><strong>from_bson</strong></a> (<em>static</em>) - create a <abbr title="JavaScript Object Notation">JSON</abbr> value from an input in <abbr title="Binary JSON">BSON</abbr> format</li> <li><a href=from_cbor/ ><strong>from_cbor</strong></a> (<em>static</em>) - create a <abbr title="JavaScript Object Notation">JSON</abbr> value from an input in <abbr title="Concise Binary Object Representation">CBOR</abbr> format</li> <li><a href=from_msgpack/ ><strong>from_msgpack</strong></a> (<em>static</em>) - create a <abbr title="JavaScript Object Notation">JSON</abbr> value from an input in MessagePack format</li> <li><a href=from_ubjson/ ><strong>from_ubjson</strong></a> (<em>static</em>) - create a <abbr title="JavaScript Object Notation">JSON</abbr> value from an input in <abbr title="Universal Binary JSON">UBJSON</abbr> format</li> <li><a href=to_bjdata/ ><strong>to_bjdata</strong></a> (<em>static</em>) - create a <abbr title="Binary JData">BJData</abbr> serialization of a given <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=to_bson/ ><strong>to_bson</strong></a> (<em>static</em>) - create a <abbr title="Binary JSON">BSON</abbr> serialization of a given <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=to_cbor/ ><strong>to_cbor</strong></a> (<em>static</em>) - create a <abbr title="Concise Binary Object Representation">CBOR</abbr> serialization of a given <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=to_msgpack/ ><strong>to_msgpack</strong></a> (<em>static</em>) - create a MessagePack serialization of a given <abbr title="JavaScript Object Notation">JSON</abbr> value</li> <li><a href=to_ubjson/ ><strong>to_ubjson</strong></a> (<em>static</em>) - create a <abbr title="Universal Binary JSON">UBJSON</abbr> serialization of a given <abbr title="JavaScript Object Notation">JSON</abbr> value</li> </ul> <h2 id=non-member-functions>Non-member functions<a class=headerlink href=#non-member-functions title="Permanent link">¶</a></h2> <ul> <li><a href=../operator_ltlt/ ><strong>operator<<(std::ostream&)</strong></a> - serialize to stream</li> <li><a href=../operator_gtgt/ ><strong>operator>>(std::istream&)</strong></a> - deserialize from stream</li> <li><a href=to_string/ ><strong>to_string</strong></a> - user-defined <code>to_string</code> function for <abbr title="JavaScript Object Notation">JSON</abbr> values</li> </ul> <h2 id=literals>Literals<a class=headerlink href=#literals title="Permanent link">¶</a></h2> <ul> <li><a href=../operator_literal_json/ ><strong>operator""_json</strong></a> - user-defined string literal for <abbr title="JavaScript Object Notation">JSON</abbr> values</li> </ul> <h2 id=helper-classes>Helper classes<a class=headerlink href=#helper-classes title="Permanent link">¶</a></h2> <ul> <li><a href=std_hash/ ><strong>std::hash<basic_json></strong></a> - return a hash value for a <abbr title="JavaScript Object Notation">JSON</abbr> object</li> <li><a href=std_swap/ ><strong>std::swap<basic_json></strong></a> - exchanges the values of two <abbr title="JavaScript Object Notation">JSON</abbr> objects</li> </ul> <h2 id=examples>Examples<a class=headerlink href=#examples title="Permanent link">¶</a></h2> <details class=example> <summary>Example</summary> <p>The example shows how the library is used.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf><iostream></span> |
| <span class=cp>#include</span><span class=w> </span><span class=cpf><iomanip></span> |
| <span class=cp>#include</span><span class=w> </span><span class=cpf><nlohmann/json.hpp></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 object</span> |
| <span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j</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>"pi"</span><span class=p>,</span><span class=w> </span><span class=mf>3.141</span><span class=p>},</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"happy"</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>"name"</span><span class=p>,</span><span class=w> </span><span class=s>"Niels"</span><span class=p>},</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"nothing"</span><span class=p>,</span><span class=w> </span><span class=k>nullptr</span><span class=p>},</span> |
| <span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=s>"answer"</span><span class=p>,</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"everything"</span><span class=p>,</span><span class=w> </span><span class=mi>42</span><span class=p>}</span> |
| <span class=w> </span><span class=p>}</span> |
| <span class=w> </span><span class=p>},</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"list"</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>0</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=s>"object"</span><span class=p>,</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"currency"</span><span class=p>,</span><span class=w> </span><span class=s>"USD"</span><span class=p>},</span> |
| <span class=w> </span><span class=p>{</span><span class=s>"value"</span><span class=p>,</span><span class=w> </span><span class=mf>42.99</span><span class=p>}</span> |
| <span class=w> </span><span class=p>}</span> |
| <span class=w> </span><span class=p>}</span> |
| <span class=w> </span><span class=p>};</span> |
| |
| <span class=w> </span><span class=c1>// add new values</span> |
| <span class=w> </span><span class=n>j</span><span class=p>[</span><span class=s>"new"</span><span class=p>][</span><span class=s>"key"</span><span class=p>][</span><span class=s>"value"</span><span class=p>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>"another"</span><span class=p>,</span><span class=w> </span><span class=s>"list"</span><span class=p>};</span> |
| |
| <span class=w> </span><span class=c1>// count elements</span> |
| <span class=w> </span><span class=k>auto</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>size</span><span class=p>();</span> |
| <span class=w> </span><span class=n>j</span><span class=p>[</span><span class=s>"size"</span><span class=p>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>s</span><span class=p>;</span> |
| |
| <span class=w> </span><span class=c1>// pretty print with indent of 4 spaces</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><<</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=sc>'\n'</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=w> </span><span class=nt>"answer"</span><span class=p>:</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=nt>"everything"</span><span class=p>:</span><span class=w> </span><span class=mi>42</span> |
| <span class=w> </span><span class=p>},</span> |
| <span class=w> </span><span class=nt>"happy"</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span> |
| <span class=w> </span><span class=nt>"list"</span><span class=p>:</span><span class=w> </span><span class=p>[</span> |
| <span class=w> </span><span class=mi>1</span><span class=p>,</span> |
| <span class=w> </span><span class=mi>0</span><span class=p>,</span> |
| <span class=w> </span><span class=mi>2</span> |
| <span class=w> </span><span class=p>],</span> |
| <span class=w> </span><span class=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"Niels"</span><span class=p>,</span> |
| <span class=w> </span><span class=nt>"new"</span><span class=p>:</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=nt>"key"</span><span class=p>:</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=p>[</span> |
| <span class=w> </span><span class=s2>"another"</span><span class=p>,</span> |
| <span class=w> </span><span class=s2>"list"</span> |
| <span class=w> </span><span class=p>]</span> |
| <span class=w> </span><span class=p>}</span> |
| <span class=w> </span><span class=p>},</span> |
| <span class=w> </span><span class=nt>"nothing"</span><span class=p>:</span><span class=w> </span><span class=kc>null</span><span class=p>,</span> |
| <span class=w> </span><span class=nt>"object"</span><span class=p>:</span><span class=w> </span><span class=p>{</span> |
| <span class=w> </span><span class=nt>"currency"</span><span class=p>:</span><span class=w> </span><span class=s2>"USD"</span><span class=p>,</span> |
| <span class=w> </span><span class=nt>"value"</span><span class=p>:</span><span class=w> </span><span class=mf>42.99</span> |
| <span class=w> </span><span class=p>},</span> |
| <span class=w> </span><span class=nt>"pi"</span><span class=p>:</span><span class=w> </span><span class=mf>3.141</span><span class=p>,</span> |
| <span class=w> </span><span class=nt>"size"</span><span class=p>:</span><span class=w> </span><span class=mi>8</span> |
| <span class=p>}</span> |
| </code></pre></div> </details> <h2 id=see-also>See also<a class=headerlink href=#see-also title="Permanent link">¶</a></h2> <ul> <li><a href="https://tools.ietf.org/html/rfc8259"><abbr title="Request for Comments">RFC</abbr> 8259: The JavaScript Object Notation (<abbr title="JavaScript Object Notation">JSON</abbr>) Data Interchange Format</a></li> </ul> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">¶</a></h2> <ul> <li>Added in version 1.0.0.</li> </ul> <!-- https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary --> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 20, 2025</span> </span> </aside> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var 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> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</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 8z"/></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 © 2013-2025 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.7.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 2024 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.6m-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.3m44.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.9M244.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 8M97.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></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.7.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 2024 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.3M135.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.5m282.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.9z"/></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.7.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 2024 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.3q.3 0 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.2zM382.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.1"/></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.7.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 2024 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.2M357.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.6"/></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", "content.action.edit", "content.action.view"], "search": "../../assets/javascripts/workers/search.f8cc74c7.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.60a45f97.min.js></script> <script src="../../assets/external/cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.39674748.js"></script> </body> </html> |