<h1>flask.json package<aclass="headerlink"href="#flask-json-package"title="Link to this heading"></a></h1>
<sectionid="submodules">
<h2>Submodules<aclass="headerlink"href="#submodules"title="Link to this heading"></a></h2>
</section>
<sectionid="module-flask.json.provider">
<spanid="flask-json-provider-module"></span><h2>flask.json.provider module<aclass="headerlink"href="#module-flask.json.provider"title="Link to this heading"></a></h2>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.provider.</span></span><spanclass="sig-name descname"><spanclass="pre">DefaultJSONProvider</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">app</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">App</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider"title="Link to this definition"></a></dt>
library. Serializes the following additional data types:</p>
<ulclass="simple">
<li><p><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">datetime.datetime</span></code> and <codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">datetime.date</span></code> are
serialized to <spanclass="target"id="index-0"></span><aclass="rfc reference external"href="https://datatracker.ietf.org/doc/html/rfc822.html"><strong>RFC 822</strong></a> strings. This is the same as the HTTP
date format.</p></li>
<li><p><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">uuid.UUID</span></code> is serialized to a string.</p></li>
<li><p><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">dataclasses.dataclass</span></code> is passed to
<li><p><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Markup</span></code> (or any object with a <codeclass="docutils literal notranslate"><spanclass="pre">__html__</span></code>
method) will call the <codeclass="docutils literal notranslate"><spanclass="pre">__html__</span></code> method to get a string.</p></li>
<spanclass="sig-name descname"><spanclass="pre">compact</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">bool</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">None</span></em><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.compact"title="Link to this definition"></a></dt>
<dd><p>If <codeclass="docutils literal notranslate"><spanclass="pre">True</span></code>, or <codeclass="docutils literal notranslate"><spanclass="pre">None</span></code> out of debug mode, the <aclass="reference internal"href="#flask.json.provider.DefaultJSONProvider.response"title="flask.json.provider.DefaultJSONProvider.response"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">response()</span></code></a>
output will not add indentation, newlines, or spaces. If <codeclass="docutils literal notranslate"><spanclass="pre">False</span></code>,
or <codeclass="docutils literal notranslate"><spanclass="pre">None</span></code> in debug mode, it will use a non-compact representation.</p>
<emclass="property"><spanclass="pre">static</span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">default</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">o</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.default"title="Link to this definition"></a></dt>
<dd><p>Apply this function to any object that <codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">json.dumps()</span></code> does
not know how to serialize. It should return a valid JSON type or
raise a <codeclass="docutils literal notranslate"><spanclass="pre">TypeError</span></code>.</p>
<spanclass="sig-name descname"><spanclass="pre">dumps</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.dumps"title="Link to this definition"></a></dt>
<dd><p>Serialize data as JSON to a string.</p>
<p>Keyword arguments are passed to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">json.dumps()</span></code>. Sets some
parameter defaults from the <aclass="reference internal"href="#flask.json.provider.DefaultJSONProvider.default"title="flask.json.provider.DefaultJSONProvider.default"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">default</span></code></a>,
<spanclass="sig-name descname"><spanclass="pre">ensure_ascii</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">True</span></em><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.ensure_ascii"title="Link to this definition"></a></dt>
<dd><p>Replace non-ASCII characters with escape sequences. This may be
more compatible with some clients, but can be disabled for better
<spanclass="sig-name descname"><spanclass="pre">loads</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">s</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">bytes</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.loads"title="Link to this definition"></a></dt>
<dd><p>Deserialize data as JSON from a string or bytes.</p>
<spanclass="sig-name descname"><spanclass="pre">mimetype</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'application/json'</span></em><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.mimetype"title="Link to this definition"></a></dt>
<dd><p>The mimetype set in <aclass="reference internal"href="#flask.json.provider.DefaultJSONProvider.response"title="flask.json.provider.DefaultJSONProvider.response"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">response()</span></code></a>.</p>
<spanclass="sig-name descname"><spanclass="pre">response</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">*</span></span><spanclass="n"><spanclass="pre">args</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><aclass="reference internal"href="flask.html#flask.wrappers.Response"title="flask.wrappers.Response"><spanclass="pre">Response</span></a></span></span><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.response"title="Link to this definition"></a></dt>
<dd><p>Serialize the given arguments as JSON, and return a
<codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Response</span></code> object with it. The response mimetype
will be “application/json” and can be changed with
<p>If <aclass="reference internal"href="#flask.json.provider.DefaultJSONProvider.compact"title="flask.json.provider.DefaultJSONProvider.compact"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">compact</span></code></a> is <codeclass="docutils literal notranslate"><spanclass="pre">False</span></code> or debug mode is enabled, the
output will be formatted to be easier to read.</p>
<p>Either positional or keyword arguments can be given, not both.
If no arguments are given, <codeclass="docutils literal notranslate"><spanclass="pre">None</span></code> is serialized.</p>
<spanclass="sig-name descname"><spanclass="pre">sort_keys</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">True</span></em><aclass="headerlink"href="#flask.json.provider.DefaultJSONProvider.sort_keys"title="Link to this definition"></a></dt>
<dd><p>Sort the keys in any serialized dicts. This may be useful for
some caching situations, but can be disabled for better performance.
When enabled, keys must all be strings, they are not converted
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.provider.</span></span><spanclass="sig-name descname"><spanclass="pre">JSONProvider</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">app</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">App</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.provider.JSONProvider"title="Link to this definition"></a></dt>
<p>A standard set of JSON operations for an application. Subclasses
of this can be used to customize JSON behavior or use different
JSON libraries.</p>
<p>To implement a provider for a specific library, subclass this base
class and implement at least <aclass="reference internal"href="#flask.json.provider.JSONProvider.dumps"title="flask.json.provider.JSONProvider.dumps"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">dumps()</span></code></a> and <aclass="reference internal"href="#flask.json.provider.JSONProvider.loads"title="flask.json.provider.JSONProvider.loads"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">loads()</span></code></a>. All
other methods have default implementations.</p>
<p>To use a different provider, either subclass <codeclass="docutils literal notranslate"><spanclass="pre">Flask</span></code> and set
<codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">json_provider_class</span></code> to a provider class, or set
<codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">app.json</span></code> to an instance of the class.</p>
<spanclass="sig-name descname"><spanclass="pre">dump</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">fp</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">IO</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#flask.json.provider.JSONProvider.dump"title="Link to this definition"></a></dt>
<dd><p>Serialize data as JSON and write to a file.</p>
<spanclass="sig-name descname"><spanclass="pre">dumps</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#flask.json.provider.JSONProvider.dumps"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">load</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">fp</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">IO</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.provider.JSONProvider.load"title="Link to this definition"></a></dt>
<dd><p>Deserialize data as JSON read from a file.</p>
<spanclass="sig-name descname"><spanclass="pre">loads</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">s</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">bytes</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.provider.JSONProvider.loads"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">response</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">*</span></span><spanclass="n"><spanclass="pre">args</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><aclass="reference internal"href="flask.html#flask.wrappers.Response"title="flask.wrappers.Response"><spanclass="pre">Response</span></a></span></span><aclass="headerlink"href="#flask.json.provider.JSONProvider.response"title="Link to this definition"></a></dt>
<dd><p>Serialize the given arguments as JSON, and return a
<codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Response</span></code> object with the <codeclass="docutils literal notranslate"><spanclass="pre">application/json</span></code>
mimetype.</p>
<p>The <aclass="reference internal"href="#flask.json.jsonify"title="flask.json.jsonify"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">jsonify()</span></code></a> function calls this method for
the current application.</p>
<p>Either positional or keyword arguments can be given, not both.
If no arguments are given, <codeclass="docutils literal notranslate"><spanclass="pre">None</span></code> is serialized.</p>
<li><p><strong>args</strong>– A single value to serialize, or multiple values to
treat as a list to serialize.</p></li>
<li><p><strong>kwargs</strong>– Treat as a dict to serialize.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<sectionid="module-flask.json.tag">
<spanid="flask-json-tag-module"></span><h2>flask.json.tag module<aclass="headerlink"href="#module-flask.json.tag"title="Link to this heading"></a></h2>
<sectionid="tagged-json">
<h3>Tagged JSON<aclass="headerlink"href="#tagged-json"title="Link to this heading"></a></h3>
<p>A compact representation for lossless serialization of non-standard JSON
types. <aclass="reference internal"href="flask.html#flask.sessions.SecureCookieSessionInterface"title="flask.sessions.SecureCookieSessionInterface"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">SecureCookieSessionInterface</span></code></a> uses this
to serialize the session data, but it may be useful in other places. It
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TaggedJSONSerializer</span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer"title="Link to this definition"></a></dt>
<dd><p>Serializer that uses a tag system to compactly represent objects that
are not JSON types. Passed as the intermediate serializer to
<spanclass="sig-name descname"><spanclass="pre">default_tags</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">[<class</span><spanclass="pre">'flask.json.tag.TagDict'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.PassDict'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagTuple'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.PassList'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagBytes'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagMarkup'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagUUID'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagDateTime'>]</span></em><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.default_tags"title="Link to this definition"></a></dt>
<dd><p>Tag classes to bind when creating the serializer. Other tags can be
added later using <aclass="reference internal"href="#id10"title="flask.json.tag.TaggedJSONSerializer.register"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">register()</span></code></a>.</p>
<spanclass="sig-name descname"><spanclass="pre">dumps</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.dumps"title="Link to this definition"></a></dt>
<dd><p>Tag the value and dump it to a compact JSON string.</p>
<spanclass="sig-name descname"><spanclass="pre">loads</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.loads"title="Link to this definition"></a></dt>
<dd><p>Load data from a JSON string and deserialized any tagged objects.</p>
<spanclass="sig-name descname"><spanclass="pre">register</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">tag_class</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">type</span><spanclass="p"><spanclass="pre">[</span></span><aclass="reference internal"href="#id0"title="flask.json.tag.JSONTag"><spanclass="pre">JSONTag</span></a><spanclass="p"><spanclass="pre">]</span></span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">force</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">bool</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">False</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">index</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.register"title="Link to this definition"></a></dt>
<dd><p>Register a new tag with this serializer.</p>
<ddclass="field-even"><p><strong>KeyError</strong>– if the tag key is already registered and <codeclass="docutils literal notranslate"><spanclass="pre">force</span></code> is
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.tag"title="Link to this definition"></a></dt>
<dd><p>Convert a value to a tagged representation if necessary.</p>
<spanclass="sig-name descname"><spanclass="pre">untag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.untag"title="Link to this definition"></a></dt>
<dd><p>Convert a tagged representation back to the original type.</p>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">JSONTag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.JSONTag"title="Link to this definition"></a></dt>
<dd><p>Base class for defining type tags for <aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">TaggedJSONSerializer</span></code></a>.</p>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.JSONTag.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">''</span></em><aclass="headerlink"href="#flask.json.tag.JSONTag.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#flask.json.tag.JSONTag.tag"title="Link to this definition"></a></dt>
<dd><p>Convert the value to a valid JSON type and add the tag structure
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.JSONTag.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.JSONTag.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
will already be removed.</p>
</dd></dl>
</dd></dl>
<p>Let’s see an example that adds support for
<codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">OrderedDict</span></code>. Dicts don’t have an order in JSON, so
to handle this we will dump the items as a list of <codeclass="docutils literal notranslate"><spanclass="pre">[key,</span><spanclass="pre">value]</span></code>
pairs. Subclass <aclass="reference internal"href="#id0"title="flask.json.tag.JSONTag"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">JSONTag</span></code></a> and give it the new key <codeclass="docutils literal notranslate"><spanclass="pre">'</span><spanclass="pre">od'</span></code> to
identify the type. The session serializer processes dicts first, so
insert the new tag at the front of the order since <codeclass="docutils literal notranslate"><spanclass="pre">OrderedDict</span></code> must
be processed before <codeclass="docutils literal notranslate"><spanclass="pre">dict</span></code>.</p>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">JSONTag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#id0"title="Link to this definition"></a></dt>
<p>Base class for defining type tags for <aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">TaggedJSONSerializer</span></code></a>.</p>
<dlclass="py method">
<dtclass="sig sig-object py"id="id1">
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#id1"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
</dd></dl>
<dlclass="py attribute">
<dtclass="sig sig-object py"id="id2">
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">''</span></em><aclass="headerlink"href="#id2"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">serializer</span></span><aclass="headerlink"href="#flask.json.tag.JSONTag.serializer"title="Link to this definition"></a></dt>
<dd></dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id3">
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#id3"title="Link to this definition"></a></dt>
<dd><p>Convert the value to a valid JSON type and add the tag structure
around it.</p>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id4">
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#id4"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
The tag will be added later.</p>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id5">
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#id5"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">PassDict</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.PassDict"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.PassDict.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.PassDict.tag"title="Link to this definition"></a></dt>
<dd><p>Convert the value to a valid JSON type and add the tag structure
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.PassDict.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">PassList</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.PassList"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.PassList.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.PassList.tag"title="Link to this definition"></a></dt>
<dd><p>Convert the value to a valid JSON type and add the tag structure
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.PassList.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagBytes</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagBytes"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagBytes.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">b'</span></em><aclass="headerlink"href="#flask.json.tag.TagBytes.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagBytes.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagBytes.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagDateTime</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagDateTime"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDateTime.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">d'</span></em><aclass="headerlink"href="#flask.json.tag.TagDateTime.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDateTime.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDateTime.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagDict</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagDict"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDict.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">di'</span></em><aclass="headerlink"href="#flask.json.tag.TagDict.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDict.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagDict.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagMarkup</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagMarkup"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagMarkup.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">m'</span></em><aclass="headerlink"href="#flask.json.tag.TagMarkup.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagMarkup.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagMarkup.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagTuple</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagTuple"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagTuple.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">t'</span></em><aclass="headerlink"href="#flask.json.tag.TagTuple.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagTuple.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagTuple.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TagUUID</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">serializer</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><aclass="reference internal"href="#id6"title="flask.json.tag.TaggedJSONSerializer"><spanclass="pre">TaggedJSONSerializer</span></a></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#flask.json.tag.TagUUID"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">check</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#flask.json.tag.TagUUID.check"title="Link to this definition"></a></dt>
<dd><p>Check if the given value should be tagged by this tag.</p>
<spanclass="sig-name descname"><spanclass="pre">key</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">'</span><spanclass="pre">u'</span></em><aclass="headerlink"href="#flask.json.tag.TagUUID.key"title="Link to this definition"></a></dt>
<dd><p>The tag to mark the serialized object with. If empty, this tag is
only used as an intermediate step during tagging.</p>
<spanclass="sig-name descname"><spanclass="pre">to_json</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagUUID.to_json"title="Link to this definition"></a></dt>
<dd><p>Convert the Python object to an object that is a valid JSON type.
<spanclass="sig-name descname"><spanclass="pre">to_python</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.tag.TagUUID.to_python"title="Link to this definition"></a></dt>
<dd><p>Convert the JSON representation back to the correct type. The tag
will already be removed.</p>
</dd></dl>
</dd></dl>
<dlclass="py class">
<dtclass="sig sig-object py"id="id6">
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">flask.json.tag.</span></span><spanclass="sig-name descname"><spanclass="pre">TaggedJSONSerializer</span></span><aclass="headerlink"href="#id6"title="Link to this definition"></a></dt>
<spanclass="sig-name descname"><spanclass="pre">default_tags</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">[<class</span><spanclass="pre">'flask.json.tag.TagDict'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.PassDict'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagTuple'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.PassList'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagBytes'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagMarkup'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagUUID'>,</span><spanclass="pre"><class</span><spanclass="pre">'flask.json.tag.TagDateTime'>]</span></em><aclass="headerlink"href="#id7"title="Link to this definition"></a></dt>
<dd><p>Tag classes to bind when creating the serializer. Other tags can be
added later using <aclass="reference internal"href="#id10"title="flask.json.tag.TaggedJSONSerializer.register"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">register()</span></code></a>.</p>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id8">
<spanclass="sig-name descname"><spanclass="pre">dumps</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#id8"title="Link to this definition"></a></dt>
<dd><p>Tag the value and dump it to a compact JSON string.</p>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id9">
<spanclass="sig-name descname"><spanclass="pre">loads</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#id9"title="Link to this definition"></a></dt>
<dd><p>Load data from a JSON string and deserialized any tagged objects.</p>
<spanclass="sig-name descname"><spanclass="pre">order</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">list</span><spanclass="p"><spanclass="pre">[</span></span><aclass="reference internal"href="#id0"title="flask.json.tag.JSONTag"><spanclass="pre">JSONTag</span></a><spanclass="p"><spanclass="pre">]</span></span></em><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.order"title="Link to this definition"></a></dt>
<dd></dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id10">
<spanclass="sig-name descname"><spanclass="pre">register</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">tag_class</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">type</span><spanclass="p"><spanclass="pre">[</span></span><aclass="reference internal"href="#id0"title="flask.json.tag.JSONTag"><spanclass="pre">JSONTag</span></a><spanclass="p"><spanclass="pre">]</span></span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">force</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">bool</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">False</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">index</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#id10"title="Link to this definition"></a></dt>
<dd><p>Register a new tag with this serializer.</p>
<ddclass="field-even"><p><strong>KeyError</strong>– if the tag key is already registered and <codeclass="docutils literal notranslate"><spanclass="pre">force</span></code> is
not true.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id11">
<spanclass="sig-name descname"><spanclass="pre">tag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#id11"title="Link to this definition"></a></dt>
<dd><p>Convert a value to a tagged representation if necessary.</p>
<spanclass="sig-name descname"><spanclass="pre">tags</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><aclass="reference internal"href="#id0"title="flask.json.tag.JSONTag"><spanclass="pre">JSONTag</span></a><spanclass="p"><spanclass="pre">]</span></span></em><aclass="headerlink"href="#flask.json.tag.TaggedJSONSerializer.tags"title="Link to this definition"></a></dt>
<dd></dd></dl>
<dlclass="py method">
<dtclass="sig sig-object py"id="id12">
<spanclass="sig-name descname"><spanclass="pre">untag</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">value</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#id12"title="Link to this definition"></a></dt>
<dd><p>Convert a tagged representation back to the original type.</p>
</dd></dl>
</dd></dl>
</section>
<sectionid="module-flask.json">
<spanid="module-contents"></span><h2>Module contents<aclass="headerlink"href="#module-flask.json"title="Link to this heading"></a></h2>
<dlclass="py function">
<dtclass="sig sig-object py"id="flask.json.dump">
<spanclass="sig-prename descclassname"><spanclass="pre">flask.json.</span></span><spanclass="sig-name descname"><spanclass="pre">dump</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">fp</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">IO</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">]</span></span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">None</span></span></span><aclass="headerlink"href="#flask.json.dump"title="Link to this definition"></a></dt>
<dd><p>Serialize data as JSON and write to a file.</p>
<p>If <codeclass="xref py py-data docutils literal notranslate"><spanclass="pre">current_app</span></code> is available, it will use its
<li><p><strong>obj</strong>– The data to serialize.</p></li>
<li><p><strong>fp</strong>– A file opened for writing text. Should use the UTF-8
encoding to be valid JSON.</p></li>
<li><p><strong>kwargs</strong>– Arguments passed to the <codeclass="docutils literal notranslate"><spanclass="pre">dump</span></code> implementation.</p></li>
</ul>
</dd>
</dl>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.3: </span>The <codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> parameter was removed.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>Calls <codeclass="docutils literal notranslate"><spanclass="pre">current_app.json.dump</span></code>, allowing an app to override
the behavior.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0: </span>Writing to a binary file, and the <codeclass="docutils literal notranslate"><spanclass="pre">encoding</span></code> argument, will be
<spanclass="sig-prename descclassname"><spanclass="pre">flask.json.</span></span><spanclass="sig-name descname"><spanclass="pre">dumps</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">obj</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">str</span></span></span><aclass="headerlink"href="#flask.json.dumps"title="Link to this definition"></a></dt>
<dd><p>Serialize data as JSON.</p>
<p>If <codeclass="xref py py-data docutils literal notranslate"><spanclass="pre">current_app</span></code> is available, it will use its
<li><p><strong>obj</strong>– The data to serialize.</p></li>
<li><p><strong>kwargs</strong>– Arguments passed to the <codeclass="docutils literal notranslate"><spanclass="pre">dumps</span></code> implementation.</p></li>
</ul>
</dd>
</dl>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.3: </span>The <codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> parameter was removed.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>Calls <codeclass="docutils literal notranslate"><spanclass="pre">current_app.json.dumps</span></code>, allowing an app to override
the behavior.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0.2: </span><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">decimal.Decimal</span></code> is supported by converting to a string.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0: </span><codeclass="docutils literal notranslate"><spanclass="pre">encoding</span></code> will be removed in Flask 2.1.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 1.0.3: </span><codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> can be passed directly, rather than requiring an app
<spanclass="sig-prename descclassname"><spanclass="pre">flask.json.</span></span><spanclass="sig-name descname"><spanclass="pre">jsonify</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">*</span></span><spanclass="n"><spanclass="pre">args</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">t.Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><aclass="reference internal"href="flask.html#flask.wrappers.Response"title="flask.wrappers.Response"><spanclass="pre">Response</span></a></span></span><aclass="headerlink"href="#flask.json.jsonify"title="Link to this definition"></a></dt>
<dd><p>Serialize the given arguments as JSON, and return a
<codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Response</span></code> object with the <codeclass="docutils literal notranslate"><spanclass="pre">application/json</span></code>
mimetype. A dict or list returned from a view will be converted to a
JSON response automatically without needing to call this.</p>
<p>This requires an active request or application context, and calls
<li><p><strong>args</strong>– A single value to serialize, or multiple values to
treat as a list to serialize.</p></li>
<li><p><strong>kwargs</strong>– Treat as a dict to serialize.</p></li>
</ul>
</dd>
</dl>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>Calls <codeclass="docutils literal notranslate"><spanclass="pre">current_app.json.response</span></code>, allowing an app to override
the behavior.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0.2: </span><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">decimal.Decimal</span></code> is supported by converting to a string.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 0.11: </span>Added support for serializing top-level arrays. This was a
security risk in ancient browsers. See <spanclass="xref std std-ref">security-json</span>.</p>
</div>
<divclass="versionadded">
<p><spanclass="versionmodified added">Added in version 0.2.</span></p>
</div>
</dd></dl>
<dlclass="py function">
<dtclass="sig sig-object py"id="flask.json.load">
<spanclass="sig-prename descclassname"><spanclass="pre">flask.json.</span></span><spanclass="sig-name descname"><spanclass="pre">load</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">fp</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">IO</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.load"title="Link to this definition"></a></dt>
<dd><p>Deserialize data as JSON read from a file.</p>
<p>If <codeclass="xref py py-data docutils literal notranslate"><spanclass="pre">current_app</span></code> is available, it will use its
<li><p><strong>fp</strong>– A file opened for reading text or UTF-8 bytes.</p></li>
<li><p><strong>kwargs</strong>– Arguments passed to the <codeclass="docutils literal notranslate"><spanclass="pre">load</span></code> implementation.</p></li>
</ul>
</dd>
</dl>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.3: </span>The <codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> parameter was removed.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>Calls <codeclass="docutils literal notranslate"><spanclass="pre">current_app.json.load</span></code>, allowing an app to override
the behavior.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>The <codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> parameter will be removed in Flask 2.3.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0: </span><codeclass="docutils literal notranslate"><spanclass="pre">encoding</span></code> will be removed in Flask 2.1. The file must be text
<spanclass="sig-prename descclassname"><spanclass="pre">flask.json.</span></span><spanclass="sig-name descname"><spanclass="pre">loads</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">s</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">str</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">bytes</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">Any</span></span></span><aclass="headerlink"href="#flask.json.loads"title="Link to this definition"></a></dt>
<dd><p>Deserialize data as JSON.</p>
<p>If <codeclass="xref py py-data docutils literal notranslate"><spanclass="pre">current_app</span></code> is available, it will use its
<li><p><strong>s</strong>– Text or UTF-8 bytes.</p></li>
<li><p><strong>kwargs</strong>– Arguments passed to the <codeclass="docutils literal notranslate"><spanclass="pre">loads</span></code> implementation.</p></li>
</ul>
</dd>
</dl>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.3: </span>The <codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> parameter was removed.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.2: </span>Calls <codeclass="docutils literal notranslate"><spanclass="pre">current_app.json.loads</span></code>, allowing an app to override
the behavior.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 2.0: </span><codeclass="docutils literal notranslate"><spanclass="pre">encoding</span></code> will be removed in Flask 2.1. The data must be a
string or UTF-8 bytes.</p>
</div>
<divclass="versionchanged">
<p><spanclass="versionmodified changed">Changed in version 1.0.3: </span><codeclass="docutils literal notranslate"><spanclass="pre">app</span></code> can be passed directly, rather than requiring an app