<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="https://sandfox.me/assets/xml/atom.xsl" type="text/xsl media="all"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom">
  <title>Sand Fox (Posts about json5)</title>
  <id>https://sandfox.me/tags/json5.xml</id>
  <updated>2026-01-05T10:06:09Z</updated>
  <author>
    <name>Anton Smirnov</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://sandfox.me/tags/json5.xml"/>
  <link rel="alternate" type="text/html" href="https://sandfox.me/tags/json5.html"/>
  <generator uri="https://getnikola.com/">Nikola</generator>
  <entry>
    <title>JSON5 Tools</title>
    <id>https://sandfox.me/php/json5-tools.html</id>
    <updated>2025-07-11T05:46:00+03:00</updated>
    <published>2025-07-11T05:46:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/php/json5-tools.html"/>
    <summary type="html">&lt;p&gt;Presenting a couple of JSON5 tools I built.&lt;/p&gt;
&lt;p&gt;The first one was done a year ago, a docker CLI image to convert JSON5 to JSON:
&lt;a class="reference external" href="https://hub.docker.com/r/arokettu/json5-to-json"&gt;arokettu/json5-to-json&lt;/a&gt;.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_c6feccbd8aca4ef0b073eec56ac3445c-1" name="rest_code_c6feccbd8aca4ef0b073eec56ac3445c-1" href="https://sandfox.me/php/json5-tools.html#rest_code_c6feccbd8aca4ef0b073eec56ac3445c-1"&gt;&lt;/a&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{ hello: 'world' }"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;docker&lt;span class="w"&gt; &lt;/span&gt;run&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;--rm&lt;span class="w"&gt; &lt;/span&gt;arokettu/json5-to-json
&lt;a id="rest_code_c6feccbd8aca4ef0b073eec56ac3445c-2" name="rest_code_c6feccbd8aca4ef0b073eec56ac3445c-2" href="https://sandfox.me/php/json5-tools.html#rest_code_c6feccbd8aca4ef0b073eec56ac3445c-2"&gt;&lt;/a&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"hello"&lt;/span&gt;:&lt;span class="s2"&gt;"world"&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A simple tool to convert your configs on the build phase without installing anything into your images.&lt;/p&gt;
&lt;p&gt;The second one is a builder/serializer that is aimed at creating pretty configs in PHP:
&lt;a class="reference external" href="https://packagist.org/packages/arokettu/json5-builder"&gt;arokettu/json5-builder&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While it can just serialize some data into JSON5,
the goal is to create nice configs with comments and custom formatting.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code php"&gt;&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-1" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-1" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-1"&gt;&lt;/a&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-2" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-2" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-3" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-3" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-3"&gt;&lt;/a&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Arokettu\Json5\Json5Encoder&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-4" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-4" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-4"&gt;&lt;/a&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Arokettu\Json5\Values\CommentDecorator&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-5" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-5" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-5"&gt;&lt;/a&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nx"&gt;Arokettu\Json5\Values\HexInteger&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-6" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-6" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-7" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-7" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-7"&gt;&lt;/a&gt;&lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="no"&gt;__DIR__&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/../vendor/autoload.php'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-8" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-8" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-8"&gt;&lt;/a&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-9" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-9" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-9"&gt;&lt;/a&gt;&lt;span class="nv"&gt;$config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CommentDecorator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-10" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-10" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-10"&gt;&lt;/a&gt;    &lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-11" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-11" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-11"&gt;&lt;/a&gt;        &lt;span class="s1"&gt;'bareKeys'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;- Look, no quotes!'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-12" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-12" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-12"&gt;&lt;/a&gt;        &lt;span class="s1"&gt;'value'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CommentDecorator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-13" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-13" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-13"&gt;&lt;/a&gt;            &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;HexInteger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xFFF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-14" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-14" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-14"&gt;&lt;/a&gt;            &lt;span class="nx"&gt;commentAfter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'This is a very important value'&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-15" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-15" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-15"&gt;&lt;/a&gt;         &lt;span class="p"&gt;),&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-16" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-16" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-16"&gt;&lt;/a&gt;        &lt;span class="s1"&gt;'notAvailableInJSON'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;NAN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;INF&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-17" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-17" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-17"&gt;&lt;/a&gt;        &lt;span class="s1"&gt;'end'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'auto trailing comma -&amp;gt;'&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-18" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-18" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-18"&gt;&lt;/a&gt;    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-19" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-19" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-19"&gt;&lt;/a&gt;    &lt;span class="nx"&gt;commentBefore&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'This is my cool JSON5 config!'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-20" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-20" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-20"&gt;&lt;/a&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-21" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-21" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_f7b14189ca084df3ab5c3454a06d57fc-22" name="rest_code_f7b14189ca084df3ab5c3454a06d57fc-22" href="https://sandfox.me/php/json5-tools.html#rest_code_f7b14189ca084df3ab5c3454a06d57fc-22"&gt;&lt;/a&gt;&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nx"&gt;Json5Encoder&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="code"&gt;&lt;pre class="code js"&gt;&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-1" name="rest_code_80782c7f27d6453da4531df6477dd67b-1" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-1"&gt;&lt;/a&gt;&lt;span class="c1"&gt;// This is my cool JSON5 config!&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-2" name="rest_code_80782c7f27d6453da4531df6477dd67b-2" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-2"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-3" name="rest_code_80782c7f27d6453da4531df6477dd67b-3" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;bareKeys&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;- Look, no quotes!"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-4" name="rest_code_80782c7f27d6453da4531df6477dd67b-4" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xFFF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// This is a very important value&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-5" name="rest_code_80782c7f27d6453da4531df6477dd67b-5" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;notAvailableInJSON&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-6" name="rest_code_80782c7f27d6453da4531df6477dd67b-6" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kc"&gt;NaN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-7" name="rest_code_80782c7f27d6453da4531df6477dd67b-7" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kc"&gt;Infinity&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-8" name="rest_code_80782c7f27d6453da4531df6477dd67b-8" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-9" name="rest_code_80782c7f27d6453da4531df6477dd67b-9" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"auto trailing comma -&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_80782c7f27d6453da4531df6477dd67b-10" name="rest_code_80782c7f27d6453da4531df6477dd67b-10" href="https://sandfox.me/php/json5-tools.html#rest_code_80782c7f27d6453da4531df6477dd67b-10"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary>
    <category term="config" label="config"/>
    <category term="docker" label="docker"/>
    <category term="json5" label="json5"/>
  </entry>
  <entry>
    <title>A Case for JSON6</title>
    <id>https://sandfox.me/misc/json6.html</id>
    <updated>2025-04-19T06:43:00+03:00</updated>
    <published>2025-04-19T06:43:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/misc/json6.html"/>
    <summary type="html">&lt;div&gt;&lt;p&gt;Just a required follow up &lt;a class="reference external" href="https://sandfox.me/misc/json5.html"&gt;for the previous post&lt;/a&gt;: JSON5 sucks too, like any other possible format.
Just look at this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code javascript"&gt;&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-1" name="rest_code_8b2f3c194d224029ba64edece311512e-1" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-2" name="rest_code_8b2f3c194d224029ba64edece311512e-2" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;certificate&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-3" name="rest_code_8b2f3c194d224029ba64edece311512e-3" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-3"&gt;&lt;/a&gt;&lt;span class="s2"&gt;-----BEGIN PRIVATE KEY-----\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-4" name="rest_code_8b2f3c194d224029ba64edece311512e-4" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-4"&gt;&lt;/a&gt;&lt;span class="s2"&gt;MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAt6wGEsfdarMo9KET\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-5" name="rest_code_8b2f3c194d224029ba64edece311512e-5" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-5"&gt;&lt;/a&gt;&lt;span class="s2"&gt;sNv9gpBWkGfhIq3/Jhr14+3d8TXprmTk/XWReo5DA3+SbB7ebF3xUtN/4K5lUkcG\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-6" name="rest_code_8b2f3c194d224029ba64edece311512e-6" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-6"&gt;&lt;/a&gt;&lt;span class="s2"&gt;1AbdywIDAQABAkBuMbfnFqAhvuFoeydMKYAcECrPMnOhEdENdIlnuTM53kBf18f/\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-7" name="rest_code_8b2f3c194d224029ba64edece311512e-7" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-7"&gt;&lt;/a&gt;&lt;span class="s2"&gt;KaWRWv8ViuZ31GpArY8cBzj0YG30vE49Il8ZAiEA7PpotzcpjNcMKnwEBm3q0c6H\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-8" name="rest_code_8b2f3c194d224029ba64edece311512e-8" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-8"&gt;&lt;/a&gt;&lt;span class="s2"&gt;3RRZD6i32Q/vXcQBeB0CIQDGaj4BJ/fuqiHvKzetfjhpOD+sYr3VDgEyjTcojhzZ\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-9" name="rest_code_8b2f3c194d224029ba64edece311512e-9" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-9"&gt;&lt;/a&gt;&lt;span class="s2"&gt;BwIgTBRYafmbrUuc7EbERAwlxxW3KJLPxOc1nsou3rt+fUECIQCjBGUfJAyDDUtG\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-10" name="rest_code_8b2f3c194d224029ba64edece311512e-10" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-10"&gt;&lt;/a&gt;&lt;span class="s2"&gt;KpbbN0n3wRwncRUQuCnps7Zu3pv6/wIhAIIcKty7O0T7auctlpMSdyw6vp0w818x\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-11" name="rest_code_8b2f3c194d224029ba64edece311512e-11" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-11"&gt;&lt;/a&gt;&lt;span class="s2"&gt;namFjg3cbBs4\n\&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-12" name="rest_code_8b2f3c194d224029ba64edece311512e-12" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-12"&gt;&lt;/a&gt;&lt;span class="s2"&gt;-----END PRIVATE KEY-----\n"&lt;/span&gt;
&lt;a id="rest_code_8b2f3c194d224029ba64edece311512e-13" name="rest_code_8b2f3c194d224029ba64edece311512e-13" href="https://sandfox.me/misc/json6.html#rest_code_8b2f3c194d224029ba64edece311512e-13"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://sandfox.me/misc/json6.html"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</summary>
    <category term="configuration" label="configuration"/>
    <category term="json" label="json"/>
    <category term="json5" label="json5"/>
    <category term="json6" label="json6"/>
  </entry>
  <entry>
    <title>Is JSON5 a better JSON?</title>
    <id>https://sandfox.me/misc/json5.html</id>
    <updated>2025-04-16T06:10:00+03:00</updated>
    <published>2025-04-16T06:10:00+03:00</published>
    <author>
      <name>Anton Smirnov</name>
    </author>
    <link rel="alternate" type="text/html" href="https://sandfox.me/misc/json5.html"/>
    <summary type="html">&lt;p&gt;Yes it is, at least when it comes to configuration files.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://sandfox.me/misc/file-formats-misuse.html"&gt;As I said earlier&lt;/a&gt;, JSON is a good serialization language but a terrible config language.
JSON5 builds on its strong sides: it's backwards compatible with JSON and is still a subset of JavaScript and
it is still relatively easy to parse.
Then it adds all the good stuff like unquoted keys, trailing commas, and a must-have thing for any config, comments.
For me it has only two real downsides, both really minor.
First is, as most config-oriented languages, it's tricky for automated modification, a feature it shares with TOML and YAML.
The second one is &lt;a class="reference external" href="https://github.com/d3x0r/JSON6"&gt;JSON6&lt;/a&gt;, while ES6 syntax sugar is nice, it's just a &lt;a class="reference external" href="https://xkcd.com/927/"&gt;15th competing standard&lt;/a&gt;, and the worst, competing with itself.&lt;/p&gt;</summary>
    <category term="configuration" label="configuration"/>
    <category term="json" label="json"/>
    <category term="json5" label="json5"/>
  </entry>
</feed>
