This commit is contained in:
nlohmann committed 2026-08-19 18:20:55 +00:00
1 parent b4e4dbe346
commit e5ef5a4cd3
261 files changed
+4526 -4483

No files matched your search

+134 -134
View File
@@ -22,44 +22,44 @@
<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 JSON text</span>
<span class=w> </span><span class=kt>char</span><span class=w> </span><span class=n>text</span><span class=p>[]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=sa>R</span><span class=s>&quot;</span><span class=dl>(</span>
<span class=w> </span><span class=kt>char</span><span class=w> </span><span class=n>text</span><span class=p>[]</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> {</span>
<span class=s> &quot;Image&quot;: {</span>
<span class=s> &quot;Width&quot;: 800,</span>
<span class=s> &quot;Height&quot;: 600,</span>
<span class=s> &quot;Title&quot;: &quot;View from 15th Floor&quot;,</span>
<span class=s> &quot;Thumbnail&quot;: {</span>
<span class=s> &quot;Url&quot;: &quot;http://www.example.com/image/481989943&quot;,</span>
<span class=s> &quot;Height&quot;: 125,</span>
<span class=s> &quot;Width&quot;: 100</span>
<span class=s> "Image": {</span>
<span class=s> "Width": 800,</span>
<span class=s> "Height": 600,</span>
<span class=s> "Title": "View from 15th Floor",</span>
<span class=s> "Thumbnail": {</span>
<span class=s> "Url": "http://www.example.com/image/481989943",</span>
<span class=s> "Height": 125,</span>
<span class=s> "Width": 100</span>
<span class=s> },</span>
<span class=s> &quot;Animated&quot; : false,</span>
<span class=s> &quot;IDs&quot;: [116, 943, 234, 38793]</span>
<span class=s> "Animated" : false,</span>
<span class=s> "IDs": [116, 943, 234, 38793]</span>
<span class=s> }</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Image&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Animated&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;IDs&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=nt>"Image"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Animated"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>"IDs"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=mi>116</span><span class=p>,</span>
<span class=w> </span><span class=mi>943</span><span class=p>,</span>
<span class=w> </span><span class=mi>234</span><span class=p>,</span>
<span class=w> </span><span class=mi>38793</span>
<span class=w> </span><span class=p>],</span>
<span class=w> </span><span class=nt>&quot;Thumbnail&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://www.example.com/image/481989943&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=nt>"Thumbnail"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Url"</span><span class=p>:</span><span class=w> </span><span class=s2>"http://www.example.com/image/481989943"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=p>},</span>
<span class=w> </span><span class=nt>&quot;Title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;View from 15th Floor&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=nt>"Title"</span><span class=p>:</span><span class=w> </span><span class=s2>"View from 15th Floor"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
</code></pre></div> </details> <details class=example> <summary>Parsing from a string</summary> <p>The example below demonstrates the <code>parse()</code> function with and without callback function.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
@@ -71,32 +71,32 @@
<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 JSON text</span>
<span class=w> </span><span class=k>auto</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>&quot;</span><span class=dl>(</span>
<span class=w> </span><span class=k>auto</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> {</span>
<span class=s> &quot;Image&quot;: {</span>
<span class=s> &quot;Width&quot;: 800,</span>
<span class=s> &quot;Height&quot;: 600,</span>
<span class=s> &quot;Title&quot;: &quot;View from 15th Floor&quot;,</span>
<span class=s> &quot;Thumbnail&quot;: {</span>
<span class=s> &quot;Url&quot;: &quot;http://www.example.com/image/481989943&quot;,</span>
<span class=s> &quot;Height&quot;: 125,</span>
<span class=s> &quot;Width&quot;: 100</span>
<span class=s> "Image": {</span>
<span class=s> "Width": 800,</span>
<span class=s> "Height": 600,</span>
<span class=s> "Title": "View from 15th Floor",</span>
<span class=s> "Thumbnail": {</span>
<span class=s> "Url": "http://www.example.com/image/481989943",</span>
<span class=s> "Height": 125,</span>
<span class=s> "Width": 100</span>
<span class=s> },</span>
<span class=s> &quot;Animated&quot; : false,</span>
<span class=s> &quot;IDs&quot;: [116, 943, 234, 38793]</span>
<span class=s> "Animated" : false,</span>
<span class=s> "IDs": [116, 943, 234, 38793]</span>
<span class=s> }</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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>// define parser callback</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>parser_callback_t</span><span class=w> </span><span class=n>cb</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>[](</span><span class=kt>int</span><span class=w> </span><span class=n>depth</span><span class=p>,</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>parse_event_t</span><span class=w> </span><span class=n>event</span><span class=p>,</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>&amp;</span><span class=w> </span><span class=n>parsed</span><span class=p>)</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=c1>// skip object elements with key &quot;Thumbnail&quot;</span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>event</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_event_t</span><span class=o>::</span><span class=n>key</span><span class=w> </span><span class=k>and</span><span class=w> </span><span class=n>parsed</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=s>&quot;Thumbnail&quot;</span><span class=p>))</span>
<span class=w> </span><span class=c1>// skip object elements with key "Thumbnail"</span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>event</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_event_t</span><span class=o>::</span><span class=n>key</span><span class=w> </span><span class=k>and</span><span class=w> </span><span class=n>parsed</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=s>"Thumbnail"</span><span class=p>))</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=k>return</span><span class=w> </span><span class=nb>false</span><span class=p>;</span>
<span class=w> </span><span class=p>}</span>
@@ -108,40 +108,40 @@
<span class=w> </span><span class=c1>// parse (with callback) and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_filtered</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>cb</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_filtered</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_filtered</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Image&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Animated&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;IDs&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=nt>"Image"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Animated"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>"IDs"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=mi>116</span><span class=p>,</span>
<span class=w> </span><span class=mi>943</span><span class=p>,</span>
<span class=w> </span><span class=mi>234</span><span class=p>,</span>
<span class=w> </span><span class=mi>38793</span>
<span class=w> </span><span class=p>],</span>
<span class=w> </span><span class=nt>&quot;Thumbnail&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://www.example.com/image/481989943&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=nt>"Thumbnail"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Url"</span><span class=p>:</span><span class=w> </span><span class=s2>"http://www.example.com/image/481989943"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=p>},</span>
<span class=w> </span><span class=nt>&quot;Title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;View from 15th Floor&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=nt>"Title"</span><span class=p>:</span><span class=w> </span><span class=s2>"View from 15th Floor"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
<span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Image&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Animated&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;IDs&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=nt>"Image"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Animated"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>"IDs"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=mi>116</span><span class=p>,</span>
<span class=w> </span><span class=mi>943</span><span class=p>,</span>
<span class=w> </span><span class=mi>234</span><span class=p>,</span>
<span class=w> </span><span class=mi>38793</span>
<span class=w> </span><span class=p>],</span>
<span class=w> </span><span class=nt>&quot;Title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;View from 15th Floor&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=nt>"Title"</span><span class=p>:</span><span class=w> </span><span class=s2>"View from 15th Floor"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
</code></pre></div> </details> <details class=example> <summary>Parsing from an input stream</summary> <p>The example below demonstrates the <code>parse()</code> function with and without callback function.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
@@ -154,22 +154,22 @@
<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 JSON text</span>
<span class=w> </span><span class=k>auto</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>&quot;</span><span class=dl>(</span>
<span class=w> </span><span class=k>auto</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> {</span>
<span class=s> &quot;Image&quot;: {</span>
<span class=s> &quot;Width&quot;: 800,</span>
<span class=s> &quot;Height&quot;: 600,</span>
<span class=s> &quot;Title&quot;: &quot;View from 15th Floor&quot;,</span>
<span class=s> &quot;Thumbnail&quot;: {</span>
<span class=s> &quot;Url&quot;: &quot;http://www.example.com/image/481989943&quot;,</span>
<span class=s> &quot;Height&quot;: 125,</span>
<span class=s> &quot;Width&quot;: 100</span>
<span class=s> "Image": {</span>
<span class=s> "Width": 800,</span>
<span class=s> "Height": 600,</span>
<span class=s> "Title": "View from 15th Floor",</span>
<span class=s> "Thumbnail": {</span>
<span class=s> "Url": "http://www.example.com/image/481989943",</span>
<span class=s> "Height": 125,</span>
<span class=s> "Width": 100</span>
<span class=s> },</span>
<span class=s> &quot;Animated&quot; : false,</span>
<span class=s> &quot;IDs&quot;: [116, 943, 234, 38793]</span>
<span class=s> "Animated" : false,</span>
<span class=s> "IDs": [116, 943, 234, 38793]</span>
<span class=s> }</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=c1>// fill a stream with JSON text</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>stringstream</span><span class=w> </span><span class=n>ss</span><span class=p>;</span>
@@ -177,13 +177,13 @@
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>ss</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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>// define parser callback</span>
<span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>parser_callback_t</span><span class=w> </span><span class=n>cb</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>[](</span><span class=kt>int</span><span class=w> </span><span class=n>depth</span><span class=p>,</span><span class=w> </span><span class=n>json</span><span class=o>::</span><span class=n>parse_event_t</span><span class=w> </span><span class=n>event</span><span class=p>,</span><span class=w> </span><span class=n>json</span><span class=w> </span><span class=o>&amp;</span><span class=w> </span><span class=n>parsed</span><span class=p>)</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=c1>// skip object elements with key &quot;Thumbnail&quot;</span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>event</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_event_t</span><span class=o>::</span><span class=n>key</span><span class=w> </span><span class=k>and</span><span class=w> </span><span class=n>parsed</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=s>&quot;Thumbnail&quot;</span><span class=p>))</span>
<span class=w> </span><span class=c1>// skip object elements with key "Thumbnail"</span>
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>event</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_event_t</span><span class=o>::</span><span class=n>key</span><span class=w> </span><span class=k>and</span><span class=w> </span><span class=n>parsed</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>json</span><span class=p>(</span><span class=s>"Thumbnail"</span><span class=p>))</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=k>return</span><span class=w> </span><span class=nb>false</span><span class=p>;</span>
<span class=w> </span><span class=p>}</span>
@@ -199,40 +199,40 @@
<span class=w> </span><span class=c1>// parse (with callback) and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_filtered</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>ss</span><span class=p>,</span><span class=w> </span><span class=n>cb</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_filtered</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_filtered</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>'\n'</span><span class=p>;</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Image&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Animated&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;IDs&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=nt>"Image"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Animated"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>"IDs"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=mi>116</span><span class=p>,</span>
<span class=w> </span><span class=mi>943</span><span class=p>,</span>
<span class=w> </span><span class=mi>234</span><span class=p>,</span>
<span class=w> </span><span class=mi>38793</span>
<span class=w> </span><span class=p>],</span>
<span class=w> </span><span class=nt>&quot;Thumbnail&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Url&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;http://www.example.com/image/481989943&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=nt>"Thumbnail"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>125</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Url"</span><span class=p>:</span><span class=w> </span><span class=s2>"http://www.example.com/image/481989943"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>100</span>
<span class=w> </span><span class=p>},</span>
<span class=w> </span><span class=nt>&quot;Title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;View from 15th Floor&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=nt>"Title"</span><span class=p>:</span><span class=w> </span><span class=s2>"View from 15th Floor"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
<span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Image&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>&quot;Animated&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Height&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;IDs&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=nt>"Image"</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=nt>"Animated"</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Height"</span><span class=p>:</span><span class=w> </span><span class=mi>600</span><span class=p>,</span>
<span class=w> </span><span class=nt>"IDs"</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
<span class=w> </span><span class=mi>116</span><span class=p>,</span>
<span class=w> </span><span class=mi>943</span><span class=p>,</span>
<span class=w> </span><span class=mi>234</span><span class=p>,</span>
<span class=w> </span><span class=mi>38793</span>
<span class=w> </span><span class=p>],</span>
<span class=w> </span><span class=nt>&quot;Title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;View from 15th Floor&quot;</span><span class=p>,</span>
<span class=w> </span><span class=nt>&quot;Width&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=nt>"Title"</span><span class=p>:</span><span class=w> </span><span class=s2>"View from 15th Floor"</span><span class=p>,</span>
<span class=w> </span><span class=nt>"Width"</span><span class=p>:</span><span class=w> </span><span class=mi>800</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
</code></pre></div> </details> <details class=example> <summary>Parsing from a contiguous container</summary> <p>The example below demonstrates the <code>parse()</code> function reading from a contiguous container.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
@@ -244,11 +244,11 @@
<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 JSON text given as std::vector</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span><span class=o>&gt;</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=sc>&#39;[&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;1&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;,&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;2&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;,&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;3&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;]&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;\0&#39;</span><span class=p>};</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span><span class=o>&gt;</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=sc>'['</span><span class=p>,</span><span class=w> </span><span class=sc>'1'</span><span class=p>,</span><span class=w> </span><span class=sc>','</span><span class=p>,</span><span class=w> </span><span class=sc>'2'</span><span class=p>,</span><span class=w> </span><span class=sc>','</span><span class=p>,</span><span class=w> </span><span class=sc>'3'</span><span class=p>,</span><span class=w> </span><span class=sc>']'</span><span class=p>,</span><span class=w> </span><span class=sc>'\0'</span><span class=p>};</span>
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span>
<span class=w> </span><span class=mi>1</span><span class=p>,</span>
@@ -264,11 +264,11 @@
<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 JSON text given as string that is not null-terminated</span>
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=kt>char</span><span class=o>*</span><span class=w> </span><span class=n>ptr</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&quot;[1,2,3]another value&quot;</span><span class=p>;</span>
<span class=w> </span><span class=k>const</span><span class=w> </span><span class=kt>char</span><span class=o>*</span><span class=w> </span><span class=n>ptr</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>"[1,2,3]another value"</span><span class=p>;</span>
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>ptr</span><span class=p>,</span><span class=w> </span><span class=n>ptr</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=mi>7</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span>
<span class=w> </span><span class=mi>1</span><span class=p>,</span>
@@ -284,11 +284,11 @@
<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 JSON text given an input with other values</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span><span class=o>&gt;</span><span class=w> </span><span class=n>input</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=sc>&#39;[&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;1&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;,&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;2&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;,&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;3&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;]&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;o&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;t&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;h&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;e&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;r&#39;</span><span class=p>};</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>vector</span><span class=o>&lt;</span><span class=n>std</span><span class=o>::</span><span class=kt>uint8_t</span><span class=o>&gt;</span><span class=w> </span><span class=n>input</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=sc>'['</span><span class=p>,</span><span class=w> </span><span class=sc>'1'</span><span class=p>,</span><span class=w> </span><span class=sc>','</span><span class=p>,</span><span class=w> </span><span class=sc>'2'</span><span class=p>,</span><span class=w> </span><span class=sc>','</span><span class=p>,</span><span class=w> </span><span class=sc>'3'</span><span class=p>,</span><span class=w> </span><span class=sc>']'</span><span class=p>,</span><span class=w> </span><span class=sc>'o'</span><span class=p>,</span><span class=w> </span><span class=sc>'t'</span><span class=p>,</span><span class=w> </span><span class=sc>'h'</span><span class=p>,</span><span class=w> </span><span class=sc>'e'</span><span class=p>,</span><span class=w> </span><span class=sc>'r'</span><span class=p>};</span>
<span class=w> </span><span class=c1>// parse and serialize JSON</span>
<span class=w> </span><span class=n>json</span><span class=w> </span><span class=n>j_complete</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>input</span><span class=p>.</span><span class=n>begin</span><span class=p>(),</span><span class=w> </span><span class=n>input</span><span class=p>.</span><span class=n>begin</span><span class=p>()</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=mi>7</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;</span><span class=se>\n\n</span><span class=s>&quot;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>setw</span><span class=p>(</span><span class=mi>4</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j_complete</span><span class=w> </span><span class=o>&lt;&lt;</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=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span>
<span class=w> </span><span class=mi>1</span><span class=p>,</span>
@@ -303,11 +303,11 @@
<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>// an invalid JSON text</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>&quot;</span><span class=dl>(</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> {</span>
<span class=s> &quot;key&quot;: &quot;value without closing quotes</span>
<span class=s> "key": "value without closing quotes</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=c1>// parse with exceptions</span>
<span class=w> </span><span class=k>try</span>
@@ -324,14 +324,14 @@
<span class=w> </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>j</span><span class=p>.</span><span class=n>is_discarded</span><span class=p>())</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;the input is invalid JSON&quot;</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"the input is invalid JSON"</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
<span class=w> </span><span class=p>}</span>
<span class=w> </span><span class=k>else</span>
<span class=w> </span><span class=p>{</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>&quot;the input is valid JSON: &quot;</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=s>"the input is valid JSON: "</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>endl</span><span class=p>;</span>
<span class=w> </span><span class=p>}</span>
<span class=p>}</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span><span class=err>jso</span><span class=kc>n</span><span class=err>.excep</span><span class=kc>t</span><span class=err>io</span><span class=kc>n</span><span class=err>.parse_error.</span><span class=mi>101</span><span class=p>]</span><span class=w> </span><span class=err>parse</span><span class=w> </span><span class=err>error</span><span class=w> </span><span class=err>a</span><span class=kc>t</span><span class=w> </span><span class=err>li</span><span class=kc>ne</span><span class=w> </span><span class=mi>4</span><span class=p>,</span><span class=w> </span><span class=err>colum</span><span class=kc>n</span><span class=w> </span><span class=mi>0</span><span class=p>:</span><span class=w> </span><span class=err>sy</span><span class=kc>nta</span><span class=err>x</span><span class=w> </span><span class=err>error</span><span class=w> </span><span class=err>while</span><span class=w> </span><span class=err>parsi</span><span class=kc>n</span><span class=err>g</span><span class=w> </span><span class=err>value</span><span class=w> </span><span class=mi>-</span><span class=w> </span><span class=err>i</span><span class=kc>n</span><span class=err>valid</span><span class=w> </span><span class=err>s</span><span class=kc>tr</span><span class=err>i</span><span class=kc>n</span><span class=err>g</span><span class=p>:</span><span class=w> </span><span class=err>co</span><span class=kc>ntr</span><span class=err>ol</span><span class=w> </span><span class=err>charac</span><span class=kc>ter</span><span class=w> </span><span class=err>U+</span><span class=mi>000</span><span class=err>A</span><span class=w> </span><span class=err>(LF)</span><span class=w> </span><span class=err>mus</span><span class=kc>t</span><span class=w> </span><span class=err>be</span><span class=w> </span><span class=err>escaped</span><span class=w> </span><span class=kc>t</span><span class=err>o</span><span class=w> </span><span class=err>\u</span><span class=mi>000</span><span class=err>A</span><span class=w> </span><span class=err>or</span><span class=w> </span><span class=err>\</span><span class=kc>n</span><span class=err>;</span><span class=w> </span><span class=err>las</span><span class=kc>t</span><span class=w> </span><span class=err>read</span><span class=p>:</span><span class=w> </span><span class=err>&#39;&quot;value without closing quotes&lt;U+000A&gt;&#39;</span>
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code><span class=p>[</span><span class=err>jso</span><span class=kc>n</span><span class=err>.excep</span><span class=kc>t</span><span class=err>io</span><span class=kc>n</span><span class=err>.parse_error.</span><span class=mi>101</span><span class=p>]</span><span class=w> </span><span class=err>parse</span><span class=w> </span><span class=err>error</span><span class=w> </span><span class=err>a</span><span class=kc>t</span><span class=w> </span><span class=err>li</span><span class=kc>ne</span><span class=w> </span><span class=mi>4</span><span class=p>,</span><span class=w> </span><span class=err>colum</span><span class=kc>n</span><span class=w> </span><span class=mi>0</span><span class=p>:</span><span class=w> </span><span class=err>sy</span><span class=kc>nta</span><span class=err>x</span><span class=w> </span><span class=err>error</span><span class=w> </span><span class=err>while</span><span class=w> </span><span class=err>parsi</span><span class=kc>n</span><span class=err>g</span><span class=w> </span><span class=err>value</span><span class=w> </span><span class=mi>-</span><span class=w> </span><span class=err>i</span><span class=kc>n</span><span class=err>valid</span><span class=w> </span><span class=err>s</span><span class=kc>tr</span><span class=err>i</span><span class=kc>n</span><span class=err>g</span><span class=p>:</span><span class=w> </span><span class=err>co</span><span class=kc>ntr</span><span class=err>ol</span><span class=w> </span><span class=err>charac</span><span class=kc>ter</span><span class=w> </span><span class=err>U+</span><span class=mi>000</span><span class=err>A</span><span class=w> </span><span class=err>(LF)</span><span class=w> </span><span class=err>mus</span><span class=kc>t</span><span class=w> </span><span class=err>be</span><span class=w> </span><span class=err>escaped</span><span class=w> </span><span class=kc>t</span><span class=err>o</span><span class=w> </span><span class=err>\u</span><span class=mi>000</span><span class=err>A</span><span class=w> </span><span class=err>or</span><span class=w> </span><span class=err>\</span><span class=kc>n</span><span class=err>;</span><span class=w> </span><span class=err>las</span><span class=kc>t</span><span class=w> </span><span class=err>read</span><span class=p>:</span><span class=w> </span><span class=err>'"value without closing quotes&lt;U+000A&gt;'</span>
<span class=err>the input is invalid JSON</span>
</code></pre></div> </details> <details class=example> <summary>Effect of <code>ignore_comments</code> parameter</summary> <p>The example below demonstrates the effect of the <code>ignore_comments</code> parameter in the <code>parse()</code> function.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
<span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;nlohmann/json.hpp&gt;</span>
@@ -340,13 +340,13 @@
<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=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=sa>R</span><span class=s>&quot;</span><span class=dl>(</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>s</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> {</span>
<span class=s> // update in 2006: removed Pluto</span>
<span class=s> &quot;planets&quot;: [&quot;Mercury&quot;, &quot;Venus&quot;, &quot;Earth&quot;, &quot;Mars&quot;,</span>
<span class=s> &quot;Jupiter&quot;, &quot;Uranus&quot;, &quot;Neptune&quot; /*, &quot;Pluto&quot; */]</span>
<span class=s> "planets": ["Mercury", "Venus", "Earth", "Mars",</span>
<span class=s> "Jupiter", "Uranus", "Neptune" /*, "Pluto" */]</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=k>try</span>
<span class=w> </span><span class=p>{</span>
@@ -361,18 +361,18 @@
<span class=w> </span><span class=cm>/* callback */</span><span class=w> </span><span class=nb>nullptr</span><span class=p>,</span>
<span class=w> </span><span class=cm>/* allow exceptions */</span><span class=w> </span><span class=nb>true</span><span class=p>,</span>
<span class=w> </span><span class=cm>/* ignore_comments */</span><span class=w> </span><span class=nb>true</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>dump</span><span class=p>(</span><span class=mi>2</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>dump</span><span class=p>(</span><span class=mi>2</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</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>[json.exception.parse_error.101] parse error at line 3, column 9: syntax error while parsing object key - invalid literal; last read: &#39;&lt;U+000A&gt; {&lt;U+000A&gt; /&#39;; expected string literal
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code>[json.exception.parse_error.101] parse error at line 3, column 9: syntax error while parsing object key - invalid literal; last read: '&lt;U+000A&gt; {&lt;U+000A&gt; /'; expected string literal
{
&quot;planets&quot;: [
&quot;Mercury&quot;,
&quot;Venus&quot;,
&quot;Earth&quot;,
&quot;Mars&quot;,
&quot;Jupiter&quot;,
&quot;Uranus&quot;,
&quot;Neptune&quot;
"planets": [
"Mercury",
"Venus",
"Earth",
"Mars",
"Jupiter",
"Uranus",
"Neptune"
]
}
</code></pre></div> </details> <details class=example> <summary>Effect of <code>ignore_trailing_commas</code> parameter</summary> <p>The example below demonstrates the effect of the <code>ignore_trailing_commas</code> parameter in the <code>parse()</code> function.</p> <div class=highlight><pre><span></span><code><span class=cp>#include</span><span class=w> </span><span class=cpf>&lt;iostream&gt;</span>
@@ -382,19 +382,19 @@
<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=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=sa>R</span><span class=s>&quot;</span><span class=dl>(</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>string</span><span class=w> </span><span class=n>s</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> {</span>
<span class=s> &quot;planets&quot;: [</span>
<span class=s> &quot;Mercury&quot;,</span>
<span class=s> &quot;Venus&quot;,</span>
<span class=s> &quot;Earth&quot;,</span>
<span class=s> &quot;Mars&quot;,</span>
<span class=s> &quot;Jupiter&quot;,</span>
<span class=s> &quot;Uranus&quot;,</span>
<span class=s> &quot;Neptune&quot;,</span>
<span class=s> "planets": [</span>
<span class=s> "Mercury",</span>
<span class=s> "Venus",</span>
<span class=s> "Earth",</span>
<span class=s> "Mars",</span>
<span class=s> "Jupiter",</span>
<span class=s> "Uranus",</span>
<span class=s> "Neptune",</span>
<span class=s> ]</span>
<span class=s> }</span>
<span class=s> </span><span class=dl>)</span><span class=s>&quot;</span><span class=p>;</span>
<span class=s> </span><span class=dl>)</span><span class=s>"</span><span class=p>;</span>
<span class=w> </span><span class=k>try</span>
<span class=w> </span><span class=p>{</span>
@@ -410,18 +410,18 @@
<span class=w> </span><span class=cm>/* allow exceptions */</span><span class=w> </span><span class=nb>true</span><span class=p>,</span>
<span class=w> </span><span class=cm>/* ignore_comments */</span><span class=w> </span><span class=nb>false</span><span class=p>,</span>
<span class=w> </span><span class=cm>/* ignore_trailing_commas */</span><span class=w> </span><span class=nb>true</span><span class=p>);</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>dump</span><span class=p>(</span><span class=mi>2</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=sc>&#39;\n&#39;</span><span class=p>;</span>
<span class=w> </span><span class=n>std</span><span class=o>::</span><span class=n>cout</span><span class=w> </span><span class=o>&lt;&lt;</span><span class=w> </span><span class=n>j</span><span class=p>.</span><span class=n>dump</span><span class=p>(</span><span class=mi>2</span><span class=p>)</span><span class=w> </span><span class=o>&lt;&lt;</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>[json.exception.parse_error.101] parse error at line 11, column 9: syntax error while parsing value - unexpected &#39;]&#39;; expected &#39;[&#39;, &#39;{&#39;, or a literal
</code></pre></div> <p>Output:</p> <div class=highlight><pre><span></span><code>[json.exception.parse_error.101] parse error at line 11, column 9: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal
{
&quot;planets&quot;: [
&quot;Mercury&quot;,
&quot;Venus&quot;,
&quot;Earth&quot;,
&quot;Mars&quot;,
&quot;Jupiter&quot;,
&quot;Uranus&quot;,
&quot;Neptune&quot;
"planets": [
"Mercury",
"Venus",
"Earth",
"Mars",
"Jupiter",
"Uranus",
"Neptune"
]
}
</code></pre></div> </details> <h2 id=see-also>See also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../accept/ >accept</a> - check if the input is valid <abbr title="JavaScript Object Notation">JSON</abbr></li> <li><a href=../sax_parse/ >sax_parse</a> - parse input using the <abbr title="Simple API for XML">SAX</abbr> interface</li> <li><a href=../../operator_gtgt/ >operator&gt;&gt;</a> - deserialize from stream</li> </ul> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">&para;</a></h2> <ul> <li>Added in version 1.0.0.</li> <li>Overload for contiguous containers (1) added in version 2.0.3.</li> <li>Ignoring comments via <code>ignore_comments</code> added in version 3.9.0.</li> <li>Changed <a href=../../../features/assertions/ >runtime assertion</a> in case of <code>FILE*</code> null pointers to exception in version 3.12.0.</li> <li>Added <code>ignore_trailing_commas</code> in version 3.13.0.</li> <li>Extended container support (1) to include types with lvalue-only <abbr title="Argument-dependent lookup">ADL</abbr> <code>begin</code>/<code>end</code> (matching <code>std::begin</code>/<code>std::end</code> semantics) in version 3.13.0.</li> <li>Extended overload (2) to accept heterogeneous iterator+sentinel pairs (C++20 ranges support) in version 3.13.0.</li> </ul> <div class="admonition warning"> <p class=admonition-title>Deprecation</p> <p>Overload (2) replaces calls to <code>parse</code> with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like <code class=highlight><span class=n>parse</span><span class=p>({</span><span class=n>ptr</span><span class=p>,</span><span class=w> </span><span class=n>ptr</span><span class=o>+</span><span class=n>len</span><span class=p>},</span><span class=w> </span><span class=p>...);</span></code> with <code class=highlight><span class=n>parse</span><span class=p>(</span><span class=n>ptr</span><span class=p>,</span><span class=w> </span><span class=n>ptr</span><span class=o>+</span><span class=n>len</span><span class=p>,</span><span class=w> </span><span class=p>...);</span></code>.</p> <p>You should be warned by your compiler with a <code>-Wdeprecated-declarations</code> warning if you are using a deprecated function.</p> </div> <!-- 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="August 7, 2026 17:29:58 UTC">August 7, 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> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2013-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-1Line truncated
</code></pre></div> </details> <h2 id=see-also>See also<a class=headerlink href=#see-also title="Permanent link">&para;</a></h2> <ul> <li><a href=../accept/ >accept</a> - check if the input is valid <abbr title="JavaScript Object Notation">JSON</abbr></li> <li><a href=../sax_parse/ >sax_parse</a> - parse input using the <abbr title="Simple API for XML">SAX</abbr> interface</li> <li><a href=../../operator_gtgt/ >operator&gt;&gt;</a> - deserialize from stream</li> </ul> <h2 id=version-history>Version history<a class=headerlink href=#version-history title="Permanent link">&para;</a></h2> <ul> <li>Added in version 1.0.0.</li> <li>Overload for contiguous containers (1) added in version 2.0.3.</li> <li>Ignoring comments via <code>ignore_comments</code> added in version 3.9.0.</li> <li>Changed <a href=../../../features/assertions/ >runtime assertion</a> in case of <code>FILE*</code> null pointers to exception in version 3.12.0.</li> <li>Added <code>ignore_trailing_commas</code> in version 3.13.0.</li> <li>Extended container support (1) to include types with lvalue-only <abbr title="Argument-dependent lookup">ADL</abbr> <code>begin</code>/<code>end</code> (matching <code>std::begin</code>/<code>std::end</code> semantics) in version 3.13.0.</li> <li>Extended overload (2) to accept heterogeneous iterator+sentinel pairs (C++20 ranges support) in version 3.13.0.</li> </ul> <div class="admonition warning"> <p class=admonition-title>Deprecation</p> <p>Overload (2) replaces calls to <code>parse</code> with a pair of iterators as their first parameter which has been deprecated in version 3.8.0. This overload will be removed in version 4.0.0. Please replace all calls like <code class=highlight><span class=n>parse</span><span class=p>({</span><span class=n>ptr</span><span class=p>,</span><span class=w> </span><span class=n>ptr</span><span class=o>+</span><span class=n>len</span><span class=p>},</span><span class=w> </span><span class=p>...);</span></code> with <code class=highlight><span class=n>parse</span><span class=p>(</span><span class=n>ptr</span><span class=p>,</span><span class=w> </span><span class=n>ptr</span><span class=o>+</span><span class=n>len</span><span class=p>,</span><span class=w> </span><span class=p>...);</span></code>.</p> <p>You should be warned by your compiler with a <code>-Wdeprecated-declarations</code> warning if you are using a deprecated function.</p> </div> <!-- 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="August 19, 2026 18:19:47 UTC">August 19, 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> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2013-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 0Line truncated