mirror of
https://github.com/nlohmann/json.git
synced 2026-11-10 06:17:10 +00:00
47 lines
151 KiB
HTML
47 lines
151 KiB
HTML
<!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=description content="JSON for Modern C++ is a header-only C++11 library that makes JSON a first-class data type."><meta name=author content="Niels Lohmann"><link href="https://json.nlohmann.me/features/json_view/editing/" rel="canonical"><link href=../generic_code/ rel=prev><link href=../images/ rel=next><link rel=icon href=../../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.8.0"><title>Editing a document - JSON for Modern C++</title><link rel=stylesheet href=../../../assets/stylesheets/main.57a0d79d.min.css><link rel=stylesheet href=../../../assets/stylesheets/palette.fb2fffe2.min.css><link rel=stylesheet href=../../../css/custom.css><link rel=stylesheet href=../../../css/brand.css><link rel=stylesheet href=../../../css/fig-sax.css><link rel=stylesheet href=../../../css/fig-jsonview.css><link rel=stylesheet href=../../../css/fig-exceptions.css><link rel=stylesheet href=../../../css/fig-pointer.css><link rel=stylesheet href=../../../css/fig-charts.css><link rel=stylesheet href=../../../css/fig-integration.css><link rel=stylesheet href=../../../css/fig-macros.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=custom data-md-color-accent=custom> <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=#editing-a-document 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> <img src=../../../images/wordmark-header.svg alt=logo> </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> Editing a document </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=custom data-md-color-accent=custom 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=custom data-md-color-accent=custom 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> <div class=md-search__suggest data-md-component=search-suggest></div> </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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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 md-tabs__item--active"> <a href=../../ 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> <a href=../../../api/basic_json/ 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> <img src=../../../images/wordmark-header.svg alt=logo> </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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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 md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_1_5> <div class="md-nav__link md-nav__container"> <a href=../../../home/releases/ class="md-nav__link "> <span class=md-ellipsis> Releases </span> </a> <label class="md-nav__link " for=__nav_1_5 id=__nav_1_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_1_5_label aria-expanded=false> <label class=md-nav__title for=__nav_1_5> <span class="md-nav__icon md-icon"></span> Releases </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../home/releases/unreleased/ class=md-nav__link> <span class=md-ellipsis> Unreleased </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.12.0/ class=md-nav__link> <span class=md-ellipsis> v3.12.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.3/ class=md-nav__link> <span class=md-ellipsis> v3.11.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.2/ class=md-nav__link> <span class=md-ellipsis> v3.11.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.1/ class=md-nav__link> <span class=md-ellipsis> v3.11.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.11.0/ class=md-nav__link> <span class=md-ellipsis> v3.11.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.5/ class=md-nav__link> <span class=md-ellipsis> v3.10.5 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.4/ class=md-nav__link> <span class=md-ellipsis> v3.10.4 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.3/ class=md-nav__link> <span class=md-ellipsis> v3.10.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.2/ class=md-nav__link> <span class=md-ellipsis> v3.10.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.1/ class=md-nav__link> <span class=md-ellipsis> v3.10.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.10.0/ class=md-nav__link> <span class=md-ellipsis> v3.10.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.9.1/ class=md-nav__link> <span class=md-ellipsis> v3.9.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.9.0/ class=md-nav__link> <span class=md-ellipsis> v3.9.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.8.0/ class=md-nav__link> <span class=md-ellipsis> v3.8.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.3/ class=md-nav__link> <span class=md-ellipsis> v3.7.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.2/ class=md-nav__link> <span class=md-ellipsis> v3.7.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.1/ class=md-nav__link> <span class=md-ellipsis> v3.7.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.7.0/ class=md-nav__link> <span class=md-ellipsis> v3.7.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.6.1/ class=md-nav__link> <span class=md-ellipsis> v3.6.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.6.0/ class=md-nav__link> <span class=md-ellipsis> v3.6.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.5.0/ class=md-nav__link> <span class=md-ellipsis> v3.5.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.4.0/ class=md-nav__link> <span class=md-ellipsis> v3.4.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.3.0/ class=md-nav__link> <span class=md-ellipsis> v3.3.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.2.0/ class=md-nav__link> <span class=md-ellipsis> v3.2.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.2/ class=md-nav__link> <span class=md-ellipsis> v3.1.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.1/ class=md-nav__link> <span class=md-ellipsis> v3.1.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.1.0/ class=md-nav__link> <span class=md-ellipsis> v3.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.0.1/ class=md-nav__link> <span class=md-ellipsis> v3.0.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v3.0.0/ class=md-nav__link> <span class=md-ellipsis> v3.0.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.1.1/ class=md-nav__link> <span class=md-ellipsis> v2.1.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.1.0/ class=md-nav__link> <span class=md-ellipsis> v2.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.10/ class=md-nav__link> <span class=md-ellipsis> v2.0.10 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.9/ class=md-nav__link> <span class=md-ellipsis> v2.0.9 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.8/ class=md-nav__link> <span class=md-ellipsis> v2.0.8 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.7/ class=md-nav__link> <span class=md-ellipsis> v2.0.7 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.6/ class=md-nav__link> <span class=md-ellipsis> v2.0.6 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.5/ class=md-nav__link> <span class=md-ellipsis> v2.0.5 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.4/ class=md-nav__link> <span class=md-ellipsis> v2.0.4 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.3/ class=md-nav__link> <span class=md-ellipsis> v2.0.3 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.2/ class=md-nav__link> <span class=md-ellipsis> v2.0.2 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.1/ class=md-nav__link> <span class=md-ellipsis> v2.0.1 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v2.0.0/ class=md-nav__link> <span class=md-ellipsis> v2.0.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v1.1.0/ class=md-nav__link> <span class=md-ellipsis> v1.1.0 </span> </a> </li> <li class=md-nav__item> <a href=../../../home/releases/v1.0.0/ class=md-nav__link> <span class=md-ellipsis> v1.0.0 </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_1_6> <label class=md-nav__link for=__nav_1_6 id=__nav_1_6_label tabindex=0> <span class=md-ellipsis> Blog </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_1_6_label aria-expanded=false> <label class=md-nav__title for=__nav_1_6> <span class="md-nav__icon md-icon"></span> Blog </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../home/blog/how_3_13_0_got_faster/ class=md-nav__link> <span class=md-ellipsis> How 3.13.0 got faster </span> </a> </li> </ul> </nav> </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> <li class=md-nav__item> <a href=../../../home/debugging/ class=md-nav__link> <span class=md-ellipsis> Debugging </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_2 checked> <div class="md-nav__link md-nav__container"> <a href=../../ class="md-nav__link "> <span class=md-ellipsis> Features </span> </a> <label class="md-nav__link " for=__nav_2 id=__nav_2_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <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=../../arbitrary_types/ class=md-nav__link> <span class=md-ellipsis> Arbitrary Type Conversions </span> </a> </li> <li class=md-nav__item> <a href=../../type_recipes/ class=md-nav__link> <span class=md-ellipsis> Recipes for Common Types </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_4> <div class="md-nav__link md-nav__container"> <a href=../../binary_formats/ class="md-nav__link "> <span class=md-ellipsis> Binary Formats </span> </a> <label class="md-nav__link " for=__nav_2_4 id=__nav_2_4_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_4_label aria-expanded=false> <label class=md-nav__title for=__nav_2_4> <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=../../binary_formats/bjdata/ class=md-nav__link> <span class=md-ellipsis> BJData </span> </a> </li> <li class=md-nav__item> <a href=../../binary_formats/bon8/ class=md-nav__link> <span class=md-ellipsis> BON8 </span> </a> </li> <li class=md-nav__item> <a href=../../binary_formats/bson/ class=md-nav__link> <span class=md-ellipsis> BSON </span> </a> </li> <li class=md-nav__item> <a href=../../binary_formats/cbor/ class=md-nav__link> <span class=md-ellipsis> CBOR </span> </a> </li> <li class=md-nav__item> <a href=../../binary_formats/messagepack/ class=md-nav__link> <span class=md-ellipsis> MessagePack </span> </a> </li> <li class=md-nav__item> <a href=../../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=../../binary_values/ class=md-nav__link> <span class=md-ellipsis> Binary Values </span> </a> </li> <li class=md-nav__item> <a href=../../comments/ class=md-nav__link> <span class=md-ellipsis> Comments </span> </a> </li> <li class=md-nav__item> <a href=../../conversions/ class=md-nav__link> <span class=md-ellipsis> Converting values </span> </a> </li> <li class=md-nav__item> <a href=../../creating_values/ class=md-nav__link> <span class=md-ellipsis> Creating JSON values </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_9> <div class="md-nav__link md-nav__container"> <a href=../../element_access/ class="md-nav__link "> <span class=md-ellipsis> Element Access </span> </a> <label class="md-nav__link " for=__nav_2_9 id=__nav_2_9_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_9_label aria-expanded=false> <label class=md-nav__title for=__nav_2_9> <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=../../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=../../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=../../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=../../files/ class=md-nav__link> <span class=md-ellipsis> Reading and writing files </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=../../merge_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Merge Patch </span> </a> </li> <li class=md-nav__item> <a href=../../json_patch/ class=md-nav__link> <span class=md-ellipsis> JSON Patch and Diff </span> </a> </li> <li class=md-nav__item> <a href=../../json_pointer/ class=md-nav__link> <span class=md-ellipsis> JSON Pointer </span> </a> </li> <li class=md-nav__item> <a href=../../modifying_values/ class=md-nav__link> <span class=md-ellipsis> Modifying values </span> </a> </li> <li class=md-nav__item> <a href=../../modules/ class=md-nav__link> <span class=md-ellipsis> Modules </span> </a> </li> <li class=md-nav__item> <a href=../../namespace/ class=md-nav__link> <span class=md-ellipsis> nlohmann Namespace </span> </a> </li> <li class=md-nav__item> <a href=../../no_exceptions/ class=md-nav__link> <span class=md-ellipsis> Working Without Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../object_order/ class=md-nav__link> <span class=md-ellipsis> Object Order </span> </a> </li> <li class=md-nav__item> <a href=../../performance/ class=md-nav__link> <span class=md-ellipsis> Performance </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_21> <div class="md-nav__link md-nav__container"> <a href=../../parsing/ class="md-nav__link "> <span class=md-ellipsis> Parsing </span> </a> <label class="md-nav__link " for=__nav_2_21 id=__nav_2_21_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_21_label aria-expanded=false> <label class=md-nav__title for=__nav_2_21> <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=../../parsing/json_lines/ class=md-nav__link> <span class=md-ellipsis> JSON Lines </span> </a> </li> <li class=md-nav__item> <a href=../../parsing/large_and_partial_input/ class=md-nav__link> <span class=md-ellipsis> Large, Streamed, and Partial Input </span> </a> </li> <li class=md-nav__item> <a href=../../parsing/parse_exceptions/ class=md-nav__link> <span class=md-ellipsis> Parsing and Exceptions </span> </a> </li> <li class=md-nav__item> <a href=../../parsing/parser_callbacks/ class=md-nav__link> <span class=md-ellipsis> Parser Callbacks </span> </a> </li> <li class=md-nav__item> <a href=../../parsing/sax_interface/ class=md-nav__link> <span class=md-ellipsis> SAX Interface </span> </a> </li> <li class=md-nav__item> <a href=../../parsing/untrusted_input/ class=md-nav__link> <span class=md-ellipsis> Parsing Untrusted Input </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../assertions/ class=md-nav__link> <span class=md-ellipsis> Runtime Assertions </span> </a> </li> <li class=md-nav__item> <a href=../../serialization/ class=md-nav__link> <span class=md-ellipsis> Serialization </span> </a> </li> <li class=md-nav__item> <a href=../../enum_conversion/ class=md-nav__link> <span class=md-ellipsis> Specializing enum conversion </span> </a> </li> <li class=md-nav__item> <a href=../../macros/ class=md-nav__link> <span class=md-ellipsis> Supported Macros </span> </a> </li> <li class=md-nav__item> <a href=../../trailing_commas/ class=md-nav__link> <span class=md-ellipsis> Trailing Commas </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_27> <div class="md-nav__link md-nav__container"> <a href=../../types/ class="md-nav__link "> <span class=md-ellipsis> Types </span> </a> <label class="md-nav__link " for=__nav_2_27 id=__nav_2_27_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_27_label aria-expanded=false> <label class=md-nav__title for=__nav_2_27> <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=../../types/number_handling/ class=md-nav__link> <span class=md-ellipsis> Number Handling </span> </a> </li> <li class=md-nav__item> <a href=../../types/template_parameters/ class=md-nav__link> <span class=md-ellipsis> Template Parameter Requirements </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_28 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Zero-copy views </span> </a> <label class="md-nav__link " for=__nav_2_28 id=__nav_2_28_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_28_label aria-expanded=true> <label class=md-nav__title for=__nav_2_28> <span class="md-nav__icon md-icon"></span> Zero-copy views </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../lifetime/ class=md-nav__link> <span class=md-ellipsis> Ownership and lifetime </span> </a> </li> <li class=md-nav__item> <a href=../differences/ class=md-nav__link> <span class=md-ellipsis> Differences from basic_json </span> </a> </li> <li class=md-nav__item> <a href=../reading/ class=md-nav__link> <span class=md-ellipsis> Reading values </span> </a> </li> <li class=md-nav__item> <a href=../generic_code/ class=md-nav__link> <span class=md-ellipsis> Writing generic code </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Editing a document </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Editing a document </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#why-editing-without-reformatting class=md-nav__link> <span class=md-ellipsis> Why: editing without reformatting </span> </a> </li> <li class=md-nav__item> <a href=#what-stays-valid-and-what-an-edit-costs class=md-nav__link> <span class=md-ellipsis> What stays valid, and what an edit costs </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> </li> <li class=md-nav__item> <a href=../images/ class=md-nav__link> <span class=md-ellipsis> Images </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> <li class=md-nav__item> <a href=../../../integration/compile_times/ class=md-nav__link> <span class=md-ellipsis> Compile times </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> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <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=false> <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--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_1> <div class="md-nav__link md-nav__container"> <a href=../../../api/basic_json/ class="md-nav__link "> <span class=md-ellipsis> basic_json </span> </a> <label class="md-nav__link " for=__nav_4_1 id=__nav_4_1_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_4_1_label aria-expanded=false> <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=../../../api/basic_json/basic_json/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/~basic_json/ class=md-nav__link> <span class=md-ellipsis> (Destructor) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/array/ class=md-nav__link> <span class=md-ellipsis> array </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/array_t/ class=md-nav__link> <span class=md-ellipsis> array_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/as_base_class/ class=md-nav__link> <span class=md-ellipsis> as_base_class </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/binary_t/ class=md-nav__link> <span class=md-ellipsis> binary_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/bjdata_version_t/ class=md-nav__link> <span class=md-ellipsis> bjdata_version_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/boolean_t/ class=md-nav__link> <span class=md-ellipsis> boolean_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/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=../../../api/basic_json/cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/clear/ class=md-nav__link> <span class=md-ellipsis> clear </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/crbegin/ class=md-nav__link> <span class=md-ellipsis> crbegin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/crend/ class=md-nav__link> <span class=md-ellipsis> crend </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/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=../../../api/basic_json/diff/ class=md-nav__link> <span class=md-ellipsis> diff </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/emplace/ class=md-nav__link> <span class=md-ellipsis> emplace </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/emplace_back/ class=md-nav__link> <span class=md-ellipsis> emplace_back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/end_pos/ class=md-nav__link> <span class=md-ellipsis> end_pos </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/error_handler_t/ class=md-nav__link> <span class=md-ellipsis> error_handler_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/exception/ class=md-nav__link> <span class=md-ellipsis> exception </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/flatten/ class=md-nav__link> <span class=md-ellipsis> flatten </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/format_as/ class=md-nav__link> <span class=md-ellipsis> format_as </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_bjdata/ class=md-nav__link> <span class=md-ellipsis> from_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_bon8/ class=md-nav__link> <span class=md-ellipsis> from_bon8 </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_bson/ class=md-nav__link> <span class=md-ellipsis> from_bson </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_cbor/ class=md-nav__link> <span class=md-ellipsis> from_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_msgpack/ class=md-nav__link> <span class=md-ellipsis> from_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/from_ubjson/ class=md-nav__link> <span class=md-ellipsis> from_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get_allocator/ class=md-nav__link> <span class=md-ellipsis> get_allocator </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get_binary/ class=md-nav__link> <span class=md-ellipsis> get_binary </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get_ptr/ class=md-nav__link> <span class=md-ellipsis> get_ptr </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get_ref/ class=md-nav__link> <span class=md-ellipsis> get_ref </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/std_formatter/ class=md-nav__link> <span class=md-ellipsis> std::formatter<basic_json> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/std_hash/ class=md-nav__link> <span class=md-ellipsis> std::hash<basic_json> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/input_format_t/ class=md-nav__link> <span class=md-ellipsis> input_format_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/invalid_iterator/ class=md-nav__link> <span class=md-ellipsis> invalid_iterator </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_number_float/ class=md-nav__link> <span class=md-ellipsis> is_number_float </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_number_integer/ class=md-nav__link> <span class=md-ellipsis> is_number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_number_unsigned/ class=md-nav__link> <span class=md-ellipsis> is_number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/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=../../../api/basic_json/json_serializer/ class=md-nav__link> <span class=md-ellipsis> json_serializer </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/max_size/ class=md-nav__link> <span class=md-ellipsis> max_size </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/meta/ class=md-nav__link> <span class=md-ellipsis> meta </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/merge_diff/ class=md-nav__link> <span class=md-ellipsis> merge_diff </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/merge_patch/ class=md-nav__link> <span class=md-ellipsis> merge_patch </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/number_float_t/ class=md-nav__link> <span class=md-ellipsis> number_float_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/number_integer_t/ class=md-nav__link> <span class=md-ellipsis> number_integer_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/number_unsigned_t/ class=md-nav__link> <span class=md-ellipsis> number_unsigned_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/object/ class=md-nav__link> <span class=md-ellipsis> object </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/object_comparator_t/ class=md-nav__link> <span class=md-ellipsis> object_comparator_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/object_t/ class=md-nav__link> <span class=md-ellipsis> object_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_ValueType/ class=md-nav__link> <span class=md-ellipsis> operator ValueType </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_value_t/ class=md-nav__link> <span class=md-ellipsis> operator value_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator%3D/ class=md-nav__link> <span class=md-ellipsis> operator= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator%2B%3D/ class=md-nav__link> <span class=md-ellipsis> operator+= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_lt/ class=md-nav__link> <span class=md-ellipsis> operator< </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_gt/ class=md-nav__link> <span class=md-ellipsis> operator> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_le/ class=md-nav__link> <span class=md-ellipsis> operator<= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_ge/ class=md-nav__link> <span class=md-ellipsis> operator>= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/out_of_range/ class=md-nav__link> <span class=md-ellipsis> out_of_range </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/other_error/ class=md-nav__link> <span class=md-ellipsis> other_error </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/parse_event_t/ class=md-nav__link> <span class=md-ellipsis> parse_event_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/parser_callback_t/ class=md-nav__link> <span class=md-ellipsis> parser_callback_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/patch/ class=md-nav__link> <span class=md-ellipsis> patch </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/patch_inplace/ class=md-nav__link> <span class=md-ellipsis> patch_inplace </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/rbegin/ class=md-nav__link> <span class=md-ellipsis> rbegin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/rend/ class=md-nav__link> <span class=md-ellipsis> rend </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/sax_parse/ class=md-nav__link> <span class=md-ellipsis> sax_parse </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/start_pos/ class=md-nav__link> <span class=md-ellipsis> start_pos </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/swap/ class=md-nav__link> <span class=md-ellipsis> swap </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/std_swap/ class=md-nav__link> <span class=md-ellipsis> std::swap<basic_json> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_bjdata/ class=md-nav__link> <span class=md-ellipsis> to_bjdata </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_bon8/ class=md-nav__link> <span class=md-ellipsis> to_bon8 </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_bson/ class=md-nav__link> <span class=md-ellipsis> to_bson </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_cbor/ class=md-nav__link> <span class=md-ellipsis> to_cbor </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_msgpack/ class=md-nav__link> <span class=md-ellipsis> to_msgpack </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_string/ class=md-nav__link> <span class=md-ellipsis> to_string </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/to_ubjson/ class=md-nav__link> <span class=md-ellipsis> to_ubjson </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/type_error/ class=md-nav__link> <span class=md-ellipsis> type_error </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/unflatten/ class=md-nav__link> <span class=md-ellipsis> unflatten </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/update/ class=md-nav__link> <span class=md-ellipsis> update </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/value/ class=md-nav__link> <span class=md-ellipsis> value </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/value_t/ class=md-nav__link> <span class=md-ellipsis> value_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json/with_t/ class=md-nav__link> <span class=md-ellipsis> with_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=../../../api/basic_json_document/ class="md-nav__link "> <span class=md-ellipsis> basic_json_document </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> basic_json_document </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../api/basic_json_document/basic_json_document/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/accept/ class=md-nav__link> <span class=md-ellipsis> accept </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/erase/ class=md-nav__link> <span class=md-ellipsis> erase </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/insert/ class=md-nav__link> <span class=md-ellipsis> insert </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/load/ class=md-nav__link> <span class=md-ellipsis> load </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/memory_usage/ class=md-nav__link> <span class=md-ellipsis> memory_usage </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/node_count/ class=md-nav__link> <span class=md-ellipsis> node_count </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/owns_source/ class=md-nav__link> <span class=md-ellipsis> owns_source </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/parse/ class=md-nav__link> <span class=md-ellipsis> parse </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/parse_copy/ class=md-nav__link> <span class=md-ellipsis> parse_copy </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/read/ class=md-nav__link> <span class=md-ellipsis> read </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/root/ class=md-nav__link> <span class=md-ellipsis> root </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/save/ class=md-nav__link> <span class=md-ellipsis> save </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/set/ class=md-nav__link> <span class=md-ellipsis> set </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/shrink_to_fit/ class=md-nav__link> <span class=md-ellipsis> shrink_to_fit </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_document/source/ class=md-nav__link> <span class=md-ellipsis> source </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=../../../api/basic_json_view/ class="md-nav__link "> <span class=md-ellipsis> basic_json_view </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> basic_json_view </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../api/basic_json_view/basic_json_view/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/at/ class=md-nav__link> <span class=md-ellipsis> at </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/begin/ class=md-nav__link> <span class=md-ellipsis> begin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/cbegin/ class=md-nav__link> <span class=md-ellipsis> cbegin </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/cend/ class=md-nav__link> <span class=md-ellipsis> cend </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/contains/ class=md-nav__link> <span class=md-ellipsis> contains </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/count/ class=md-nav__link> <span class=md-ellipsis> count </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/dump/ class=md-nav__link> <span class=md-ellipsis> dump </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/end/ class=md-nav__link> <span class=md-ellipsis> end </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/find/ class=md-nav__link> <span class=md-ellipsis> find </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/get/ class=md-nav__link> <span class=md-ellipsis> get </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/get_string/ class=md-nav__link> <span class=md-ellipsis> get_string </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/get_to/ class=md-nav__link> <span class=md-ellipsis> get_to </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_array/ class=md-nav__link> <span class=md-ellipsis> is_array </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_binary/ class=md-nav__link> <span class=md-ellipsis> is_binary </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_boolean/ class=md-nav__link> <span class=md-ellipsis> is_boolean </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_discarded/ class=md-nav__link> <span class=md-ellipsis> is_discarded </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_null/ class=md-nav__link> <span class=md-ellipsis> is_null </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_number/ class=md-nav__link> <span class=md-ellipsis> is_number </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_number_float/ class=md-nav__link> <span class=md-ellipsis> is_number_float </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_number_integer/ class=md-nav__link> <span class=md-ellipsis> is_number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_number_unsigned/ class=md-nav__link> <span class=md-ellipsis> is_number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_object/ class=md-nav__link> <span class=md-ellipsis> is_object </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_primitive/ class=md-nav__link> <span class=md-ellipsis> is_primitive </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_string/ class=md-nav__link> <span class=md-ellipsis> is_string </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/is_structured/ class=md-nav__link> <span class=md-ellipsis> is_structured </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/items/ class=md-nav__link> <span class=md-ellipsis> items </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/materialize/ class=md-nav__link> <span class=md-ellipsis> materialize </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/number_format/ class=md-nav__link> <span class=md-ellipsis> number_format </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/number_token/ class=md-nav__link> <span class=md-ellipsis> number_token </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/operator_ltlt/ class=md-nav__link> <span class=md-ellipsis> operator<< </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/operator%5B%5D/ class=md-nav__link> <span class=md-ellipsis> operator[] </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/size/ class=md-nav__link> <span class=md-ellipsis> size </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/source_offset/ class=md-nav__link> <span class=md-ellipsis> source_offset </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/type/ class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/type_name/ class=md-nav__link> <span class=md-ellipsis> type_name </span> </a> </li> <li class=md-nav__item> <a href=../../../api/basic_json_view/value/ class=md-nav__link> <span class=md-ellipsis> value </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_4> <div class="md-nav__link md-nav__container"> <a href=../../../api/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_4 id=__nav_4_4_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_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4_4> <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=../../../api/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=../../../api/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=../../../api/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=../../../api/byte_container_with_subtype/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../../api/byte_container_with_subtype/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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_5> <div class="md-nav__link md-nav__container"> <a href=../../../api/adl_serializer/ class="md-nav__link "> <span class=md-ellipsis> adl_serializer </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> adl_serializer </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../../api/adl_serializer/from_json/ class=md-nav__link> <span class=md-ellipsis> from_json </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/is_json_view/ class=md-nav__link> <span class=md-ellipsis> is_json_view </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json/ class=md-nav__link> <span class=md-ellipsis> json </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_document/ class=md-nav__link> <span class=md-ellipsis> json_document </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_editable_document/ class=md-nav__link> <span class=md-ellipsis> json_editable_document </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_editable_view/ class=md-nav__link> <span class=md-ellipsis> json_editable_view </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_11> <div class="md-nav__link md-nav__container"> <a href=../../../api/json_pointer/ class="md-nav__link "> <span class=md-ellipsis> json_pointer </span> </a> <label class="md-nav__link " for=__nav_4_11 id=__nav_4_11_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_11_label aria-expanded=false> <label class=md-nav__title for=__nav_4_11> <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=../../../api/json_pointer/json_pointer/ class=md-nav__link> <span class=md-ellipsis> (Constructor) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/back/ class=md-nav__link> <span class=md-ellipsis> back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/empty/ class=md-nav__link> <span class=md-ellipsis> empty </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/front/ class=md-nav__link> <span class=md-ellipsis> front </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/json_pointer/operator_eq/ class=md-nav__link> <span class=md-ellipsis> operator== </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/operator_ne/ class=md-nav__link> <span class=md-ellipsis> operator!= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/operator_spaceship/ class=md-nav__link> <span class=md-ellipsis> operator<=> </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/operator_slash/ class=md-nav__link> <span class=md-ellipsis> operator/ </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/operator_slasheq/ class=md-nav__link> <span class=md-ellipsis> operator/= </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/parent_pointer/ class=md-nav__link> <span class=md-ellipsis> parent_pointer </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/pop_back/ class=md-nav__link> <span class=md-ellipsis> pop_back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/pop_front/ class=md-nav__link> <span class=md-ellipsis> pop_front </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/push_back/ class=md-nav__link> <span class=md-ellipsis> push_back </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/push_front/ class=md-nav__link> <span class=md-ellipsis> push_front </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_pointer/string_t/ class=md-nav__link> <span class=md-ellipsis> string_t </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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_12> <div class="md-nav__link md-nav__container"> <a href=../../../api/json_sax/ class="md-nav__link "> <span class=md-ellipsis> json_sax </span> </a> <label class="md-nav__link " for=__nav_4_12 id=__nav_4_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_4_12_label aria-expanded=false> <label class=md-nav__title for=__nav_4_12> <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=../../../api/json_sax/binary/ class=md-nav__link> <span class=md-ellipsis> binary </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/boolean/ class=md-nav__link> <span class=md-ellipsis> boolean </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/end_array/ class=md-nav__link> <span class=md-ellipsis> end_array </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/end_object/ class=md-nav__link> <span class=md-ellipsis> end_object </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/key/ class=md-nav__link> <span class=md-ellipsis> key </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/null/ class=md-nav__link> <span class=md-ellipsis> null </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/number_float/ class=md-nav__link> <span class=md-ellipsis> number_float </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/number_integer/ class=md-nav__link> <span class=md-ellipsis> number_integer </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/number_unsigned/ class=md-nav__link> <span class=md-ellipsis> number_unsigned </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/parse_error/ class=md-nav__link> <span class=md-ellipsis> parse_error </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/start_array/ class=md-nav__link> <span class=md-ellipsis> start_array </span> </a> </li> <li class=md-nav__item> <a href=../../../api/json_sax/start_object/ class=md-nav__link> <span class=md-ellipsis> start_object </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/json_view/ class=md-nav__link> <span class=md-ellipsis> json_view </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/operator_gtgt/ class=md-nav__link> <span class=md-ellipsis> operator>>(basic_json) </span> </a> </li> <li class=md-nav__item> <a href=../../../api/operator_literal_json/ class=md-nav__link> <span class=md-ellipsis> operator""_json </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/ordered_json/ class=md-nav__link> <span class=md-ellipsis> ordered_json </span> </a> </li> <li class=md-nav__item> <a href=../../../api/ordered_json_document/ class=md-nav__link> <span class=md-ellipsis> ordered_json_document </span> </a> </li> <li class=md-nav__item> <a href=../../../api/ordered_json_editable_document/ class=md-nav__link> <span class=md-ellipsis> ordered_json_editable_document </span> </a> </li> <li class=md-nav__item> <a href=../../../api/ordered_json_editable_view/ class=md-nav__link> <span class=md-ellipsis> ordered_json_editable_view </span> </a> </li> <li class=md-nav__item> <a href=../../../api/ordered_json_view/ class=md-nav__link> <span class=md-ellipsis> ordered_json_view </span> </a> </li> <li class=md-nav__item> <a href=../../../api/ordered_map/ class=md-nav__link> <span class=md-ellipsis> ordered_map </span> </a> </li> <li class=md-nav__item> <a href=../../../api/view_mode/ class=md-nav__link> <span class=md-ellipsis> view_mode </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4_25> <div class="md-nav__link md-nav__container"> <a href=../../../api/macros/ class="md-nav__link "> <span class=md-ellipsis> macros </span> </a> <label class="md-nav__link " for=__nav_4_25 id=__nav_4_25_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_25_label aria-expanded=false> <label class=md-nav__title for=__nav_4_25> <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=../../../api/macros/json_assert/ class=md-nav__link> <span class=md-ellipsis> JSON_ASSERT </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_brace_init_copy_semantics/ class=md-nav__link> <span class=md-ellipsis> JSON_BRACE_INIT_COPY_SEMANTICS </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/macros/json_diagnostics/ class=md-nav__link> <span class=md-ellipsis> JSON_DIAGNOSTICS </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_delete_deprecated_functions/ class=md-nav__link> <span class=md-ellipsis> JSON_DELETE_DEPRECATED_FUNCTIONS </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/macros/json_disable_stream_bulk_scan/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_STREAM_BULK_SCAN </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_disable_tuple_reference_conversion/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_TUPLE_REFERENCE_CONVERSION </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_disable_unlocked_file_io/ class=md-nav__link> <span class=md-ellipsis> JSON_DISABLE_UNLOCKED_FILE_IO </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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, JSON_HAS_CPP_23, JSON_HAS_CPP_26 </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/macros/json_has_range_view_conversion/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_RANGE_VIEW_CONVERSION </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/macros/json_has_std_format/ class=md-nav__link> <span class=md-ellipsis> JSON_HAS_STD_FORMAT </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/macros/json_no_automatic_udls/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_AUTOMATIC_UDLS </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_noexception/ class=md-nav__link> <span class=md-ellipsis> JSON_NOEXCEPTION </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/macros/json_no_simd/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_SIMD </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_no_thread_local/ class=md-nav__link> <span class=md-ellipsis> JSON_NO_THREAD_LOCAL </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_precise_stream_position/ class=md-nav__link> <span class=md-ellipsis> JSON_PRECISE_STREAM_POSITION </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/macros/json_strict_binary_utf8/ class=md-nav__link> <span class=md-ellipsis> JSON_STRICT_BINARY_UTF8 </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_strict_nul_handling/ class=md-nav__link> <span class=md-ellipsis> JSON_STRICT_NUL_HANDLING </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/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=../../../api/macros/json_use_objects_for_enum_keyed_maps/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS </span> </a> </li> <li class=md-nav__item> <a href=../../../api/macros/json_use_simdutf/ class=md-nav__link> <span class=md-ellipsis> JSON_USE_SIMDUTF </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/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=../../../api/macros/nlohmann_define_type_with_names/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT_WITH_NAMES, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE_WITH_NAMES </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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=../../../api/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=../../../api/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=../../../api/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=../../../api/macros/nlohmann_json_serialize_enum_strict/ class=md-nav__link> <span class=md-ellipsis> NLOHMANN_JSON_SERIALIZE_ENUM_STRICT </span> </a> </li> <li class=md-nav__item> <a href=../../../api/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/ecosystem/ class=md-nav__link> <span class=md-ellipsis> Ecosystem </span> </a> </li> <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/roadmap/ class=md-nav__link> <span class=md-ellipsis> Roadmap </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> <li class=md-nav__item> <a href=../../../community/assurance_case/ class=md-nav__link> <span class=md-ellipsis> Assurance case </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=#why-editing-without-reformatting class=md-nav__link> <span class=md-ellipsis> Why: editing without reformatting </span> </a> </li> <li class=md-nav__item> <a href=#what-stays-valid-and-what-an-edit-costs class=md-nav__link> <span class=md-ellipsis> What stays valid, and what an edit costs </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/features/json_view/editing.md" title="Edit this page" class="md-content__button md-icon" rel="edit"> <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/features/json_view/rawing.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=editing-a-document>Editing a document<a class=headerlink href=#editing-a-document title="Permanent link">¶</a></h1> <p>A <a href=../../../api/json_document/ ><code>json_document</code></a>/<a href=../../../api/json_view/ ><code>json_view</code></a> lets you look at a parsed text without copying it, but not change it. <a href=../../../api/basic_json_document/ ><code>basic_json_document<BasicJsonType, view_mode::editable></code></a> — more conveniently spelled <a href=../../../api/json_editable_document/ ><code>json_editable_document</code></a> or <a href=../../../api/ordered_json_editable_document/ ><code>ordered_json_editable_document</code></a> — also lets you <a href=../../../api/basic_json_document/set/ ><code>set</code></a> a value, <a href=../../../api/basic_json_document/push_back/ ><code>push_back</code></a> onto or <a href=../../../api/basic_json_document/insert/ ><code>insert</code></a> into an array, and <a href=../../../api/basic_json_document/erase/ ><code>erase</code></a> an object member or an array element, still without ever building a <code>basic_json</code> tree for parts you do not touch.</p> <p>The <a href=../../../api/view_mode/ >mode</a> defaults to <code class=highlight><span class=n>view_mode</span><span class=o>::</span><span class=n>read_only</span></code>, so <code>json_document</code>/<code>ordered_json_document</code> are unaffected — they carry none of the bookkeeping edits need, and calling <code>set</code>/<code>push_back</code>/<code>insert</code>/<code>erase</code> on one is a compile error, not a runtime one.</p> <h2 id=why-editing-without-reformatting>Why: editing without reformatting<a class=headerlink href=#why-editing-without-reformatting title="Permanent link">¶</a></h2> <p>A price like <code class=highlight><span class=mf>19.90</span></code> is exactly the kind of value that makes editing a <code>json</code> or <code>ordered_json</code> value in place lossy. Say you parse a configuration file, patch one field, and write it back:</p> <ul> <li><strong><code>json</code></strong> re-sorts every key on the way in (<code>object_t</code> is a <code class=highlight><span class=n>std</span><span class=o>::</span><span class=n>map</span></code>) and rewrites every number to its shortest round-trip form on the way out — a one-field patch turns into a diff that reorders the whole file and rewrites <code class=highlight><span class=mf>19.90</span></code> to <code class=highlight><span class=mf>19.9</span></code>.</li> <li><strong><code>ordered_json</code></strong> keeps the key order, but still rewrites every number the same way: parsing has already reduced it to a <code class=highlight><span class=kt>double</span></code>/<code class=highlight><span class=kt>int64_t</span></code>, and there is no way back to how it was spelled in the source text.</li> </ul> <p>The patch of the example below (set <code>"host"</code>, add <code>"retries"</code>) written back by each of them:</p> <div class=nj-jsonview-cmp role=group aria-label="The same patch written back by json, ordered_json, and json_editable_document"> <div><p class=nj-jsonview-cmp-h><code>json</code></p><p class=nj-jsonview-cmp-v>keys sorted, numbers rewritten</p><pre>{<span class=nj-jsonview-bad>"host"</span>:"db2",
|
|
"name":"cache",
|
|
"port":6379,
|
|
"price":<span class=nj-jsonview-bad>19.9</span>,
|
|
"retries":3}</pre></div> <div><p class=nj-jsonview-cmp-h><code>ordered_json</code></p><p class=nj-jsonview-cmp-v>key order kept, numbers rewritten</p><pre>{"name":"cache",
|
|
"host":"db2",
|
|
"port":6379,
|
|
"price":<span class=nj-jsonview-bad>19.9</span>,
|
|
"retries":3}</pre></div> <div class=nj-jsonview-cmp--best><p class=nj-jsonview-cmp-h><code>json_editable_document</code></p><p class=nj-jsonview-cmp-v>order and spelling kept</p><pre>{"name":"cache",
|
|
"host":"db2",
|
|
"port":6379,
|
|
"price":<span class=nj-jsonview-ok>19.90</span>,
|
|
"retries":3}</pre></div> </div> <p>An editable document keeps both. <a href=../../../api/basic_json_view/dump/ ><code>dump()</code></a> of an edited document writes members in document order — a member <a href=../../../api/basic_json_document/set/ ><code>set</code></a> added goes at the end, exactly where it was inserted, and an <a href=../../../api/basic_json_document/erase/ ><code>erase</code></a>d member simply leaves a gap: everything around it keeps its place — and <a href=../../../api/basic_json_view/number_format/ ><code>number_format::source</code></a> keeps the exact spelling of every number an edit did not itself touch; a number an edit <em>did</em> touch is written the way <a href=../../../api/basic_json/dump/ ><code>BasicJsonType::dump()</code></a> would write it, since there is no source spelling for a brand new value. See <a href=../reading/#writing-a-view-back>Writing a view back</a>.</p> <details class=example> <summary>Example: patch a configuration, keeping member order and number spellings</summary> <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><nlohmann/json_view.hpp></span>
|
|
|
|
<span class=k>using</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=k>using</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json_editable_document</span><span class=p>;</span>
|
|
<span class=k>using</span><span class=w> </span><span class=n>nlohmann</span><span class=o>::</span><span class=n>json_editable_view</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>// a configuration file, as it might be read from disk</span>
|
|
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=sa>R</span><span class=s>"</span><span class=dl>(</span><span class=s>{"name": "cache", "host": "db1", "port": 6379, "price": 19.90}</span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
|
|
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=s>"</span><span class=se>\n\n</span><span class=s>"</span><span class=p>;</span>
|
|
|
|
<span class=w> </span><span class=c1>// patch two fields -- "price" is never touched</span>
|
|
<span class=w> </span><span class=n>json_editable_document</span><span class=w> </span><span class=n>doc</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json_editable_document</span><span class=o>::</span><span class=n>parse</span><span class=p>(</span><span class=n>text</span><span class=p>);</span>
|
|
<span class=w> </span><span class=n>doc</span><span class=p>.</span><span class=n>set</span><span class=p>(</span><span class=n>doc</span><span class=p>.</span><span class=n>root</span><span class=p>(),</span><span class=w> </span><span class=s>"host"</span><span class=p>,</span><span class=w> </span><span class=s>"db2"</span><span class=p>);</span>
|
|
<span class=w> </span><span class=n>doc</span><span class=p>.</span><span class=n>set</span><span class=p>(</span><span class=n>doc</span><span class=p>.</span><span class=n>root</span><span class=p>(),</span><span class=w> </span><span class=s>"retries"</span><span class=p>,</span><span class=w> </span><span class=mi>3</span><span class=p>);</span>
|
|
|
|
<span class=w> </span><span class=c1>// member order (the new member at the end) and the untouched number's</span>
|
|
<span class=w> </span><span class=c1>// exact spelling survive</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>doc</span><span class=p>.</span><span class=n>root</span><span class=p>().</span><span class=n>dump</span><span class=p>(</span><span class=mi>-1</span><span class=p>,</span><span class=w> </span><span class=sc>' '</span><span class=p>,</span><span class=w> </span><span class=nb>false</span><span class=p>,</span><span class=w> </span><span class=n>json_editable_view</span><span class=o>::</span><span class=n>number_format</span><span class=o>::</span><span class=n>source</span><span class=p>)</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
|
|
|
|
<span class=w> </span><span class=c1>// the same patch on a plain json value: keys are sorted (object_t is a</span>
|
|
<span class=w> </span><span class=c1>// std::map), and "price" is rewritten even though the patch never</span>
|
|
<span class=w> </span><span class=c1>// touched it</span>
|
|
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>plain</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>parse</span><span class=p>(</span><span class=n>text</span><span class=p>);</span>
|
|
<span class=w> </span><span class=n>plain</span><span class=p>[</span><span class=s>"host"</span><span class=p>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"db2"</span><span class=p>;</span>
|
|
<span class=w> </span><span class=n>plain</span><span class=p>[</span><span class=s>"retries"</span><span class=p>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=mi>3</span><span class=p>;</span>
|
|
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o><<</span><span class=w> </span><span class=n>plain</span><span class=p>.</span><span class=n>dump</span><span class=p>()</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=nt>"name"</span><span class=p>:</span><span class=w> </span><span class=s2>"cache"</span><span class=p>,</span><span class=w> </span><span class=nt>"host"</span><span class=p>:</span><span class=w> </span><span class=s2>"db1"</span><span class=p>,</span><span class=w> </span><span class=nt>"port"</span><span class=p>:</span><span class=w> </span><span class=mi>6379</span><span class=p>,</span><span class=w> </span><span class=nt>"price"</span><span class=p>:</span><span class=w> </span><span class=mf>19.90</span><span class=p>}</span>
|
|
|
|
<span class=p>{</span><span class=nt>"name"</span><span class=p>:</span><span class=s2>"cache"</span><span class=p>,</span><span class=nt>"host"</span><span class=p>:</span><span class=s2>"db2"</span><span class=p>,</span><span class=nt>"port"</span><span class=p>:</span><span class=mi>6379</span><span class=p>,</span><span class=nt>"price"</span><span class=p>:</span><span class=mf>19.90</span><span class=p>,</span><span class=nt>"retries"</span><span class=p>:</span><span class=mi>3</span><span class=p>}</span>
|
|
<span class=p>{</span><span class=nt>"host"</span><span class=p>:</span><span class=s2>"db2"</span><span class=p>,</span><span class=nt>"name"</span><span class=p>:</span><span class=s2>"cache"</span><span class=p>,</span><span class=nt>"port"</span><span class=p>:</span><span class=mi>6379</span><span class=p>,</span><span class=nt>"price"</span><span class=p>:</span><span class=mf>19.9</span><span class=p>,</span><span class=nt>"retries"</span><span class=p>:</span><span class=mi>3</span><span class=p>}</span>
|
|
</code></pre></div> </details> <h2 id=what-stays-valid-and-what-an-edit-costs>What stays valid, and what an edit costs<a class=headerlink href=#what-stays-valid-and-what-an-edit-costs title="Permanent link">¶</a></h2> <p>The source text itself is <strong>never written</strong>, and the parsed index never moves — a value keeps the node it was parsed into for as long as it is not itself replaced. So every <a href=../../../api/basic_json_view/ >view</a> taken before an edit, including a previously obtained <a href=../../../api/basic_json_document/root/ ><code>root()</code></a>, stays valid and, if it still refers to the edited value, sees the edit; a view of a value a later edit drops or replaces just keeps showing what it last held. New values go to storage the document allocates and owns on demand. The one thing an edit does invalidate is the <strong>iterators</strong> taken over an edited array or object: the first time an element is added to it, inserted into it, erased from it, or replaced by a value that spans a different number of nodes, its elements move from the parsed, fixed layout to a growable block of links so that <a href=../../../api/basic_json_document/push_back/ ><code>push_back</code></a> can later grow it in amortized constant time — existing elements are not touched, but an iterator that was walking the old layout no longer matches. A string obtained with <a href=../../../api/basic_json_view/get_string/ ><code>get_string()</code></a> is unaffected either way and stays valid across further edits. See <a href=../../../api/basic_json_document/#edits><code>basic_json_document</code>'s Edits</a> for the details, and <a href=../../../api/basic_json_document/set/#exception-safety><code>set</code>'s Exception safety</a> for what an edit guarantees if it throws (the <em>basic</em> guarantee, not the strong one <code>dump()</code> and the read-only functions provide). How edits are kept in the index is described in the <a href=../../../home/architecture/#node-index-of-json-views>architecture overview</a>.</p> <p>Step through the edits of a small document (the node fields follow the <a href=../../../home/architecture/#node-index-of-json-views>architecture overview</a>):</p> <div class=nj-jsonview-steps data-nj-jsonview-steps> <figure class=nj-jsonview-step data-label="After parsing"> <div class=nj-jsonview-scroll> <svg class="nj-fig nj-jsonview nj-jsonview-editfig" viewbox="0 0 840 372" role=img aria-labelledby="fig-jve0-title fig-jve0-title-d" xmlns=http://www.w3.org/2000/svg> <title id=fig-jve0-title>Step 1 of 5: parsed</title> <desc id=fig-jve0-title-d>After parse: nine nodes, nothing owned yet. The dump with number_format::source is {"port":6379,"price":19.90,"tags":["eu","a\"b"]}.</desc> <defs> <marker id=jve0-line viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-line nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve0-own viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-own nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve0-struct viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-struct nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve0-bad viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-bad nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> </defs> <text class="nj-jsonview-note nj-jsonview-strong" x=16 y=22 xml:space=preserve>parsed index: fixed, never moves</text> <text class=nj-jsonview-note x=824 y=22 text-anchor=end xml:space=preserve>the source text is never written</text> <rect x=36 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=42 y=47 xml:space=preserve>0</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=78 y=61 text-anchor=middle xml:space=preserve>object</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=78 y=77 text-anchor=middle xml:space=preserve>{ } 3</text> <rect x=124 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=130 y=47 xml:space=preserve>1</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=166 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=166 y=77 text-anchor=middle xml:space=preserve>port</text> <rect x=212 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=218 y=47 xml:space=preserve>2</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=254 y=61 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=254 y=77 text-anchor=middle xml:space=preserve>6379</text> <rect x=300 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=306 y=47 xml:space=preserve>3</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=342 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=342 y=77 text-anchor=middle xml:space=preserve>price</text> <rect x=388 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=394 y=47 xml:space=preserve>4</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=430 y=61 text-anchor=middle xml:space=preserve>float</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=430 y=77 text-anchor=middle xml:space=preserve>19.90</text> <rect x=476 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=482 y=47 xml:space=preserve>5</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=518 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=518 y=77 text-anchor=middle xml:space=preserve>tags</text> <rect x=564 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=570 y=47 xml:space=preserve>6</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=606 y=61 text-anchor=middle xml:space=preserve>array</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=606 y=77 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=652 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=658 y=47 xml:space=preserve>7</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=694 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=694 y=77 text-anchor=middle xml:space=preserve>"eu"</text> <rect x=740 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-dec"/> <text class=nj-jsonview-tiny x=746 y=47 xml:space=preserve>8</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-dec" x=782 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=782 y=77 text-anchor=middle xml:space=preserve>a"b</text> <text class="nj-jsonview-note nj-jsonview-strong nj-jsonview-c-own" x=16 y=288 xml:space=preserve>owned storage: allocated on demand, never moves</text> <rect class=nj-jsonview-store x=10 y=192 width=820 height=54 rx=8 /> <text class=nj-jsonview-note x=26 y=224 xml:space=preserve>empty: a read-only json_document has none of this</text> <path class=nj-jsonview-sep d="M16 300 H824"/> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=318 xml:space=preserve>view v = root()["tags"] (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=318 xml:space=preserve>valid, sees every edit</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=338 xml:space=preserve>iterator over tags (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=338 xml:space=preserve>valid</text> <text class="nj-jsonview-mono nj-jsonview-xs nj-jsonview-muted" x=16 y=360 xml:space=preserve>dump(): {"port":6379,"price":19.90,"tags":["eu","a\"b"]}</text> </svg> </div> <figcaption>Step 1 of 5. After parsing: nine nodes in the parsed index, no owned storage yet.</figcaption> </figure> <figure class=nj-jsonview-step data-label="set an existing member"> <div class=nj-jsonview-scroll> <svg class="nj-fig nj-jsonview nj-jsonview-editfig" viewbox="0 0 840 372" role=img aria-labelledby="fig-jve1-title fig-jve1-title-d" xmlns=http://www.w3.org/2000/svg> <title id=fig-jve1-title>Step 2 of 5: doc.set(doc.root(), "port", 6380)</title> <desc id=fig-jve1-title-d>set: the node of the integer is overwritten in place. The dump with number_format::source is {"port":6380,"price":19.90,"tags":["eu","a\"b"]}.</desc> <defs> <marker id=jve1-line viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-line nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve1-own viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-own nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve1-struct viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-struct nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve1-bad viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-bad nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> </defs> <text class="nj-jsonview-note nj-jsonview-strong" x=16 y=22 xml:space=preserve>parsed index: fixed, never moves</text> <text class=nj-jsonview-note x=824 y=22 text-anchor=end xml:space=preserve>the source text is never written</text> <rect x=36 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=42 y=47 xml:space=preserve>0</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=78 y=61 text-anchor=middle xml:space=preserve>object</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=78 y=77 text-anchor=middle xml:space=preserve>{ } 3</text> <rect x=124 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=130 y=47 xml:space=preserve>1</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=166 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=166 y=77 text-anchor=middle xml:space=preserve>port</text> <rect x=212 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=218 y=47 xml:space=preserve>2</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=254 y=61 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=254 y=77 text-anchor=middle xml:space=preserve>6380</text> <rect x=300 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=306 y=47 xml:space=preserve>3</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=342 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=342 y=77 text-anchor=middle xml:space=preserve>price</text> <rect x=388 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=394 y=47 xml:space=preserve>4</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=430 y=61 text-anchor=middle xml:space=preserve>float</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=430 y=77 text-anchor=middle xml:space=preserve>19.90</text> <rect x=476 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=482 y=47 xml:space=preserve>5</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=518 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=518 y=77 text-anchor=middle xml:space=preserve>tags</text> <rect x=564 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=570 y=47 xml:space=preserve>6</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=606 y=61 text-anchor=middle xml:space=preserve>array</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=606 y=77 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=652 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=658 y=47 xml:space=preserve>7</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=694 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=694 y=77 text-anchor=middle xml:space=preserve>"eu"</text> <rect x=740 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-dec"/> <text class=nj-jsonview-tiny x=746 y=47 xml:space=preserve>8</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-dec" x=782 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=782 y=77 text-anchor=middle xml:space=preserve>a"b</text> <text class="nj-jsonview-note nj-jsonview-strong nj-jsonview-c-own" x=16 y=288 xml:space=preserve>owned storage: allocated on demand, never moves</text> <rect class=nj-jsonview-store x=10 y=192 width=820 height=54 rx=8 /> <text class=nj-jsonview-note x=26 y=224 xml:space=preserve>empty: a read-only json_document has none of this</text> <path class=nj-jsonview-sep d="M16 300 H824"/> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=318 xml:space=preserve>view v = root()["tags"] (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=318 xml:space=preserve>valid, sees every edit</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=338 xml:space=preserve>iterator over tags (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=338 xml:space=preserve>valid</text> <text class="nj-jsonview-mono nj-jsonview-xs nj-jsonview-muted" x=16 y=360 xml:space=preserve>dump(): {"port":6380,"price":19.90,"tags":["eu","a\"b"]}</text> </svg> </div> <figcaption>Step 2 of 5. <code>doc.set(doc.root(), "port", 6380)</code> overwrites the node of the integer in place; no member is added or removed, so the object keeps its parsed layout.</figcaption> </figure> <figure class=nj-jsonview-step data-label="erase an array element"> <div class=nj-jsonview-scroll> <svg class="nj-fig nj-jsonview nj-jsonview-editfig" viewbox="0 0 840 372" role=img aria-labelledby="fig-jve2-title fig-jve2-title-d" xmlns=http://www.w3.org/2000/svg> <title id=fig-jve2-title>Step 3 of 5: doc.erase(doc.root()["tags"], 0)</title> <desc id=fig-jve2-title-d>erase: the array moves to a block of links in owned storage. The dump with number_format::source is {"port":6380,"price":19.90,"tags":["a\"b"]}.</desc> <defs> <marker id=jve2-line viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-line nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve2-own viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-own nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve2-struct viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-struct nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve2-bad viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-bad nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> </defs> <text class="nj-jsonview-note nj-jsonview-strong" x=16 y=22 xml:space=preserve>parsed index: fixed, never moves</text> <text class=nj-jsonview-note x=824 y=22 text-anchor=end xml:space=preserve>the source text is never written</text> <rect x=36 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=42 y=47 xml:space=preserve>0</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=78 y=61 text-anchor=middle xml:space=preserve>object</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=78 y=77 text-anchor=middle xml:space=preserve>{ } 3</text> <rect x=124 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=130 y=47 xml:space=preserve>1</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=166 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=166 y=77 text-anchor=middle xml:space=preserve>port</text> <rect x=212 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=218 y=47 xml:space=preserve>2</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=254 y=61 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=254 y=77 text-anchor=middle xml:space=preserve>6380</text> <rect x=300 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=306 y=47 xml:space=preserve>3</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=342 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=342 y=77 text-anchor=middle xml:space=preserve>price</text> <rect x=388 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=394 y=47 xml:space=preserve>4</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=430 y=61 text-anchor=middle xml:space=preserve>float</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=430 y=77 text-anchor=middle xml:space=preserve>19.90</text> <rect x=476 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=482 y=47 xml:space=preserve>5</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=518 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=518 y=77 text-anchor=middle xml:space=preserve>tags</text> <rect x=564 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=570 y=47 xml:space=preserve>6</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=606 y=61 text-anchor=middle xml:space=preserve>array</text> <text class="nj-jsonview-tiny nj-jsonview-c-struct nj-jsonview-strong" x=643 y=47 text-anchor=end xml:space=preserve>moved</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=606 y=77 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=652 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-gap nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=658 y=47 xml:space=preserve>7</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=694 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=694 y=77 text-anchor=middle xml:space=preserve>"eu"</text> <text class="nj-jsonview-tiny nj-jsonview-c-bad" x=694 y=98 text-anchor=middle xml:space=preserve>unreferenced</text> <rect x=740 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-dec"/> <text class=nj-jsonview-tiny x=746 y=47 xml:space=preserve>8</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-dec" x=782 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=782 y=77 text-anchor=middle xml:space=preserve>a"b</text> <text class="nj-jsonview-note nj-jsonview-strong nj-jsonview-c-own" x=16 y=288 xml:space=preserve>owned storage: allocated on demand, never moves</text> <rect class=nj-jsonview-store x=10 y=192 width=820 height=54 rx=8 /> <rect x=16 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=66 y=207 text-anchor=end xml:space=preserve>0'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=43 y=220 text-anchor=middle xml:space=preserve>header</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=43 y=235 text-anchor=middle xml:space=preserve>[ ] 1</text> <rect x=73 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=123 y=207 text-anchor=end xml:space=preserve>1'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=100 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=100 y=235 text-anchor=middle xml:space=preserve>→ 8</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve2-own) d="M100 196 C100 140 782 140 782 84"/> <rect x=130 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-free nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=157 y=224 text-anchor=middle xml:space=preserve>free</text> <path class="nj-jsonview-arr nj-jsonview-c-struct nj-jsonview-dash" marker-end=url(#jve2-struct) d="M598 84 C598 140 43 140 43 196"/> <path class=nj-jsonview-sep d="M16 300 H824"/> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=318 xml:space=preserve>view v = root()["tags"] (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=318 xml:space=preserve>valid, sees every edit</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=338 xml:space=preserve>iterator over tags (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-bad nj-jsonview-strong" x=320 y=338 xml:space=preserve>invalid: tags no longer uses the parsed layout</text> <text class="nj-jsonview-mono nj-jsonview-xs nj-jsonview-muted" x=16 y=360 xml:space=preserve>dump(): {"port":6380,"price":19.90,"tags":["a\"b"]}</text> </svg> </div> <figcaption>Step 3 of 5. <code>doc.erase(doc.root()["tags"], 0)</code>: the array is edited for the first time, so its elements move to a block of links in owned storage. The node of <code>"eu"</code> stays in the index, but nothing refers to it any more; iterators over the array taken before are invalid.</figcaption> </figure> <figure class=nj-jsonview-step data-label="push_back onto the array"> <div class=nj-jsonview-scroll> <svg class="nj-fig nj-jsonview nj-jsonview-editfig" viewbox="0 0 840 372" role=img aria-labelledby="fig-jve3-title fig-jve3-title-d" xmlns=http://www.w3.org/2000/svg> <title id=fig-jve3-title>Step 4 of 5: doc.push_back(doc.root()["tags"], "new")</title> <desc id=fig-jve3-title-d>push_back: a new node, and a link appended to the block. The dump with number_format::source is {"port":6380,"price":19.90,"tags":["a\"b","new"]}.</desc> <defs> <marker id=jve3-line viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-line nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve3-own viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-own nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve3-struct viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-struct nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve3-bad viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-bad nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> </defs> <text class="nj-jsonview-note nj-jsonview-strong" x=16 y=22 xml:space=preserve>parsed index: fixed, never moves</text> <text class=nj-jsonview-note x=824 y=22 text-anchor=end xml:space=preserve>the source text is never written</text> <rect x=36 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=42 y=47 xml:space=preserve>0</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=78 y=61 text-anchor=middle xml:space=preserve>object</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=78 y=77 text-anchor=middle xml:space=preserve>{ } 3</text> <rect x=124 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=130 y=47 xml:space=preserve>1</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=166 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=166 y=77 text-anchor=middle xml:space=preserve>port</text> <rect x=212 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=218 y=47 xml:space=preserve>2</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=254 y=61 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=254 y=77 text-anchor=middle xml:space=preserve>6380</text> <rect x=300 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=306 y=47 xml:space=preserve>3</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=342 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=342 y=77 text-anchor=middle xml:space=preserve>price</text> <rect x=388 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=394 y=47 xml:space=preserve>4</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=430 y=61 text-anchor=middle xml:space=preserve>float</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=430 y=77 text-anchor=middle xml:space=preserve>19.90</text> <rect x=476 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=482 y=47 xml:space=preserve>5</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=518 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=518 y=77 text-anchor=middle xml:space=preserve>tags</text> <rect x=564 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=570 y=47 xml:space=preserve>6</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=606 y=61 text-anchor=middle xml:space=preserve>array</text> <text class="nj-jsonview-tiny nj-jsonview-c-struct nj-jsonview-strong" x=643 y=47 text-anchor=end xml:space=preserve>moved</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=606 y=77 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=652 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-gap nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=658 y=47 xml:space=preserve>7</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=694 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=694 y=77 text-anchor=middle xml:space=preserve>"eu"</text> <text class="nj-jsonview-tiny nj-jsonview-c-bad" x=694 y=98 text-anchor=middle xml:space=preserve>unreferenced</text> <rect x=740 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-dec"/> <text class=nj-jsonview-tiny x=746 y=47 xml:space=preserve>8</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-dec" x=782 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=782 y=77 text-anchor=middle xml:space=preserve>a"b</text> <text class="nj-jsonview-note nj-jsonview-strong nj-jsonview-c-own" x=16 y=288 xml:space=preserve>owned storage: allocated on demand, never moves</text> <rect class=nj-jsonview-store x=10 y=192 width=820 height=54 rx=8 /> <rect x=16 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=66 y=207 text-anchor=end xml:space=preserve>0'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=43 y=220 text-anchor=middle xml:space=preserve>header</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=43 y=235 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=73 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=123 y=207 text-anchor=end xml:space=preserve>1'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=100 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=100 y=235 text-anchor=middle xml:space=preserve>→ 8</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve3-own) d="M100 196 C100 140 782 140 782 84"/> <rect x=130 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=180 y=207 text-anchor=end xml:space=preserve>2'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=157 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=157 y=235 text-anchor=middle xml:space=preserve>→ 3'</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve3-own) d="M157 242 C157 268 214 268 214 244"/> <rect x=187 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=237 y=207 text-anchor=end xml:space=preserve>3'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=214 y=220 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=214 y=235 text-anchor=middle xml:space=preserve>"new"</text> <path class="nj-jsonview-arr nj-jsonview-c-struct nj-jsonview-dash" marker-end=url(#jve3-struct) d="M598 84 C598 140 43 140 43 196"/> <text class=nj-jsonview-note x=588 y=282 text-anchor=end xml:space=preserve>edited text</text> <rect x=596 y=264 width=42 height=26 rx=4 class="nj-jsonview-node nj-jsonview-c-str"/> <text class="nj-jsonview-mono nj-jsonview-sm" x=602 y=282 xml:space=preserve>new</text> <path class=nj-jsonview-sep d="M16 300 H824"/> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=318 xml:space=preserve>view v = root()["tags"] (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=318 xml:space=preserve>valid, sees every edit</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=338 xml:space=preserve>iterator over tags (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-bad nj-jsonview-strong" x=320 y=338 xml:space=preserve>invalid: tags no longer uses the parsed layout</text> <text class="nj-jsonview-mono nj-jsonview-xs nj-jsonview-muted" x=16 y=360 xml:space=preserve>dump(): {"port":6380,"price":19.90,"tags":["a\"b","new"]}</text> </svg> </div> <figcaption>Step 4 of 5. <code>doc.push_back(doc.root()["tags"], "new")</code>: the new string gets its own node, its text goes to the buffer of edited text, and a link to it is appended to the block of the array.</figcaption> </figure> <figure class=nj-jsonview-step data-label="set a new member"> <div class=nj-jsonview-scroll> <svg class="nj-fig nj-jsonview nj-jsonview-editfig" viewbox="0 0 840 372" role=img aria-labelledby="fig-jve4-title fig-jve4-title-d" xmlns=http://www.w3.org/2000/svg> <title id=fig-jve4-title>Step 5 of 5: doc.set(doc.root(), "retries", 3)</title> <desc id=fig-jve4-title-d>set of a new member: the object moves to a block as well. The dump with number_format::source is {"port":6380,"price":19.90,"tags":["a\"b","new"],"retries":3}.</desc> <defs> <marker id=jve4-line viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-line nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve4-own viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-own nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve4-struct viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-struct nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> <marker id=jve4-bad viewbox="0 0 10 10" refx=9 refy=5 markerwidth=6.5 markerheight=6.5 orient=auto-start-reverse><path class="nj-jsonview-c-bad nj-jsonview-head" d="M0 1 L10 5 L0 9 z"/></marker> </defs> <text class="nj-jsonview-note nj-jsonview-strong" x=16 y=22 xml:space=preserve>parsed index: fixed, never moves</text> <text class=nj-jsonview-note x=824 y=22 text-anchor=end xml:space=preserve>the source text is never written</text> <rect x=36 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=42 y=47 xml:space=preserve>0</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=78 y=61 text-anchor=middle xml:space=preserve>object</text> <text class="nj-jsonview-tiny nj-jsonview-c-struct nj-jsonview-strong" x=115 y=47 text-anchor=end xml:space=preserve>moved</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=78 y=77 text-anchor=middle xml:space=preserve>{ } 3</text> <rect x=124 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=130 y=47 xml:space=preserve>1</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=166 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=166 y=77 text-anchor=middle xml:space=preserve>port</text> <rect x=212 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=218 y=47 xml:space=preserve>2</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=254 y=61 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=254 y=77 text-anchor=middle xml:space=preserve>6380</text> <rect x=300 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=306 y=47 xml:space=preserve>3</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=342 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=342 y=77 text-anchor=middle xml:space=preserve>price</text> <rect x=388 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=394 y=47 xml:space=preserve>4</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=430 y=61 text-anchor=middle xml:space=preserve>float</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=430 y=77 text-anchor=middle xml:space=preserve>19.90</text> <rect x=476 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=482 y=47 xml:space=preserve>5</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=518 y=61 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=518 y=77 text-anchor=middle xml:space=preserve>tags</text> <rect x=564 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=570 y=47 xml:space=preserve>6</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=606 y=61 text-anchor=middle xml:space=preserve>array</text> <text class="nj-jsonview-tiny nj-jsonview-c-struct nj-jsonview-strong" x=643 y=47 text-anchor=end xml:space=preserve>moved</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=606 y=77 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=652 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-gap nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=658 y=47 xml:space=preserve>7</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=694 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=694 y=77 text-anchor=middle xml:space=preserve>"eu"</text> <text class="nj-jsonview-tiny nj-jsonview-c-bad" x=694 y=98 text-anchor=middle xml:space=preserve>unreferenced</text> <rect x=740 y=34 width=84 height=50 rx=5 class="nj-jsonview-node nj-jsonview-c-dec"/> <text class=nj-jsonview-tiny x=746 y=47 xml:space=preserve>8</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-dec" x=782 y=61 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-sm" x=782 y=77 text-anchor=middle xml:space=preserve>a"b</text> <text class="nj-jsonview-note nj-jsonview-strong nj-jsonview-c-own" x=16 y=288 xml:space=preserve>owned storage: allocated on demand, never moves</text> <rect class=nj-jsonview-store x=10 y=192 width=820 height=54 rx=8 /> <rect x=16 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=66 y=207 text-anchor=end xml:space=preserve>0'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=43 y=220 text-anchor=middle xml:space=preserve>header</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=43 y=235 text-anchor=middle xml:space=preserve>[ ] 2</text> <rect x=73 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=123 y=207 text-anchor=end xml:space=preserve>1'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=100 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=100 y=235 text-anchor=middle xml:space=preserve>→ 8</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M100 196 C100 140 782 140 782 84"/> <rect x=130 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=180 y=207 text-anchor=end xml:space=preserve>2'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=157 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=157 y=235 text-anchor=middle xml:space=preserve>→ 3'</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M157 242 C157 268 214 268 214 244"/> <rect x=187 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-c-str"/> <text class=nj-jsonview-tiny x=237 y=207 text-anchor=end xml:space=preserve>3'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-str" x=214 y=220 text-anchor=middle xml:space=preserve>string</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=214 y=235 text-anchor=middle xml:space=preserve>"new"</text> <rect x=244 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-num"/> <text class=nj-jsonview-tiny x=294 y=207 text-anchor=end xml:space=preserve>4'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-num" x=271 y=220 text-anchor=middle xml:space=preserve>uint</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=271 y=235 text-anchor=middle xml:space=preserve>3</text> <rect x=301 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-struct"/> <text class=nj-jsonview-tiny x=351 y=207 text-anchor=end xml:space=preserve>5'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-struct" x=328 y=220 text-anchor=middle xml:space=preserve>header</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=328 y=235 text-anchor=middle xml:space=preserve>{ } 4</text> <rect x=358 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=408 y=207 text-anchor=end xml:space=preserve>6'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=385 y=220 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=385 y=235 text-anchor=middle xml:space=preserve>port</text> <rect x=415 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=465 y=207 text-anchor=end xml:space=preserve>7'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=442 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=442 y=235 text-anchor=middle xml:space=preserve>→ 2</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M442 196 C442 140 254 140 254 84"/> <rect x=472 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=522 y=207 text-anchor=end xml:space=preserve>8'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=499 y=220 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=499 y=235 text-anchor=middle xml:space=preserve>price</text> <rect x=529 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=579 y=207 text-anchor=end xml:space=preserve>9'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=556 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=556 y=235 text-anchor=middle xml:space=preserve>→ 4</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M556 196 C556 140 430 140 430 84"/> <rect x=586 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=636 y=207 text-anchor=end xml:space=preserve>10'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=613 y=220 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=613 y=235 text-anchor=middle xml:space=preserve>tags</text> <rect x=643 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=693 y=207 text-anchor=end xml:space=preserve>11'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=670 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=670 y=235 text-anchor=middle xml:space=preserve>→ 6</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M670 196 C670 140 614 140 614 84"/> <rect x=700 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-key"/> <text class=nj-jsonview-tiny x=750 y=207 text-anchor=end xml:space=preserve>12'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-key" x=727 y=220 text-anchor=middle xml:space=preserve>key</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=727 y=235 text-anchor=middle xml:space=preserve>retries</text> <rect x=757 y=196 width=54 height=46 rx=5 class="nj-jsonview-node nj-jsonview-hot nj-jsonview-c-own"/> <text class=nj-jsonview-tiny x=807 y=207 text-anchor=end xml:space=preserve>13'</text> <text class="nj-jsonview-kind nj-jsonview-xs nj-jsonview-c-own" x=784 y=220 text-anchor=middle xml:space=preserve>link</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=784 y=235 text-anchor=middle xml:space=preserve>→ 4'</text> <path class="nj-jsonview-arr nj-jsonview-c-own" marker-end=url(#jve4-own) d="M784 242 C784 268 271 268 271 244"/> <path class="nj-jsonview-arr nj-jsonview-c-struct nj-jsonview-dash" marker-end=url(#jve4-struct) d="M598 84 C598 140 43 140 43 196"/> <path class="nj-jsonview-arr nj-jsonview-c-struct nj-jsonview-dash" marker-end=url(#jve4-struct) d="M70 84 C70 140 328 140 328 196"/> <text class=nj-jsonview-note x=588 y=282 text-anchor=end xml:space=preserve>edited text</text> <rect x=596 y=264 width=112 height=26 rx=4 class="nj-jsonview-node nj-jsonview-c-str"/> <text class="nj-jsonview-mono nj-jsonview-sm" x=602 y=282 xml:space=preserve>newretries</text> <path class=nj-jsonview-sep d="M16 300 H824"/> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=318 xml:space=preserve>view v = root()["tags"] (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-struct nj-jsonview-strong" x=320 y=318 xml:space=preserve>valid, sees every edit</text> <text class="nj-jsonview-mono nj-jsonview-xs" x=16 y=338 xml:space=preserve>iterator over tags (taken after parse):</text> <text class="nj-jsonview-note nj-jsonview-c-bad nj-jsonview-strong" x=320 y=338 xml:space=preserve>invalid: tags no longer uses the parsed layout</text> <text class="nj-jsonview-mono nj-jsonview-xs nj-jsonview-muted" x=16 y=360 xml:space=preserve>dump(): {"port":6380,"price":19.90,"tags":["a\"b","new"],"retries":3}</text> </svg> </div> <figcaption>Step 5 of 5. <code>doc.set(doc.root(), "retries", 3)</code>: a new member, so the object moves to a block too: copies of its keys, links to the values it already had, then the new key and a link to the new integer.</figcaption> </figure> </div> <p class=nj-caption>The node index and the owned storage of the document after each of five edits. Use <em>Back</em>, <em>Next</em>, or the numbered buttons to switch between the steps; without JavaScript all steps are shown one below the other.</p> <h2 id=see-also>See also<a class=headerlink href=#see-also title="Permanent link">¶</a></h2> <ul> <li><a href=../ >Zero-copy <abbr title="JavaScript Object Notation">JSON</abbr> views</a> - overview</li> <li><a href=../../../api/json_editable_document/ ><code>json_editable_document</code></a> - and <a href=../../../api/ordered_json_editable_document/ ><code>ordered_json_editable_document</code></a> - the documents that can be edited in place</li> <li><a href=../../../api/basic_json_document/#edits><code>basic_json_document</code>'s Edits</a> - the rules of edits in detail</li> <li><a href=../differences/#exception-context>Differences from <code>basic_json</code></a> - source positions after edits</li> </ul> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">¶</a></h2> <ul> <li>Added in version 3.13.0 <span class=unreleased-version title="Not part of a release yet; the latest release is 3.12.0.">unreleased</span>.</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" title="November 9, 2026 07:12:00 UTC">November 9, 2026</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> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../generic_code/ class="md-footer__link md-footer__link--prev" aria-label="Previous: Writing generic code"> <div class="md-footer__button md-icon"> <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> </div> <div class=md-footer__title> <span class=md-footer__direction> Previous </span> <div class=md-ellipsis> Writing generic code </div> </div> </a> <a href=../images/ class="md-footer__link md-footer__link--next" aria-label="Next: Images"> <div class=md-footer__title> <span class=md-footer__direction> Next </span> <div class=md-ellipsis> Images </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <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-2026 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 512 512"><!-- Font Awesome Free 7.1.0 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 2025 Fonticons, Inc.--><path d="M173.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.9M252.8 8C114.1 8 8 113.3 8 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.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.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 7.1.0 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 2025 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.5V416zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77m282.1 320h-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 7.1.0 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 2025 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 7.1.0 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 2025 Fonticons, Inc.--><path d="M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.8c-7.6 0-13.1-6.6-12.1-13.9L59.3 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.6 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>{"annotate": null, "base": "../../..", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "navigation.top", "navigation.footer", "toc.follow", "search.suggest", "search.highlight", "content.code.copy", "content.tabs.link", "content.action.edit", "content.action.view"], "search": "../../../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "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"}, "version": null}</script> <script src=../../../assets/javascripts/bundle.c21346df.min.js></script> <script src=../../../js/mermaid-brand.js></script> <script src=../../../js/external-links.js></script> <script src=../../../js/fig-sax.js></script> <script src=../../../js/fig-jsonview.js></script> <script src=../../../js/fig-exceptions.js></script> <script src=../../../js/fig-pointer.js></script> <script src=../../../js/fig-charts.js></script> <script src=../../../js/fig-integration.js></script> <script src=../../../js/fig-macros.js></script> </body> </html> |