linol/yojson/Yojson/index.html
2025-04-17 21:00:57 +00:00

51 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Yojson (yojson.Yojson)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.0.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">Index</a> &#x00BB; <a href="../index.html">yojson</a> &#x00BB; Yojson</nav><header class="odoc-preamble"><h1>Module <code><span>Yojson</span></code></h1><p>The Yojson library provides several types for representing JSON values, with different use cases.</p><ul><li>The <a href="#basic" title="basic">Basic</a> JSON type,</li><li>The <a href="#safe" title="safe">Safe</a> JSON type, a superset of JSON with safer support for integers,</li><li>The <a href="#raw" title="raw">Raw</a> JSON type, a superset of JSON, safer but less integrated with OCaml types.</li></ul><p>Each of these different types have their own module.</p></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#shared-types-and-functions">Shared types and functions</a></li><li><a href="#basic">Basic JSON tree type</a></li><li><a href="#safe">Multipurpose JSON tree type</a></li><li><a href="#json-tree-type-with-literal-int/float/string-leaves">JSON tree type with literal int/float/string leaves</a></li><li><a href="#raw">Supertype of all JSON tree types</a></li></ul></nav></div><div class="odoc-content"><h2 id="shared-types-and-functions"><a href="#shared-types-and-functions" class="anchor"></a>Shared types and functions</h2><div class="odoc-spec"><div class="spec value anchored" id="val-version"><a href="#val-version" class="anchor"></a><code><span><span class="keyword">val</span> version : string</span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Json_error"><a href="#exception-Json_error" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Json_error</span> <span class="keyword">of</span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-json_error"><a href="#val-json_error" class="anchor"></a><code><span><span class="keyword">val</span> json_error : <span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-lexer_state"><a href="#type-lexer_state" class="anchor"></a><code><span><span class="keyword">type</span> lexer_state</span><span> = </span><span>{</span></code><ol><li id="type-lexer_state.buf" class="def record field anchored"><a href="#type-lexer_state.buf" class="anchor"></a><code><span>buf : <a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a>;</span></code></li><li id="type-lexer_state.lnum" class="def record field anchored"><a href="#type-lexer_state.lnum" class="anchor"></a><code><span><span class="keyword">mutable</span> lnum : int;</span></code></li><li id="type-lexer_state.bol" class="def record field anchored"><a href="#type-lexer_state.bol" class="anchor"></a><code><span><span class="keyword">mutable</span> bol : int;</span></code></li><li id="type-lexer_state.fname" class="def record field anchored"><a href="#type-lexer_state.fname" class="anchor"></a><code><span><span class="keyword">mutable</span> fname : <span>string option</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Lexer_state"><a href="#module-Lexer_state" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Lexer_state/index.html">Lexer_state</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-init_lexer"><a href="#val-init_lexer" class="anchor"></a><code><span><span class="keyword">val</span> init_lexer :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?fname</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?lnum</span>:int <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="#type-lexer_state">lexer_state</a></span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-End_of_array"><a href="#exception-End_of_array" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">End_of_array</span></span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-End_of_object"><a href="#exception-End_of_object" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">End_of_object</span></span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-End_of_tuple"><a href="#exception-End_of_tuple" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">End_of_tuple</span></span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-End_of_input"><a href="#exception-End_of_input" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">End_of_input</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span><span>[ </span></code><ol><li id="type-t.Assoc" class="def variant constructor anchored"><a href="#type-t.Assoc" class="anchor"></a><code><span>| </span><span>`Assoc <span class="keyword">of</span> <span><span>(string * <a href="#type-t">t</a>)</span> list</span></span></code></li><li id="type-t.Bool" class="def variant constructor anchored"><a href="#type-t.Bool" class="anchor"></a><code><span>| </span><span>`Bool <span class="keyword">of</span> bool</span></code></li><li id="type-t.Float" class="def variant constructor anchored"><a href="#type-t.Float" class="anchor"></a><code><span>| </span><span>`Float <span class="keyword">of</span> float</span></code></li><li id="type-t.Floatlit" class="def variant constructor anchored"><a href="#type-t.Floatlit" class="anchor"></a><code><span>| </span><span>`Floatlit <span class="keyword">of</span> string</span></code></li><li id="type-t.Int" class="def variant constructor anchored"><a href="#type-t.Int" class="anchor"></a><code><span>| </span><span>`Int <span class="keyword">of</span> int</span></code></li><li id="type-t.Intlit" class="def variant constructor anchored"><a href="#type-t.Intlit" class="anchor"></a><code><span>| </span><span>`Intlit <span class="keyword">of</span> string</span></code></li><li id="type-t.List" class="def variant constructor anchored"><a href="#type-t.List" class="anchor"></a><code><span>| </span><span>`List <span class="keyword">of</span> <span><a href="#type-t">t</a> list</span></span></code></li><li id="type-t.Null" class="def variant constructor anchored"><a href="#type-t.Null" class="anchor"></a><code><span>| </span><span>`Null</span></code></li><li id="type-t.String" class="def variant constructor anchored"><a href="#type-t.String" class="anchor"></a><code><span>| </span><span>`String <span class="keyword">of</span> string</span></code></li><li id="type-t.Stringlit" class="def variant constructor anchored"><a href="#type-t.Stringlit" class="anchor"></a><code><span>| </span><span>`Stringlit <span class="keyword">of</span> string</span></code></li><li id="type-t.Tuple" class="def variant constructor anchored"><a href="#type-t.Tuple" class="anchor"></a><code><span>| </span><span>`Tuple <span class="keyword">of</span> <span><a href="#type-t">t</a> list</span></span></code></li><li id="type-t.Variant" class="def variant constructor anchored"><a href="#type-t.Variant" class="anchor"></a><code><span>| </span><span>`Variant <span class="keyword">of</span> string * <span><a href="#type-t">t</a> option</span></span></code></li></ol><code><span> ]</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-show"><a href="#val-show" class="anchor"></a><code><span><span class="keyword">val</span> show : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_channel"><a href="#val-to_channel" class="anchor"></a><code><span><span class="keyword">val</span> to_channel :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../ocaml/Stdlib/index.html#type-out_channel">Stdlib.out_channel</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_output"><a href="#val-to_output" class="anchor"></a><code><span><span class="keyword">val</span> to_output :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span>&lt; output : <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> int.. &gt;</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_file"><a href="#val-to_file" class="anchor"></a><code><span><span class="keyword">val</span> to_file : <span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_buffer"><a href="#val-to_buffer" class="anchor"></a><code><span><span class="keyword">val</span> to_buffer : <span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-seq_to_string"><a href="#val-seq_to_string" class="anchor"></a><code><span><span class="keyword">val</span> seq_to_string :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="#type-t">t</a> <a href="../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">&#45;&gt;</span></span>
string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-seq_to_channel"><a href="#val-seq_to_channel" class="anchor"></a><code><span><span class="keyword">val</span> seq_to_channel :
<span><span class="optlabel">?buf</span>:<a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../ocaml/Stdlib/index.html#type-out_channel">Stdlib.out_channel</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="#type-t">t</a> <a href="../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-seq_to_file"><a href="#val-seq_to_file" class="anchor"></a><code><span><span class="keyword">val</span> seq_to_file :
<span><span class="optlabel">?len</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="#type-t">t</a> <a href="../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-seq_to_buffer"><a href="#val-seq_to_buffer" class="anchor"></a><code><span><span class="keyword">val</span> seq_to_buffer :
<span><span class="optlabel">?suf</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="#type-t">t</a> <a href="../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_t"><a href="#val-write_t" class="anchor"></a><code><span><span class="keyword">val</span> write_t : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sort"><a href="#val-sort" class="anchor"></a><code><span><span class="keyword">val</span> sort : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_null"><a href="#val-write_null" class="anchor"></a><code><span><span class="keyword">val</span> write_null : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_bool"><a href="#val-write_bool" class="anchor"></a><code><span><span class="keyword">val</span> write_bool : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>bool <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_int"><a href="#val-write_int" class="anchor"></a><code><span><span class="keyword">val</span> write_int : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_float"><a href="#val-write_float" class="anchor"></a><code><span><span class="keyword">val</span> write_float : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_std_float"><a href="#val-write_std_float" class="anchor"></a><code><span><span class="keyword">val</span> write_std_float : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_float_prec"><a href="#val-write_float_prec" class="anchor"></a><code><span><span class="keyword">val</span> write_float_prec : <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_std_float_prec"><a href="#val-write_std_float_prec" class="anchor"></a><code><span><span class="keyword">val</span> write_std_float_prec : <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_string"><a href="#val-write_string" class="anchor"></a><code><span><span class="keyword">val</span> write_string : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_intlit"><a href="#val-write_intlit" class="anchor"></a><code><span><span class="keyword">val</span> write_intlit : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_floatlit"><a href="#val-write_floatlit" class="anchor"></a><code><span><span class="keyword">val</span> write_floatlit : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_stringlit"><a href="#val-write_stringlit" class="anchor"></a><code><span><span class="keyword">val</span> write_stringlit : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_assoc"><a href="#val-write_assoc" class="anchor"></a><code><span><span class="keyword">val</span> write_assoc : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span><span>(string * <a href="#type-t">t</a>)</span> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_list"><a href="#val-write_list" class="anchor"></a><code><span><span class="keyword">val</span> write_list : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="#type-t">t</a> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_tuple"><a href="#val-write_tuple" class="anchor"></a><code><span><span class="keyword">val</span> write_tuple : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="#type-t">t</a> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_std_tuple"><a href="#val-write_std_tuple" class="anchor"></a><code><span><span class="keyword">val</span> write_std_tuple : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="#type-t">t</a> list</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_variant"><a href="#val-write_variant" class="anchor"></a><code><span><span class="keyword">val</span> write_variant : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span><span><a href="#type-t">t</a> option</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_std_variant"><a href="#val-write_std_variant" class="anchor"></a><code><span><span class="keyword">val</span> write_std_variant : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span><span><a href="#type-t">t</a> option</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_json"><a href="#val-write_json" class="anchor"></a><code><span><span class="keyword">val</span> write_json : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_std_json"><a href="#val-write_std_json" class="anchor"></a><code><span><span class="keyword">val</span> write_std_json : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pretty_print"><a href="#val-pretty_print" class="anchor"></a><code><span><span class="keyword">val</span> pretty_print : <span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pretty_to_string"><a href="#val-pretty_to_string" class="anchor"></a><code><span><span class="keyword">val</span> pretty_to_string : <span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pretty_to_channel"><a href="#val-pretty_to_channel" class="anchor"></a><code><span><span class="keyword">val</span> pretty_to_channel : <span><span class="optlabel">?std</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../ocaml/Stdlib/index.html#type-out_channel">Stdlib.out_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><h2 id="basic"><a href="#basic" class="anchor"></a>Basic JSON tree type</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Basic"><a href="#module-Basic" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Basic/index.html">Basic</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>This module supports standard JSON nodes only, i.e. no special syntax for variants or tuples as supported by <a href="Safe/index.html"><code>Yojson.Safe</code></a>. Arbitrary integers are not supported as they must all fit within the standard OCaml int type (31 or 63 bits depending on the platform).</p></div></div><h2 id="safe"><a href="#safe" class="anchor"></a>Multipurpose JSON tree type</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Safe"><a href="#module-Safe" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Safe/index.html">Safe</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>This module supports a specific syntax for variants and tuples in addition to the standard JSON nodes. Arbitrary integers are supported and represented as a decimal string using <code>`Intlit</code> when they cannot be represented using OCaml's int type (31 or 63 bits depending on the platform).</p></div></div><h2 id="json-tree-type-with-literal-int/float/string-leaves"><a href="#json-tree-type-with-literal-int/float/string-leaves" class="anchor"></a>JSON tree type with literal int/float/string leaves</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Raw"><a href="#module-Raw" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Raw/index.html">Raw</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Ints, floats and strings literals are systematically preserved using <code>`Intlit</code>, <code>`Floatlit</code> and <code>`Stringlit</code>. This module also supports the specific syntax for variants and tuples supported by <a href="Safe/index.html"><code>Yojson.Safe</code></a>.</p></div></div><h2 id="raw"><a href="#raw" class="anchor"></a>Supertype of all JSON tree types</h2></div></body></html>