<!DOCTYPE html>
<html>
<head>
<title>output_format</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */
/* Author: Nicolas Hery - http://nicolashery.com */
/* Version: b13fe65ca28d2e568c6ed5d7f06581183df8f2ff */
/* Source: https://github.com/nicolahery/markdownpad-github */

/* RESET
=============================================================================*/

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
}

/* BODY
=============================================================================*/

body {
  font-family: Helvetica, arial, freesans, clean, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  background-color: #fff;
  padding: 20px;
  max-width: 960px;
  margin: 0 auto;
}

body>*:first-child {
  margin-top: 0 !important;
}

body>*:last-child {
  margin-bottom: 0 !important;
}

/* BLOCKS
=============================================================================*/

p, blockquote, ul, ol, dl, table, pre {
  margin: 15px 0;
}

/* HEADERS
=============================================================================*/

h1, h2, h3, h4, h5, h6 {
  margin: 20px 0 10px;
  padding: 0;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
}

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code {
  font-size: inherit;
}

h1 {
  font-size: 28px;
  color: #000;
}

h2 {
  font-size: 24px;
  border-bottom: 1px solid #ccc;
  color: #000;
}

h3 {
  font-size: 18px;
}

h4 {
  font-size: 16px;
}

h5 {
  font-size: 14px;
}

h6 {
  color: #777;
  font-size: 14px;
}

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child {
  margin-top: 0;
  padding-top: 0;
}

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
  margin-top: 0;
  padding-top: 0;
}

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p {
  margin-top: 10px;
}

/* LINKS
=============================================================================*/

a {
  color: #4183C4;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* LISTS
=============================================================================*/

ul, ol {
  padding-left: 30px;
}

ul li > :first-child, 
ol li > :first-child, 
ul li ul:first-of-type, 
ol li ol:first-of-type, 
ul li ol:first-of-type, 
ol li ul:first-of-type {
  margin-top: 0px;
}

ul ul, ul ol, ol ol, ol ul {
  margin-bottom: 0;
}

dl {
  padding: 0;
}

dl dt {
  font-size: 14px;
  font-weight: bold;
  font-style: italic;
  padding: 0;
  margin: 15px 0 5px;
}

dl dt:first-child {
  padding: 0;
}

dl dt>:first-child {
  margin-top: 0px;
}

dl dt>:last-child {
  margin-bottom: 0px;
}

dl dd {
  margin: 0 0 15px;
  padding: 0 15px;
}

dl dd>:first-child {
  margin-top: 0px;
}

dl dd>:last-child {
  margin-bottom: 0px;
}

/* CODE
=============================================================================*/

pre, code, tt {
  font-size: 12px;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
}

code, tt {
  margin: 0 0px;
  padding: 0px 0px;
  white-space: nowrap;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px;
}

pre>code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: none;
  background: transparent;
}

pre {
  background-color: #f8f8f8;
  border: 1px solid #ccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px;
}

pre code, pre tt {
  background-color: transparent;
  border: none;
}

kbd {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background-color: #DDDDDD;
    background-image: linear-gradient(#F1F1F1, #DDDDDD);
    background-repeat: repeat-x;
    border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD;
    border-image: none;
    border-radius: 2px 2px 2px 2px;
    border-style: solid;
    border-width: 1px;
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
    line-height: 10px;
    padding: 1px 4px;
}

/* QUOTES
=============================================================================*/

blockquote {
  border-left: 4px solid #DDD;
  padding: 0 15px;
  color: #777;
}

blockquote>:first-child {
  margin-top: 0px;
}

blockquote>:last-child {
  margin-bottom: 0px;
}

/* HORIZONTAL RULES
=============================================================================*/

hr {
  clear: both;
  margin: 15px 0;
  height: 0px;
  overflow: hidden;
  border: none;
  background: transparent;
  border-bottom: 4px solid #ddd;
  padding: 0;
}

/* TABLES
=============================================================================*/

table th {
  font-weight: bold;
}

table th, table td {
  border: 1px solid #ccc;
  padding: 6px 13px;
}

table tr {
  border-top: 1px solid #ccc;
  background-color: #fff;
}

table tr:nth-child(2n) {
  background-color: #f8f8f8;
}

/* IMAGES
=============================================================================*/

img {
  max-width: 100%
}
</style>
<style type="text/css">
.highlight  { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.pl-c {
    color: #969896;
}

.pl-c1,.pl-mdh,.pl-mm,.pl-mp,.pl-mr,.pl-s1 .pl-v,.pl-s3,.pl-sc,.pl-sv {
    color: #0086b3;
}

.pl-e,.pl-en {
    color: #795da3;
}

.pl-s1 .pl-s2,.pl-smi,.pl-smp,.pl-stj,.pl-vo,.pl-vpf {
    color: #333;
}

.pl-ent {
    color: #63a35c;
}

.pl-k,.pl-s,.pl-st {
    color: #a71d5d;
}

.pl-pds,.pl-s1,.pl-s1 .pl-pse .pl-s2,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sra,.pl-sr .pl-sre,.pl-src,.pl-v {
    color: #df5000;
}

.pl-id {
    color: #b52a1d;
}

.pl-ii {
    background-color: #b52a1d;
    color: #f8f8f8;
}

.pl-sr .pl-cce {
    color: #63a35c;
    font-weight: bold;
}

.pl-ml {
    color: #693a17;
}

.pl-mh,.pl-mh .pl-en,.pl-ms {
    color: #1d3e81;
    font-weight: bold;
}

.pl-mq {
    color: #008080;
}

.pl-mi {
    color: #333;
    font-style: italic;
}

.pl-mb {
    color: #333;
    font-weight: bold;
}

.pl-md,.pl-mdhf {
    background-color: #ffecec;
    color: #bd2c00;
}

.pl-mdht,.pl-mi1 {
    background-color: #eaffea;
    color: #55a532;
}

.pl-mdr {
    color: #795da3;
    font-weight: bold;
}

.pl-mo {
    color: #1d3e81;
}
.task-list {
padding-left:10px;
margin-bottom:0;
}

.task-list li {
    margin-left: 20px;
}

.task-list-item {
list-style-type:none;
padding-left:10px;
}

.task-list-item label {
font-weight:400;
}

.task-list-item.enabled label {
cursor:pointer;
}

.task-list-item+.task-list-item {
margin-top:3px;
}

.task-list-item-checkbox {
display:inline-block;
margin-left:-20px;
margin-right:3px;
vertical-align:1px;
}
</style>
</head>
<body>
<pre><code>jsoncons::output_format

typedef basic_output_format&lt;char&gt; output_format
</code></pre>

<p>The output_format class is an instantiation of the basic_output_format class template that uses <code>char</code> as the character type.</p>

<p>The default floating point formatting produces digits in decimal format if possible, if not, it produces digits in exponential format. Trailing zeros are removed, except the one immediately following the decimal point. The period character (‘.’) is always used as the decimal point, non English locales are ignored.  A <code>precision</code> gives the maximum number of significant digits, the default precision is <code>16</code>. On most modern machines, 17 digits is usually enough to capture a floating-point number's value exactly, however, if you change precision to 17, conversion to text becomes an issue for floating point numbers that do not have an exact representation, e.g. 1.1 read may become 1.1000000000000001 when written. </p>

<p>When parsing text, the precision of the fractional number is retained, and used for subsequent serialization, to allow round-trip.</p>

<h3>Header</h3>

<pre><code>#include "jsoncons/output_format.hpp"
</code></pre>

<h3>Member constants</h3>

<pre><code>default_precision
</code></pre>

<p>The default precision is 16</p>

<pre><code>default_indent
</code></pre>

<p>The default indent is 4</p>

<h3>Constructors</h3>

<pre><code>output_format()
</code></pre>

<p>Constructs an <code>output_format</code> with default values. </p>

<h3>Accessors</h3>

<pre><code>int indent() const
</code></pre>

<p>Returns the level of indentation, the default is 4</p>

<pre><code>uint8_t precision() const 
</code></pre>

<p>Returns the maximum number of significant digits.</p>

<pre><code>bool escape_all_non_ascii() const
</code></pre>

<p>The default is false</p>

<pre><code>bool escape_solidus() const
</code></pre>

<p>The default is false</p>

<pre><code>bool replace_nan() const
</code></pre>

<p>The defult is <code>true</code></p>

<pre><code>bool replace_pos_inf() const
</code></pre>

<p>The defult is <code>true</code></p>

<pre><code>bool replace_neg_inf() const
</code></pre>

<p>The defult is <code>true</code></p>

<pre><code>std::string nan_replacement() const 
</code></pre>

<p>The default is "null"</p>

<pre><code>std::string pos_inf_replacement() const 
</code></pre>

<p>The default is "null"</p>

<pre><code>std::string neg_inf_replacement() const 
</code></pre>

<p>The default is "null"</p>

<h3>Modifiers</h3>

<pre><code>output_format&amp; indent(int value)

output_format&amp; escape_all_non_ascii(bool value)

output_format&amp; escape_solidus(bool value)

output_format&amp; replace_nan(bool replace)

output_format&amp; replace_inf(bool replace)

output_format&amp; replace_pos_inf(bool replace)

output_format&amp; replace_neg_inf(bool replace)

output_format&amp; nan_replacement(const std::string&amp; replacement)

output_format&amp; pos_inf_replacement(const std::string&amp; replacement)

output_format&amp; neg_inf_replacement(const std::string&amp; replacement)
</code></pre>

<p>Sets replacement text for negative infinity.</p>

<pre><code>output_format&amp; precision(uint8_t prec)

output_format&amp; object_object_block_option(block_options value)
</code></pre>

<p>Set object block formatting within objects to <code>block_options::same_line</code> or <code>block_options::next_line</code>. The default is <code>block_options::same_line</code>.</p>

<pre><code>output_format&amp; array_object_block_option(block_options value)
</code></pre>

<p>Set object block formatting within arrays to <code>block_options::same_line</code> or <code>block_options::next_line</code>.  The default is <code>block_options::next_line</code>.</p>

<pre><code>output_format&amp; object_array_block_option(block_options value)
</code></pre>

<p>Set array block formatting within objects to <code>block_options::same_line</code> or <code>block_options::next_line</code>. The default is <code>block_options::same_line</code>.</p>

<pre><code>output_format&amp; array_array_block_option(block_options value)
</code></pre>

<p>Set array block formatting within arrays to <code>block_options::same_line</code> or <code>block_options::next_line</code>. The default is <code>block_options::next_line</code>.</p>

<h2>Examples</h2>

<h3>Default NaN, inf and -inf replacement</h3>

<div class="highlight highlight-source-c++"><pre>    json obj;
    obj[<span class="pl-s"><span class="pl-pds">"</span>field1<span class="pl-pds">"</span></span>] = std::sqrt(-<span class="pl-c1">1.0</span>);
    obj[<span class="pl-s"><span class="pl-pds">"</span>field2<span class="pl-pds">"</span></span>] = <span class="pl-c1">1.79e308</span>*<span class="pl-c1">1000</span>;
    obj[<span class="pl-s"><span class="pl-pds">"</span>field3<span class="pl-pds">"</span></span>] = -<span class="pl-c1">1.79e308</span>*<span class="pl-c1">1000</span>;
    std::cout &lt;&lt; obj &lt;&lt; std::endl;</pre></div>

<p>The output is</p>

<div class="highlight highlight-source-json"><pre>    {<span class="pl-s"><span class="pl-pds">"</span>field1<span class="pl-pds">"</span></span>:<span class="pl-c1">null</span>,<span class="pl-s"><span class="pl-pds">"</span>field2<span class="pl-pds">"</span></span>:<span class="pl-c1">null</span>,<span class="pl-s"><span class="pl-pds">"</span>field3<span class="pl-pds">"</span></span>:<span class="pl-c1">null</span>}</pre></div>

<h3>User specified <code>Nan</code>, <code>Inf</code> and <code>-Inf</code> replacement</h3>

<div class="highlight highlight-source-c++"><pre>    json obj;
    obj[<span class="pl-s"><span class="pl-pds">"</span>field1<span class="pl-pds">"</span></span>] = std::sqrt(-<span class="pl-c1">1.0</span>);
    obj[<span class="pl-s"><span class="pl-pds">"</span>field2<span class="pl-pds">"</span></span>] = <span class="pl-c1">1.79e308</span>*<span class="pl-c1">1000</span>;
    obj[<span class="pl-s"><span class="pl-pds">"</span>field3<span class="pl-pds">"</span></span>] = -<span class="pl-c1">1.79e308</span>*<span class="pl-c1">1000</span>;

    output_format format;
    format.nan_replacement(<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>);        <span class="pl-c">// default is "null"</span>
    format.pos_inf_replacement(<span class="pl-s"><span class="pl-pds">"</span>1e9999<span class="pl-pds">"</span></span>);  <span class="pl-c">// default is "null"</span>
    format.neg_inf_replacement(<span class="pl-s"><span class="pl-pds">"</span>-1e9999<span class="pl-pds">"</span></span>); <span class="pl-c">// default is "null"</span>

    std::cout &lt;&lt; pretty_print(obj,format) &lt;&lt; std::endl;</pre></div>

<p>The output is</p>

<div class="highlight highlight-source-json"><pre>    {
        <span class="pl-s"><span class="pl-pds">"</span>field1<span class="pl-pds">"</span></span>:<span class="pl-c1">null</span>,
        <span class="pl-s"><span class="pl-pds">"</span>field2<span class="pl-pds">"</span></span>:<span class="pl-c1">1e9999</span>,
        <span class="pl-s"><span class="pl-pds">"</span>field3<span class="pl-pds">"</span></span>:<span class="pl-c1">-1e9999</span>
    }</pre></div>

<h3>Object-array block formatting</h3>

<div class="highlight highlight-source-c++"><pre>    json val;

    val[<span class="pl-s"><span class="pl-pds">"</span>verts<span class="pl-pds">"</span></span>] = {<span class="pl-c1">1</span>, <span class="pl-c1">2</span>, <span class="pl-c1">3</span>};
    val[<span class="pl-s"><span class="pl-pds">"</span>normals<span class="pl-pds">"</span></span>] = {<span class="pl-c1">1</span>, <span class="pl-c1">0</span>, <span class="pl-c1">1</span>};
    val[<span class="pl-s"><span class="pl-pds">"</span>uvs<span class="pl-pds">"</span></span>] = {<span class="pl-c1">0</span>, <span class="pl-c1">0</span>, <span class="pl-c1">1</span>, <span class="pl-c1">1</span>};

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Default format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    std::cout &lt;&lt; pretty_print(val) &lt;&lt; std::endl;

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Array same line format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    output_format format1;
    format1.array_block_option(block_options::same_line);
    std::cout &lt;&lt; pretty_print(val,format1) &lt;&lt; std::endl;

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Object array next line format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    output_format format2;
    format2.object_array_block_option(block_options::next_line);
    std::cout &lt;&lt; pretty_print(val,format2) &lt;&lt; std::endl;</pre></div>

<p>The output is</p>

<div class="highlight highlight-source-json"><pre>Default format
{
    <span class="pl-s"><span class="pl-pds">"</span>normals<span class="pl-pds">"</span></span>: [<span class="pl-c1">1</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>uvs<span class="pl-pds">"</span></span>: [<span class="pl-c1">0</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>verts<span class="pl-pds">"</span></span>: [<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>]
}
Array same line format
{
    <span class="pl-s"><span class="pl-pds">"</span>normals<span class="pl-pds">"</span></span>: [<span class="pl-c1">1</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>uvs<span class="pl-pds">"</span></span>: [<span class="pl-c1">0</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>verts<span class="pl-pds">"</span></span>: [<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>]
}
Object array next line format
{
    <span class="pl-s"><span class="pl-pds">"</span>normals<span class="pl-pds">"</span></span>:
    [<span class="pl-c1">1</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>uvs<span class="pl-pds">"</span></span>:
    [<span class="pl-c1">0</span>,<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">1</span>],
    <span class="pl-s"><span class="pl-pds">"</span>verts<span class="pl-pds">"</span></span>:
    [<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>]
}</pre></div>

<h3>Array-array block formatting</h3>

<div class="highlight highlight-source-c++"><pre>    json val;
    val[<span class="pl-s"><span class="pl-pds">"</span>data<span class="pl-pds">"</span></span>][<span class="pl-s"><span class="pl-pds">"</span>id<span class="pl-pds">"</span></span>] = {<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>,<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">6</span>,<span class="pl-c1">7</span>};
    val[<span class="pl-s"><span class="pl-pds">"</span>data<span class="pl-pds">"</span></span>][<span class="pl-s"><span class="pl-pds">"</span>item<span class="pl-pds">"</span></span>] = {{<span class="pl-c1">2</span>},{<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>},{<span class="pl-c1">4</span>},{<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>},{<span class="pl-c1">2</span>},{<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">3</span>},{<span class="pl-c1">2</span>},{<span class="pl-c1">4</span>,<span class="pl-c1">3</span>}};

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Default array-array block format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    std::cout &lt;&lt; pretty_print(val) &lt;&lt; std::endl;

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Same line array-array block format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    output_format format1;
    format1.array_array_block_option(block_options::same_line);
    std::cout &lt;&lt; pretty_print(val, format1) &lt;&lt; std::endl;

    std::cout &lt;&lt; <span class="pl-s"><span class="pl-pds">"</span>Next line object-array and same line array-array format<span class="pl-pds">"</span></span> &lt;&lt; std::endl;
    output_format format2;
    format2.object_array_block_option(block_options::next_line)
           .array_array_block_option(block_options::same_line);
    std::cout &lt;&lt; pretty_print(val, format2) &lt;&lt; std::endl;</pre></div>

<p>The output is</p>

<div class="highlight highlight-source-json"><pre>Default array-array block format
{
    <span class="pl-s"><span class="pl-pds">"</span>data<span class="pl-pds">"</span></span>: {
        <span class="pl-s"><span class="pl-pds">"</span>id<span class="pl-pds">"</span></span>: [<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>,<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">6</span>,<span class="pl-c1">7</span>],
        <span class="pl-s"><span class="pl-pds">"</span>item<span class="pl-pds">"</span></span>: [
            [<span class="pl-c1">2</span>],
            [<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],
            [<span class="pl-c1">4</span>],
            [<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],
            [<span class="pl-c1">2</span>],
            [<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">3</span>],
            [<span class="pl-c1">2</span>],
            [<span class="pl-c1">4</span>,<span class="pl-c1">3</span>]
        ]
    }
}
Same line array-array block format
{
    <span class="pl-s"><span class="pl-pds">"</span>data<span class="pl-pds">"</span></span>: {
        <span class="pl-s"><span class="pl-pds">"</span>id<span class="pl-pds">"</span></span>: [<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>,<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">6</span>,<span class="pl-c1">7</span>],
        <span class="pl-s"><span class="pl-pds">"</span>item<span class="pl-pds">"</span></span>: [[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">4</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">3</span>]]
    }
}
Next line object-array and same line array-array format
{
    <span class="pl-s"><span class="pl-pds">"</span>data<span class="pl-pds">"</span></span>: {
        <span class="pl-s"><span class="pl-pds">"</span>id<span class="pl-pds">"</span></span>:
        [<span class="pl-c1">0</span>,<span class="pl-c1">1</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>,<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">6</span>,<span class="pl-c1">7</span>],
        <span class="pl-s"><span class="pl-pds">"</span>item<span class="pl-pds">"</span></span>:
        [[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">4</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">2</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">5</span>,<span class="pl-c1">3</span>],[<span class="pl-c1">2</span>],[<span class="pl-c1">4</span>,<span class="pl-c1">3</span>]]
    }
}</pre></div>
</body>
</html>
<!-- This document was created with MarkdownPad, the Markdown editor for Windows (http://markdownpad.com) -->
