<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <dfn><ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor><rt>ジェイソン</rt></ruby></dfn> 
は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト・リテラル</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>を表記する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ交換書式</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> を始め数多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">プログラミング言語</title></anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>が整備されており、
汎用的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>の交換<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">形式<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">データ形式</title></anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事実上の標準</anchor>として広く用いられています。</p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite xml:lang="en">JSON</cite> (<time>2011-07-09 12:55:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.json.org/">http://www.json.org/</anchor-external></figcaption><blockquote><p>JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.</p></blockquote></figure><section><h1>仕様書</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="219" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[219]</anchor-end> 現在 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は<time>平成29(2017)年12月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2017-12</attrvalue></time>制定の
<dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></dfn> 第2版 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src> によって定義されています。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="268" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[268]</anchor-end> 
その前は<time>平成25(2013)年10月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2013-10</attrvalue></time>制定の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
第1版 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src>
によって定義されていました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="315" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[315]</anchor-end> それ以前は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> に定義が含まれていました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES6</anchor> とそれ以降は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を参照する形になっています。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="454" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[454]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の開発者らによって策定され、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> と同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化団体</anchor>が管掌しています。</p></history><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[132]</anchor-end> <strong><cite>Standard ECMA-404</cite> (<time>2013-10-09 12:19:30 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ecma-international.org/publications/standards/Ecma-404.htm">http://www.ecma-international.org/publications/standards/Ecma-404.htm</anchor-external></strong><ul><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4041]</anchor-end> 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>, 1st edition, October 2013 - ECMA-404_1st_edition_october_2013.pdf</cite>, <time>2022-02-04T10:37:07.000Z</time>, <time>2022-09-03T11:31:03.399Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ecma-international.org/wp-content/uploads/ECMA-404_1st_edition_october_2013.pdf">https://www.ecma-international.org/wp-content/uploads/ECMA-404_1st_edition_october_2013.pdf</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4042]</anchor-end> 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>, 2nd edition, December 2017 - ECMA-404_2nd_edition_december_2017.pdf</cite>, <time>2022-02-04T10:38:33.000Z</time>, <time>2022-09-03T11:31:20.311Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf">https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf</anchor-external></li></ul></li></ul></refs><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="220" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[220]</anchor-end> それとは別に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> (旧版: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="314" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;314</anchor-internal></src>)
にもやや異なる定義があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を参照しつつも、独自の異なる内容も含んでいます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="290" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[290]</anchor-end> 
混乱を招きかねないので、あまり参照するべきではないでしょう。
明示的に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> が参照されている場合以外は、
これに従う必要はありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="490" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[490]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 側からの見解: <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="461" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;461</anchor-internal></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="286" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[286]</anchor-end> 
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code> は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> (旧版: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor>)
で定義されています <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>ECMA-404</anchor> では定義されていません)</weak>。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="316" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[316]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7158</anchor>
を再出版したもので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> の改訂版でもあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> はそれらの改訂版です。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="324" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[324]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> はながらく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の定義として参照されていましたが、
現行仕様とは異なるため、歴史的文脈以外で参照するべきではありません。</p></history><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="295" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[295]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
はいろいろな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>での利用を想定して、
許容範囲を広く若干の曖昧性を持たせて規定されています。
それは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>等各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>はそれぞれ異なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データモデル</anchor>を持っているのですから、
特定の利用方法に限定するよりは、一般化された構文を定めるだけで、
あとは各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に委ねるべきという考えに依るものです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="440" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[440]</anchor-end> 
無数の利用方法をすべて1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>にまとめるのも不可能ですし、
1つでも規定してしまうとその解釈に他が引きづられてしまうからよくないという判断なのでしょう。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="471" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[471]</anchor-end> 
このような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>の設計は意図的なもので、
しかも仕様の開発者にかなり重視されているようです。
<time xmlns="http://www.w3.org/1999/xhtml">西暦2013年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2013</attrvalue></time>版も既に前文でそのような説明をしていますが、
<time xmlns="http://www.w3.org/1999/xhtml">西暦2017年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2017</attrvalue></time>版はそれに加えて本文 <csection>1 Scope</csection> 
で構文だけを定め、意味や処理は他に任せると明記しています。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="470" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[470]</anchor-end> これは多様な環境と前提の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>との相互変換の便宜を図るためではあるのですが、
その曖昧性が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>を脅かすきらいもあります。
そのためもあって、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> から派生したものですから、
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor></cite>
仕様書に規定された <code>JSON</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>で用いられる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>との相互変換の規定が、
事実上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照実装</anchor>に相当するものと考えられています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>等との対応関係で迷う所があれば、
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor></cite>
における規定と整合する形を取るのが好ましいでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="441" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[441]</anchor-end> 
なお、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の最も一般的な利用形態の1つであろう 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webプラットフォーム</anchor>での取り扱いについては、
<cite>Infra Standard</cite>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;387</anchor-internal></src>
等に規定があります。
<cite>Infra Standard</cite>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor>
の規定をベースに
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webプラットフォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データモデル</anchor>との相互変換処理を定めています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を使うときは、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor>と整合した形とするのが望ましいでしょう。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="331" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[331]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-09-30 22:54:01 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#json-mime-type">https://html.spec.whatwg.org/#json-mime-type</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[387]</anchor-end> <cite xml:lang="en">Infra Standard</cite> (<time>2017-10-03 21:36:23 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://infra.spec.whatwg.org/#json">https://infra.spec.whatwg.org/#json</anchor-external></li></ul></refs><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> 
以上より、特に事情がないとき <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の仕様として参照するべきなのは、</p><ul><li><cite>ECMA-404</cite> 第2版 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></li><li><cite>ECMAScript</cite> の最新版の <code>JSON<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">JSON object</title></code> および関連する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor></li><li><cite>Infra Standard</cite> の最新版の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 関連の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;387</anchor-internal></src></li></ul><p>... ということになります。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="221" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[221]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">json.org</anchor> にも定義が掲載されていますが、現在ではこれは仕様ではなく、半公式の解説と理解するべきでしょう。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="222" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[222]</anchor-end> 以降の各項目では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> での定義に加えて、各仕様での歴史的な定義についても触れます。
全体としての経緯は歴史の項を参照してください。</p></section><section><h1>名称</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="466" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[466]</anchor-end> 
名称の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は
<dfn>JavaScript Object Notation</dfn> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src>
(<dfn><ruby>JavaScript<rt>ジャバスクリプト</rt></ruby> オブジェクト<ruby>記<rt>き</rt></ruby><ruby>法<rt>ほう</rt></ruby></dfn>)
を略したものです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の構文から派生した歴史を物語っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="467" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[467]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発音</anchor>は
/ˈdʒeɪ·sən/
で、
<cite>Jason and The Argonauts</cite>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(日本語版: <cite xmlns="http://www.w3.org/1999/xhtml">アルゴ探検隊の大冒険</cite>)</weak>
の
「Jason」
と同じと説明されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="468" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[468]</anchor-end> 
<cite xml:lang="en-us">Amazon.co.jp: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Jason &amp; the Argonauts</anchor> / <strong>[</strong>Blu-ray<strong>]</strong> [Import] : DVD</cite>, <time>2022-09-03T13:14:36.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.amazon.co.jp/exec/obidos/ASIN/B003HTSJ9A/wakaba1-22/">https://www.amazon.co.jp/exec/obidos/ASIN/B003HTSJ9A/wakaba1-22/</anchor-external></li></ul></refs></section><section><h1>JSON 値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> における単位となるモノは<ruby><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">値</anchor><rt>あたい</rt><rt>value</rt></ruby>と呼ばれます。
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ruby xmlns="http://www.w3.org/1999/xhtml">JSON<rt>じぇいそん</rt></ruby><ruby xmlns="http://www.w3.org/1999/xhtml">値<rt>ち</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml">JSON value</rt></rubyb></dfn> には次の種類があります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 1.</src>。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>プリミティブ型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">primitive types</rt></rubyb><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>文字列</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">string</rt></rubyb></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>数値</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">number</rt></rubyb></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>構造化型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">structured types</rt></rubyb><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>オブジェクト</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">object</rt></rubyb></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>配列</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">array</rt></rubyb></li></ul></li></ul><figure class="railroad"><ol><li>*<ol><li>空白</li></ol></li><li>|<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor></li></ol></li><li>*<ol><li>空白</li></ol></li></ol></figure><section><h1>オブジェクト</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は、 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">{</strong></anchor></code> の後に0個<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>メンバー</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">member</rt></rubyb>を
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code> で区切って並べ、最後に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">}</strong></anchor></code> が来る文字列として表されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.2.</src></p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">{</anchor></code></li><li>?<ol><li>メンバー</li><li>*<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code></li><li>メンバー</li></ol></li></ol></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">}</anchor></code></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> 最後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>の後に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code> を入れることは認められていません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="244" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[244]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の派生元である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES3</anchor> がこれを認めておらず、当時の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor> も対応していなかったためです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="273" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[273]</anchor-end> メンバーは、名前と値の組であり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の後に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code> が来て、
その後に値が来ます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.2.</src></p><figure class="railroad"><ol><li>*<ol><li>空白</li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor></li><li>*<ol><li>空白</li></ol></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code></li><li>*<ol><li>空白</li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON値</anchor></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="226" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[226]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>の個数に制約はありません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="225" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[225]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>とその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>や値の解釈は仕様上定義されていません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に依ります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 6</src></p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="501" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[501]</anchor-end> このことは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 旧版 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src> は明言していませんでした。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="500" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[500]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>
では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハッシュ参照</anchor>に対応付けられるなど、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>と環境により異なります。
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> などがそれぞれで認められる名前の種類と解釈を定めていたりします。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="444" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[444]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>によれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>で<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>記録</anchor><rt xmlns="http://www.w3.org/1999/xhtml">record</rt></rubyb>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>構造体</anchor><rt xmlns="http://www.w3.org/1999/xhtml">struct</rt></rubyb>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>辞書</anchor><rt xmlns="http://www.w3.org/1999/xhtml">dict</rt></rubyb>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>写像</anchor><rt xmlns="http://www.w3.org/1999/xhtml">map</rt></rubyb>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>ハッシュ</anchor><rt xmlns="http://www.w3.org/1999/xhtml">hash</rt></rubyb>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>オブジェクト</anchor><rt xmlns="http://www.w3.org/1999/xhtml">object</rt></rubyb>のように呼ばれている構造に相当するものと説明されています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>。
多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>はこうした構造がありますが、
複数あることもありますし、
1つもないこともあるかもしれません。
どれにどのような形で対応付けるかは、各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に委ねられています。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="445" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[445]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>
では
<code>Object</code>
が最も近いですが、他に
<code>Map</code>
も似た構造を持っています。
一般的には
<code>Object</code>
だけを
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>に直接相当するものとします。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="446" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[446]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>のことを map や hash と呼ぶ人もいるようですが、
混乱の元で不適切です。</p><section><h1>メンバーの順序</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="227" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[227]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>の順序に意味はあるかどうかは仕様上定められていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="165" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[165]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の第1版は特に言及していませんでした。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の第2版は、順序に意味は与えないとし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に依存するとしています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="176" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[176]</anchor-end> この条項の解釈に当っては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>の規定との比較が必要です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の第1版は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>の要素の順序に意味はあるとしていました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EMCA-404</anchor> の第2版は、順序に意味は与えないとし、
順序に意味があるところで使うことが多いと付け加えました。 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="503" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;503</anchor-internal>)
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>との表現の違いをみると、
どちらの版でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>の方が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>より意味有りげに書かれてはいるのですが、
第2版では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>も等しく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 層では意味がなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>層では意味があるかもしれない、と解釈されるよう配慮されていることがわかります。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="418" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[418]</anchor-end> 極めて稀に、実装が独自に順序に意味を持たせている場合があるようです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;120</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> 
しかし多くの実装はそれを想定していないため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>の問題があります。
多くの実装は順序を明示的に維持して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を出力できません。
多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 中の順序が保証された状態で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>に引き渡すことができません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="248" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[248]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> の追加部分によると、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>の順序を保持する実装と保持しない実装があるようです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="314" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;314</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="158" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[158]</anchor-end> 
順序が意味を持つことを想定しない実装には、
事実上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照実装</anchor>であるところの
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> <code>JSON</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>も含まれます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 
が順序に意味を持たせることを容認も禁止もしていないとはいえ、
それを利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が好ましいとは到底言い得ません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="177" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[177]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> とその前の版である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>を<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順序のない集成<rt xmlns="http://www.w3.org/1999/xhtml">unordered collection</rt></rubyb>だと説明していました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="314" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;314</anchor-internal></src>
これは
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の定める本来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様には無い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
独自の解釈です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> <cite xml:lang="en">Package exports | <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">webpack</anchor></cite>, <time>2022-08-21T00:11:01.000Z</time>, <time>2022-08-21T12:27:46.595Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://webpack.js.org/guides/package-exports/#notes-about-ordering">https://webpack.js.org/guides/package-exports/#notes-about-ordering</anchor-external></li></ul></refs></section><section><h1>重複メンバー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="178" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[178]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 第2版によれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>内の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>が固有でなければならない
(重複してはいけない)
という制約は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> としては、ありません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 6</src></p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="258" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[258]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 第1版は固有性に特に言及していませんでした。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>内で名前は固有である<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき</SHOULD> 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.2., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>
としていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の本来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様にはない
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> 独自の制限です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="267" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[267]</anchor-end> 
実質的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照実装</anchor>である 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> 仕様書で定義される <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> への変換では、
同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>のうち最後のものが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>に反映されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="247" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[247]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> の新規追加部分によると、重複の内最後を選択する実装の他、エラーとなる実装やすべてを返す実装もあるようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="224" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[224]</anchor-end> しばしば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>として他の正規の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>と衝突しない名前を採用する慣習が一部にあり、
同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>があってもエラーにはならないことを仮定して複数の同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>によって複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>を表すことがあるようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="287" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[287]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> は重複した指定を禁止しているようです。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>トークンエンドポイント</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="555" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[555]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWK</anchor>
や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWK集合</anchor>では拒絶または <code>JSON.parse</code> 相当の動作のどちらかと決められています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JOSEヘッダー</anchor>, <anchor>JWK</anchor>, <anchor>JWK集合</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="223" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[223]</anchor-end> 同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>に対する処理が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> レベルでは定義されていないため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>上問題となる危険性もあります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="512" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[512]</anchor-end> 
実装によりどの値を選択するかが異なり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を元に決定される処理が実装によって変化することがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>に支障が出ていることは言うまでもありませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>に関わる挙動の食い違いも起こり得ます。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="513" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[513]</anchor-end> 
入力 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> をまず検査し、次に本処理する2つのソフトウェア部品で構成されるソフトウェアを考えます。
1つ目が最初の値を選択して検査し、
2つ目が最後の値を選択して処理するなら、
未検査の値が処理してしまう<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">脆弱性</anchor>を有しています。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="506" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[506]</anchor-end> 
以上踏まえて、新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、次の方針を採るべきでしょう。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="507" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[507]</anchor-end> 同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>を記述することを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>に要求しないこと</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="511" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[511]</anchor-end> テキストエディターに近い操作性のソフトウェアである場合を除き、
同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>を持つ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を生成しないこと</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="508" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[508]</anchor-end> 同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>があるとき最後のもののみを指定された値として採用すること</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="509" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[509]</anchor-end> 同名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>があっても致死的エラーとはみなさないこと<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="510" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[510]</anchor-end> 警告を出す機能を持つならその機能により報告してもいいが、
それを除いて正常処理を継続すること</li></ul></li></ul></section></section><section><h1>配列</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>は、 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">[</strong></anchor></code> の後に0個<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の値を <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code>
で区切って並べ、最後に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">]</strong></anchor></code> が来る文字列として表されます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.3.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="232" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[232]</anchor-end> 値の個数に上限はありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> 最後の値の次に <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code> を入れることは認められていません。
値なしに <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code> が連続することも認められていません。</p><figure class="railroad"><ol><li><code> [ </code></li><li>?<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON値</anchor></li><li>*<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON値</anchor></li></ol></li></ol></li><li><code> ] </code></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="231" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[231]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>がどう解釈されるのか、順序に意味があるという以上には定義されていません。
一般的には各種<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>に対応付けられています。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="502" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[502]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の旧版は、
順序に<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意味がある<rt xmlns="http://www.w3.org/1999/xhtml">significant</rt></rubyb>としていました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 7</src></p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="503" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[503]</anchor-end> 
新版は、
値の順序に特に<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意味<rt xmlns="http://www.w3.org/1999/xhtml">meaning</rt></rubyb>は定めないとしつつ、
順序に何らかの<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意味<rt xmlns="http://www.w3.org/1999/xhtml">semantics</rt></rubyb>がある状況で<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">しばしば<rt xmlns="http://www.w3.org/1999/xhtml">often</rt></rubyb>使われる、
としています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 7</src></p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="504" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[504]</anchor-end> すなわち、旧版は順序に意味があるときに使わなければならないと強めに解釈される余地があるところ、
新版ではそこに意味を見ても見なくてもいい、
と実情により一致する厳密な表現に改められています。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="505" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[505]</anchor-end> 
汎用ライブラリーが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>の値の順序を保持して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に引き渡さなければならないことには変わりありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>はその順序情報を使っても無視してもいいということです。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="233" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[233]</anchor-end> 値について、すべて同じ種類の値でなければならないなどの制約はありませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>その他によっては値の種類や可能な値に制約があるかもしれません。</p></section><section><h1>数値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>は、必要なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負符号</anchor>の後、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数部</anchor>が来て、
必要なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>が来て、最後に必要なら(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十</anchor>の)<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指数部</anchor>が来る形を取ります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.4.</src></p><figure><ul><li>number = [&quot;-&quot;] int [&quot;.&quot; 1*DIGIT] [ exp ]</li><li>int = &quot;0&quot; / ( (DIGIT - &quot;0&quot;) *DIGIT )</li><li>exp = &quot;e&quot; [&quot;-&quot; / &quot;+&quot;] 1*DIGIT</li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 先頭に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正符号</anchor>を使うことは認められていません。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指数部</anchor>では使えます。</p><figure class="railroad"><ol><li>?<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code></li></ol></li><li>|<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor></code></li><li>=<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</anchor></code>-<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</anchor></code></li><li>*<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor></code>-<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</anchor></code></li></ol></li></ol></li></ol></li><li>?<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.</anchor></code></li><li>+<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor></code>-<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</anchor></code></li></ol></li></ol></li><li>?<ol><li>|<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">E</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">e</anchor></code></li></ol></li><li>|<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+</anchor></code></li></ol></li><li>+<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor></code>-<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</anchor></code></li></ol></li></ol></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="234" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[234]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号</anchor>の意味は自明であるためか、明確には規定されていません。
「先頭には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負符号</anchor> <code>-</code> を置くことができる」 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src> との規定より、 <code>-</code> 
で始まるなら残りの部分で表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">絶対値</anchor>であるような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負数</anchor>、
そうでなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正数</anchor>を表すと解釈するのが自然でしょう。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指数部</anchor>では更に <code>+</code> も置くことができ <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>、
残りの部分で表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">絶対値</anchor>であるような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正数</anchor>と解釈するのが自然でしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="308" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[308]</anchor-end> <code>0</code> と <code>-0</code> の違いの扱いは、明記されていません。
構文上は <code>-0</code> などの形で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor> を記述することは可能です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様としては規定せず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に委ねているのでしょう。
実際にはほとんどすべての場合に <code>-0</code> は単に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor> であるとして扱われ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-0</anchor> とはみなされません。両者の違いに意味を持たせた用法は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>が高くありません。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="309" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[309]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> への変換は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-0</anchor> を <code>-0</code> と出力するかもしれませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> からの変換が <code>-0</code> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+0</anchor> と解釈するかもしれません。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="335" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[335]</anchor-end> 逆に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON.parse</anchor></code> は <code>-0</code> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-0</anchor>
と解釈しますが、 <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON.stringify</anchor></code> は <code class="JS" xml:lang="en">JSON.parse (&quot;-0&quot;)</code>
の結果を与えると <code>0</code> と出力します。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十進数</anchor>により表記します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="514" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[514]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 旧版は 「base 10」と書いていました。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 8</src>
新版は「decimal」と書いています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 8</src>
どちらも同じ意味ですが、旧版の方が意味が明瞭だったように思われます。
(新版の方が英語としては自然なのかもしれませんが。)</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数部</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">先導0</anchor>は認められていません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指数部</anchor>では使えます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="243" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[243]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">先導0</anchor>が排除されているのは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> において<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">八進数</anchor>と解釈されるからです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="305" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[305]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>を含めることができます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数点</anchor>は <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.</anchor></code>
です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数点</anchor>のみ含めて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>を何も含めないことは認められていません。
末尾が <code>0</code> であっても構いません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="235" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[235]</anchor-end> 表現できる数値の最小や最大、精度は規定されていません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
を利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>その他や実装する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>によっては制限や限界があるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="306" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[306]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>の末尾に <code>0</code> が余分にある場合とない場合とで値の解釈に相違があるかどうかは明記されていません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様としては規定せず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に委ねているのでしょう。
実際にはほとんどすべての場合に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>の桁数は意味を持たず、
末尾の <code>0</code> の有無や <code>0</code> のみの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>の有無は、意味を持ちません。
意味を持たせた用法は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>が高くありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="307" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[307]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>によっては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>が含まれれば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実数</anchor>、
含まれなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>と区別することがありますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> にはそのような違いはありません。
もっとも、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装によっては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
からの変換時にこの違いから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>を決めたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> への変換時に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>により桁数を決めたりするかもしれません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="249" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[249]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は次のような追加の規定を設けています。 
すなわち、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IEEE 754</anchor>-2008 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">binary64</anchor>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">倍精度</anchor>) 数が広く実装されておりますので、その範囲・精度で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
数を実装すると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>が高くなります。その範囲外の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 数を使うと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>の問題が生じるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="515" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[515]</anchor-end> 
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> にはない記述で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> としての仕様上の制約ではありません。
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> においても強制ではありません。
現実にその範囲外の数値が含まれる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が使われる場合もあるにはあります。
しかし同時に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>の問題が生じているのも事実なので、
避けるのが無難なのは事実です。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="284" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[284]</anchor-end> 64ビット整数を扱える環境で出力した数値は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の数値に変換される際に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">浮動小数点数</anchor>に変換され、元の値と近くても異なる値に変わってしまうことがあるので、注意が必要です。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無限大</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NaN</anchor>は表現できません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.4.</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="575" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[575]</anchor-end> そのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONもどき</anchor>が使われることはありますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではありません。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONもどき</anchor> </sw-see></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="310" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[310]</anchor-end> 次のような場合は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>ではなく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>として扱う方が安心です。<figure class="list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">桁数</anchor>に意味がある場合 (例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数部</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">桁数</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">精度</anchor>を表す場合)</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号付き32ビット整数</anchor>の範囲外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>を正確に扱いたいとき</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">倍精度浮動小数点数</anchor>で表現できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数</anchor>を扱いたいとき</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無限大</anchor>を扱いたいとき</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NaN</anchor> を扱いたいとき</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-0</anchor> を扱いたいとき</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数字列</anchor>であって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>でないとき (例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電話番号</anchor>)</li></ul></figure></p></section><section><h1>文字列</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>は、0個以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用符</anchor>で括ることによって表されます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.5.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="237" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[237]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON値</anchor>の一種として、または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>の部分として用いられます。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="585" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[585]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用符</anchor>は、 <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</sw-ch> です。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="586" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[586]</anchor-end> <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">'</sw-ch> は使えません。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="236" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[236]</anchor-end> 
厳密には、<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>文字列</anchor><rt xmlns="http://www.w3.org/1999/xhtml">string</rt></rubyb>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 9, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src>
これについては <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;216</anchor-internal> も参照してください。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="516" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[516]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 旧版では一部<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字<rt xmlns="http://www.w3.org/1999/xhtml">character</rt></rubyb>と書かれていた規定も、
新版では厳密に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>に改められています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 9, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src></p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>は、
それを直接記述するか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> により表現することができます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.5.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="517" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[517]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>のうち、
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code>,
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor></code> - <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+001F</anchor></code>
については必ず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> しなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.5.</src>
それ以外の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> することができます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="519" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[519]</anchor-end> 
ほとんどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>は、2つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の方法で記述できます。
どの方法で記述しても、意味するものは同じで、等価です。
原記述の違いを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を解釈する実装が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に引き渡して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>がその違いを使ってもいいのかどうか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 仕様上は不明瞭です。
一般にはそうした違いを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が区別して処理することはないと考えられています。
つまり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は、編集上の都合で好きな方法で記述できます。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="239" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[239]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の数に上下限はありません。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>であっても構いません。</p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li>*<ol><li>|<ol><li><code>\</code>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C0</anchor> 以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor></li><li>=<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\</anchor></code></li><li>|<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">/</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">b</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">f</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">n</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">r</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">t</anchor></code></li><li>=<ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">u</anchor></code></li><li>4<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十六進数字</anchor></li></ol></li></ol></li></ol></li></ol></li></ol></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></li></ol></figure><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="240" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[240]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>等によっては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の数やどのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>が認められるかに制限があるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を使うことは禁止されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 明記されていませんが、半分は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>そのまま、
もう半分は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> というような列で <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10000</anchor></code> 
より大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を表現することは認められていないと解釈できます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文と構文解析の定義上は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UnicodeEscape</anchor>
と同じとなっており、従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>も単なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16ビット符号単位</anchor>の文字列表現として普通に解釈されるべきものであるようです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> モジュール <code xmlns="http://www.w3.org/1999/xhtml" class="perl"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON::XS</anchor></code> はそのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>に遭遇するとエラーを出して構文解析を中止します。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="442" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[442]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor>
は、
<code>U+10000</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>が含まれても正しく扱える<SHOOLD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">べき</SHOOLD>としつつ、
使用する 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の実装が正しく扱えない時、
これを含む入力を拒絶しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</MUST>としています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;439</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="443" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[443]</anchor-end> そのような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装は、一昔前ならともかく、
現在となっては致命的な不具合を抱えたものと言う他ありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> の規定する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWS</anchor> のような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>を扱う技術が、
救済措置とはいえ、致命的に壊れた実装を前提とした規定を含んでいるのは、
果たして望ましいものでしょうか。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="439" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[439]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> - JSON Web Signature (JWS)</cite>, <time>2020-03-29 16:13:43 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7515#section-10.12">https://tools.ietf.org/html/rfc7515#section-10.12</anchor-external></li></ul></refs><section><h1>文字の escape</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> とそれによって表される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の対応関係は次の表の通りです。<figure class="list"><table><tbody><tr><th> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 表記</th><th> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor></th></tr><tr><td><code class="JS">\&quot;</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code></td></tr><tr><td><code class="JS">\\</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\</anchor></code></td></tr><tr><td><code class="JS">\/</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">/</anchor></code></td></tr><tr><td><code class="JS">\b</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0008</anchor></code></td></tr><tr><td><code class="JS">\f</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000C</anchor></code></td></tr><tr><td><code class="JS">\n</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000A</anchor></code></td></tr><tr><td><code class="JS">\r</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code></td></tr><tr><td><code class="JS">\t</code></td><td><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0009</anchor></code></td></tr><tr><td><code class="JS">\u<var>HHHH</var></code></td><td><code class="char">U+<var>HHHH</var></code></td></tr></tbody></table></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字と小文字</anchor>の区別があります。
ここに示した通りに書かなければなりません。
ただし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">十六進数</anchor> <var>HHHH</var> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>でも構いません。 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.5.</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="518" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[518]</anchor-end> 
<code>\u<var>HHHH</var></code> の <var>HHHH</var> は、4桁の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16進数</anchor>です。
[ <code>U+0000</code>, <code>U+FFFF</code> ]
の範囲の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>の値を意味します。
そしてこの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> はその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>を表します。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 9, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src>
これについては <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;216</anchor-internal> も参照してください。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> 
[ <code class="char">U+10000</code>, <code>U+10FFFF</code> ]
の範囲の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>の2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16ビット符号単位</anchor>の列によって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>
で表せます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.5.</src>
これについてはも <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;216</anchor-internal> を参照してください。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="573" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[573]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> してもしなくても表せる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> するかどうかは、
実装により様々です。いろいろな流派があります。</p><dl><dt>[ <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+001F</sw-cc> ] (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C0</anchor>)</dt><dd>
そのままでは記述できないので、必ず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> しなければなりません。</dd><dt><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</sw-ch></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の区切りに使われるため、必ず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> しなければなりません。</dd><dt><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\</sw-ch></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> に使われるため、必ず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> しなければなりません。</dd><dt><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+</sw-ch></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-7</anchor> と誤認される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>問題があるため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>
するのが安全と考えられていた時期がありました。
今ではまず問題となりませんが、当時の慣習が引き継がれている場合があります。</dd><dt><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">/</sw-ch></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>が含まれると困ることがあるので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>
するのが安全と考えられることがあります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="569" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;569</anchor-internal></src></dd><dt><sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&lt;</sw-ch></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ</anchor>と誤認される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>問題があるため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>
するのが安全と考えられることがあります。</dd><dt>[ <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+007F</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+009F</sw-cc> ]</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御文字</anchor>なので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> した方が安全という考え方があります。</dd><dt>[ <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0080</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10FFFF</sw-cc> ]</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode文字</anchor>なので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> した方が安全という考え方があります。</dd><dt><sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2028</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2029</sw-cc></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> との互換性の問題のため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> した方が安全と考えられていました (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="565" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;565</anchor-internal>)。
今ではまず問題となりませんが、当時の慣習が引き継がれている場合があります。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor></dt><dd>
可搬性のため現実的に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> しなければなりません。
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> したとて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>には問題があります (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="524" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;524</anchor-internal>)。 </dd><dt>[ <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10000</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+10FFFF</sw-cc> ]</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor> 外なので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> した方が安全という考え方があります。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>によってうまく扱えないことがあるので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> した方が安全という考え方があります。</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode文字</anchor></dt><dd>
そのままでも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> でも表せません。</dd></dl><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="574" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[574]</anchor-end> 
すべて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> してしまえば安全で可搬性は高まりますが、長くなる上に可読性は落ちます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">人間</anchor>が読み書きできるという <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の大きなメリットを潰してしまいます。
機械同士の通信にだけ使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">人間</anchor>が介在しない場面ではそれほど問題にはならないのでしょうが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デバッグ</anchor>やトラブル解決が面倒になります。</p></section><section><h1><sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2028</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2029</sw-cc></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="565" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[565]</anchor-end> 
かつては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>リテラルにそのまま書ける
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2028</sw-cc> <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINE SEPARATOR</sw-cn>
と
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+2029</sw-cc> <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PARAGRAPH SEPARATOR</sw-cn>
が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> 
では書けないという違いがありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="566" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[566]</anchor-end> 
滅多に遭遇しないのにたまに発生して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不具合</anchor>を発生させる発覚しにくい障害と脆弱性の温床となっていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="567" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[567]</anchor-end> 
<time>平成30(2018)年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2018</attrvalue></time>頃に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> 側で仕様変更があって
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="564" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;564</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="563" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;563</anchor-internal></src>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> のどちらでもこれらが認められる形で解消されました。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="568" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[568]</anchor-end> 
昔と違って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を <code xmlns="http://www.w3.org/1999/xhtml">eval</code> で読み込むことはまずないので、
問題になることは少なくなっていましたが。
今でも便宜上<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 化して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> 中の
<code xmlns="http://www.w3.org/1999/xhtml">script</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> コード中に埋め込むようなことはあるので、
共通化にはやはり恩恵があります。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="564" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[564]</anchor-end> 
<cite xml:lang="en">GitHub - tc39/proposal-json-superset: Proposal to make all JSON text valid ECMA-262</cite>, <time>2024-02-29T08:59:32.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/tc39/proposal-json-superset">https://github.com/tc39/proposal-json-superset</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="563" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[563]</anchor-end> 
<cite xml:lang="en">ECMAScript ⊃ JSON - Chrome Platform Status</cite>, <time>2024-02-29T08:56:11.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chromestatus.com/feature/6102319234023424">https://chromestatus.com/feature/6102319234023424</anchor-external></li></ul></refs></section></section><section><h1>boolean</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <code class="JS"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code> や <code class="JS"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor></code> の意味は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal> では定義されていませんが、それぞれ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>を表すと理解されています。これらは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>でなければなりません。</p></section><section><h1>null</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <code class="JS"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> の意味は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal> では定義されていませんが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> を表すと理解されています。
これは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>でなければなりません。</p></section><section><h1>入れ子の値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="556" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[556]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>の値や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>の値として、他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>を指定できます。
つまり値を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子</anchor>に (<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>ネスト</anchor><rt xmlns="http://www.w3.org/1999/xhtml">nest</rt></rubyb>) できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="557" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[557]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様としては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子</anchor>の深さの制限はありません。
何重にでも深い構造を記述できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="558" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[558]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webプラットフォーム</anchor>では明文規定はありませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を解釈する実装は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハードウェア制限条項</anchor>に基づき十分深いところまでで対応を打ち切ることが可能です。
といっても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web互換性</anchor>のため、制限は10や20のような浅いレベルでは足りません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="559" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[559]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の推奨が適用される仕様においては、
実装が制限を設けることが明文規定で認められています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;81</anchor-internal>)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="561" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[561]</anchor-end> 
実際に制限を設けている実装もあります。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SQLite</anchor> は (厳密に言えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と似て非なる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON5</anchor> を更に独自に拡張したもの (<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSON5</anchor> </sw-see>) ですが)、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子</anchor>の深さ1000を超えると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非妥当</anchor>とみなします
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="560" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;560</anchor-internal></src>。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="560" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[560]</anchor-end> 
<cite>JSON Functions And Operators</cite>, <time>2023-06-23T13:20:40.000Z</time>, <time>2023-06-29T01:38:39.716Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.sqlite.org/json1.html#compatibility">https://www.sqlite.org/json1.html#compatibility</anchor-external></li></ul></refs></section></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="292" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[292]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト構文<rt xmlns="http://www.w3.org/1999/xhtml">text syntax</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<rubyb>テキスト書式<rt xmlns="http://www.w3.org/1999/xhtml">text format</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src>)</weak>
で、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>JSONテキスト</anchor><rt xmlns="http://www.w3.org/1999/xhtml">JSON text</rt></rubyb>は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src>
だと説明されています。</p><note xmlns="urn:x-suika-fam-cx:markup:ietf:html:3:draft:00:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="298" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[298]</anchor-end> つまり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>ではありませんし、
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>上の) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクトモデル</anchor>でもありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>として送受信できますし (実際多いですし)、
それを処理するなら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>上に読み込むのは当然ですが、
それら自体は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 本体規格がカバーする事項ではないということです。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="473" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[473]</anchor-end> 「JSON は UTF-8」ということはなく、そういうこともありますしそうでないこともあります。
なぜなら、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> とは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の構文なので、
それがどんな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>で表現されているかは
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 本体規格でカバーされていないからです。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor-internal a0:anchor="218" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;218</anchor-internal> </sw-see></p></example></note><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">text</rt></rubyb></dfn>とは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON値</anchor>1つです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal></src>。
なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> の仕様上はこれは <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONText</anchor></code></dfn> と呼ばれています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal> 15.12</src>。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>を1つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直列化</anchor>したもの
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.</src> と定義しており、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> のような値は認めていませんでした。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="474" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[474]</anchor-end> 
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> で改められていて、現在では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> でも <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;101</anchor-internal> の定義に揃えられています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の立場からはこれは厳密には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非互換変更</anchor>になります。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="228" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[228]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>ではありません。</p><section><h1>字句解析</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>は、次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">字句</anchor>により構成されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 2.</src>。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="455" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[455]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構造的文字<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">structual character</rt></rubyb><ul><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">[</strong></anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">]</strong></anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">{</anchor></code>,
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">}</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">,</anchor></code></li><li>前後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>があっても構いません。</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は、0<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0009</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000A</anchor></code>,
<code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+000D</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0020</anchor></code> です。</li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="456" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[456]</anchor-end> JSON <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">値<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">value</rt></rubyb><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リテラル名</anchor><ul><li><code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">true</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">false</anchor></code>, <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>でなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。</li></ul></li></ul></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="457" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[457]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> としておよび<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>としての意味を持ちません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を挿入したり削除したりしても、その
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>が表すものは変化しません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="458" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[458]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>は当然意味を持っています。
また<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リテラル</anchor>の途中に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を挿入することも許されません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="459" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[459]</anchor-end> 
<code>U+0000</code>, <code>U+000B</code>, <code>U+000C</code>, <code>U+FEFF</code>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>では<em>ありません</em>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="245" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[245]</anchor-end> 多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>などと異なり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>がありません。</p></section><section><h1>符号化文字集合</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[216]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>です 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="520" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[520]</anchor-end> 
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の全体だけでなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 構文要素の一種である<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>文字列</anchor><rt xmlns="http://www.w3.org/1999/xhtml">string</rt></rubyb>も、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>とされています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="236" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;236</anchor-internal>)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="238" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[238]</anchor-end> 
ところが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>中の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16進数</anchor>だけはなぜか 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> ではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> により解釈するとされています 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;132</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 9, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="499" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[499]</anchor-end> 
そのためなのか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
はなぜか
<cite>The Unicode Standard</cite>
と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor>
の両方を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Normative References</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用</anchor>しています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 3, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 2</src>
これをどう解釈するべきかは説明されていません。
(このような問題は他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>にもたまにあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ISO/IEC 10646</anchor> </sw-see>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="521" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[521]</anchor-end> 
一般には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> もふくめてすべて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> と解釈されており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> への参照は無視して構わないと考えられます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規格の厳密な解釈<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">spec lawyer</title></anchor>の観点以外では、
それで特に問題はありません。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="217" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[217]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 旧版は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 6.2.0</anchor> と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646:2012</anchor>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用</anchor>していて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>には特定版を参照しているのだと明言されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src>
固定する意図は不明で、
実用上は任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicodeの版</anchor>と解釈して構わないでしょう。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="472" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[472]</anchor-end> 新版は最新版の <cite>The Unicode Standard</cite>
と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> を参照するよう改められました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p></history><section><h1>サロゲート</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="229" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[229]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>ではなく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>ですから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>も含まれます。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="230" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[230]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SourceCharacter</anchor>、すなわち <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16ビット符号単位</anchor>について定義していました <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal> 15.12</src>。この定義では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>が正しく2つ連続する場合に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>が2つ分と解釈されるのではなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>が1つと解釈されるので、厳密には <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;216</anchor-internal> の定義と違うことになりますが、
実用上は同じと言っても構わないでしょう。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の列として定義されていました。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>の列である、
とより明確に述べています。従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>は認められていません。
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> 構文および <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> の定義で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>は除外されていません。
それらの意味は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>2つ分として使われる場合を除き、明確に定義されていません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は実装により扱いが異なり、エラーになることもあると述べています。</p></history><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="242" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[242]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>の扱いが問題となるのは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の中だけです。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> として構文的に正しいテキストで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>を含み得るのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>だけです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="476" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[476]</anchor-end> 
<cite xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor></cite>
によれば
<code xmlns="http://www.w3.org/1999/xhtml">utf-8</code> や <code xmlns="http://www.w3.org/1999/xhtml">utf-16</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>時に不正な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>は <code xmlns="http://www.w3.org/1999/xhtml">U+FFFD</code>
に置き換えられますから、
受信した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>して得られた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>データに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>が含まれることはありません。
しかし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>中の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> コードで作成された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>データや、
<cite xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encoding Standard</anchor></cite> に従わずに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>を使って得られた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>データなど、
不正な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>が含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>は発生し得ます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="522" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[522]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> では、 
[ <code>U+10000</code>, <code>U+10FFFF</code> ]
の範囲の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>をそのままの形で記述することができません。
そのかわりに、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>に相当する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>2つの
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>
の組み合わせによって記述できます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal> 9, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="523" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[523]</anchor-end> これに関する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の規定は 
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の区別を厳密化した新版の他の箇所の修正を踏まえると)
1箇所<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>と改めるべきだった箇所が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>と書かれています <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="524" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[524]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の新版では、旧版になかった次のような規定が加わりました。すなわち、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の処理器はそのような2つの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> を単一の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>として解釈しても良いし、
明示的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>であると解釈しても良く、
それは特定の処理器の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意味的な決定<rt xmlns="http://www.w3.org/1999/xhtml">semantic decision</rt></rubyb>により決められることであります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 9</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="525" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[525]</anchor-end> 
この「意味的」という区分は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の規定する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の適用範囲は<strong>構文</strong>のみであること (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="295" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;295</anchor-internal>) や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が対象とする <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<strong>意味的</strong>な制約を課しても構わないとすること
(<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="482" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;482</anchor-internal>) に関係してきます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="526" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[526]</anchor-end> 
より実際的には、現在市場の主要な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の実装が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> ベースのものと
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> ベースのものに分かれており、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> ではこの範囲の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>を
1つの単位で扱う一方、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>の2つの
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16ビット符号単位</anchor>として扱うことを、そのまま受け入れたものといえます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="527" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[527]</anchor-end> 
ただ、この2つの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> が構文上の表現方法の違いに過ぎず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>からは不可視なものとは捉えず、
「意味的」な判断により処理方法を変更可能としてしまったことは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>に幾ばくかの悪影響を与えているおそれもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="528" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[528]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>の片方がそのまま記述され、
もう片方が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> になっているようなものに、
何も言及していません。
構文上はそのような記述も認められますが、
それが何を表すか (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>を表すのか、そうでない何かを表すのか)
はよくわかりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="529" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[529]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>が単独で記述され、
または <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>が単独で記述されたものに、
何も言及していません。
構文上はそのような記述も認められ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>そのものを表すと解釈する他ありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="530" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[530]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>データを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WTF-8</anchor>) で扱う実装では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>はただの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>でしかありません。
それが2つ並んでいても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>として解釈されることはありません。
従って、例えば
「<code>&quot;<var>サロゲート1</var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\u</anchor><var>HHHH<sub><var>サロゲート2</var></sub></var>&quot;</code>」
を<var>サロゲート1</var><var>サロゲート2</var>の2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>とする解釈があり得ます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="531" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[531]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>データを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> で扱う実装では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>が2つ正規の形で並ぶと必ず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>として解釈されてしまいます。
従って、
例えば
「<code>&quot;<var>サロゲート1</var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">\u</anchor><var>HHHH<sub><var>サロゲート2</var></sub></var>&quot;</code>」
を<var>サロゲート1</var><var>サロゲート2</var>の2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">16ビット符号単位</anchor>の列とした段階で、
それは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲートペア</anchor>が表す1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>にしかなりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="532" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[532]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor>はこのような不整合を防ぐため、
単独の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート符号点</anchor>は <code>U+FFFD</code> に置き換えることとしています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装もそのような解釈を採るのが1案ではありますし、
それによって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> に違反するとはいえません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="533" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[533]</anchor-end> 
しかしどの実装方法も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> が認めた「唯一の方法」ではありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>は無いものと思うしかありません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="570" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[570]</anchor-end> 
実装によっては単独の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート</anchor>が出現したときエラーを出したり、
おかしな動作をしたりします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="569" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;569</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="571" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[571]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>等の利用者はこのような境界ケースまで一々注意しきれないことが多いと予想されますので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>等の制作者は安全な挙動を標準とするように配慮するべきです。
どうするのが好ましいかは、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列型</anchor>の仕様は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>機構の挙動などによって変わってくることでしょうが、
ここでもやはり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の挙動を模範とするのが良いでしょう。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="569" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[569]</anchor-end> 
<cite xml:lang="ja">JSONの小ネタと、JSONに対する拡張</cite>, <time>2024-11-21T04:38:03.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://zenn.dev/mod_poppo/articles/json-and-extension">https://zenn.dev/mod_poppo/articles/json-and-extension</anchor-external></li></ul></refs></section><section><h1>非文字</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="241" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[241]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>も禁止はされていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク付け言語</anchor>などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>系の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の利用を禁止していることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>との相互変換の際には注意が必要です。</p></section><section><h1>その他の符号位置</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="475" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[475]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">未割当符号点</anchor>も禁止されていません。</p></section></section><section><h1>文字符号化方式</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="218" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[218]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> としてはこの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>の列をどのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化方式</anchor>で表現するかまでは<strong>規定していません</strong>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 
多くのプロトコルでは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>として転送されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16スカラー値</anchor>の列である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>として表現されます。
場合によっては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor> など旧来の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化方式</anchor>が使われます。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> で符号化しなければならない」と解説する人がいますが、
間違っています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> にそのような制約は存在しません。</p></history><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="300" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[300]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>として定義されていますから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を採用するなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照処理モデル</anchor>的な解釈を採用することになります。</comment-p><section><h1>IETF における JSON の文字コード</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の制約があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
の本来の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 仕様には含まれず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の規格など <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を参照した仕様にのみ適用される制約です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="546" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[546]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> に従う <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>は、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閉じた生態系<rt xmlns="http://www.w3.org/1999/xhtml">closed ecosystem</rt></rubyb>の内部を除いた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">系</anchor>同士の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">交換</anchor>において、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="548" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[548]</anchor-end> 
「閉じた生態系」かどうかの判定基準は示されていないので、
この規定がどのような状況で適用され、どのような状況で適用されないのかは、
明らかにし難い場合もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="552" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[552]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> が規定する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>でその <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> 
を参照するようなものは、 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の公開プロトコル」
という閉じていない生態系に属するものですから、
この規定が適用され、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> を使わなければならないと解釈するのが妥当でしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="553" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[553]</anchor-end> 
特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブサーバー</anchor>が出力し、それと対応関係にある特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>側
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>だけが処理するような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
データは、
たとえそれが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の定義する <code>application/json</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>でラベル付けされていようとも、
閉じた生態系に属するものと解して良さそうに思われます。
その場合 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> を使おうが使うまいが、
特定少数の開発者間の意思決定だけで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>は確保できます。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 3.</src>
とされていました。 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> を使って構わないという記述はありましたが 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 6.</src>、
それ以外を使ってはいけないとは明確に規定されていませんでした。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="547" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[547]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> では更に制約され、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor>
で符号化しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</MUST>とされていました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src></p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">既定</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 3.</src>。 </p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="550" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[550]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> ではこの「既定」
が何を表すのかは明記されていませんでした。特に意図がなければ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>
を使うべきであるということとも、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化方式</anchor>が特定できないときに
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> として解釈するべきということとも解釈できましたし、それ以外の解釈もあり得ました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="551" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[551]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> に対応していない実装があり、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> が最も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>が高いという記述が追加されました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> 実装はこれらの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化方式</anchor>のいずれ、あるいはすべてに対応しなければならないのか、
しなくてもよいのか、といったことは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> ではまったく規定されておらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> でも明記はされていませんが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> は実装しなければならず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> はオプションであると解釈するのが妥当でしょう。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="251" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[251]</anchor-end> そんなことで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>はいいのでしょうか。</comment-p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="549" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[549]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> はそこから更に限定して原則 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> としました。
大多数の実装が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> を選んでいるので<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>が達成できるのはそれしかないのだと説明されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="576" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[576]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非互換変更</anchor>のようにも思われますが、
閉じた環境の例外があるので、従来通り <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor>
を使ってもただちに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不適合</anchor>とはいえませんし、
一応互換性は保たれているといえます。</comment-p></history><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> の規定していた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>は、
最初の2文字が必ず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>となります。
そのため、最初の4つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オクテット</anchor>のパターンにより、<table><tbody><tr><td><code>00 00 00 <var>xx</var></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32BE</anchor></td></tr><tr><td><code>00 <var>xx</var> 00 <var>xx</var></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor></td></tr><tr><td><code><var>xx</var> 00 00 00</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32LE</anchor></td></tr><tr><td><code><var>xx</var> 00 <var>xx</var> 00</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16LE</anchor></td></tr><tr><td><code><var>xx</var> <var>xx</var> <var>xx</var> <var>xx</var></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor></td></tr></tbody></table></p><p xmlns="http://www.w3.org/1999/xhtml">... と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">区別できる<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">sniffing</title></anchor>とされていました。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 3.</src> <var>xx</var> は <code>00</code>
以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オクテット</anchor>を表すのでしょう。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>に直接 <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor></code>
が出現することは無いとされているので、 <code>00</code> かどうかで確実に判定できます。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> 一般の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は2文字目が必ずしも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>であるとは限りません (1文字以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>や1文字だけの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数</anchor>の場合。) が、
それでもやはり同様にこれら5つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化方式</anchor>を区別できます。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> この <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing</anchor> は、実装が必ず使わなければならないなどという規定は特にありません。
しかし <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code> には <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>がありませんし、実際にこれらの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>が使われているのであれば、
これ、あるいはこれに類する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing</anchor> を実装する以外に選択肢はありません。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="253" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[253]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing</anchor> の項は削除されています。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="254" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[254]</anchor-end> なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>に関して規定していないので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing</anchor>
への言及もありません。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="255" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[255]</anchor-end> このような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sniffing</anchor> が実際に行われているのかは不明です。例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor>
は使っていません。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="384" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[384]</anchor-end> <cite>HTTP::Message - search.cpan.org</cite> (<time>2017-09-10 18:28:51 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm">http://search.cpan.org/~oalders/HTTP-Message-6.13/lib/HTTP/Message.pm</anchor-external> 
はこれを実装しているようです。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="285" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[285]</anchor-end> また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>上好ましくないと現在では考えられています。</p></history></section><section><h1>Web における JSON の文字コード</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> においては 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WHATWG</anchor>
の
<cite>Infra Standard</cite>
等に基づき原則
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>
が使われます
(<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="388" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;388</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="450" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;450</anchor-internal>)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="477" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[477]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webにおける文字コード</anchor>も参照。</p></section><section><h1>BOM</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="587" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[587]</anchor-end> 
一般論としていえば、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> に <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> があってもなくても構いません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="160" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[160]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を使っても良いかどうか明記していません。
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>については触れずに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">列<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列</title></anchor>について定義しているに過ぎないので、
別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">層</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直交</anchor>する問題 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(つまり <anchor>JSON</anchor> を利用するプロトコルその他に依存する)</weak>
と解するべきだと思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文上、
先頭に
<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ZWNBSP</sw-cn> 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<sw-cn>BOM</sw-cn> と同じ <sw-cc>U+FEFF</sw-cc>)</weak>
が来ることは認められていません。
従って、
<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn> を使えない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>で
<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</sw-cn>
を使ってしまった場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
としては構文エラーになります。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> について言及していませんでした。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> がある場合は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal> のパターンに当てはまらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> であっても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> と判定されてしまいます。ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
のこの部分は単なる事実の記述であって、そう解釈<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">しなければならない</anchor>などと規定されているわけではなく、
また明確に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を使用しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</anchor>と規定されているわけでもありませんから、
どう理解するべきか難しいところです。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> の改訂にあたっても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> 
が認められているかどうかは議論になっていました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="159" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[159]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を生成するときに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を含めては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">ならず</strong></anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を解釈するときに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> を無視しても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構わない</strong></anchor>としています。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="554" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[554]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> は、「ネットワーク転送される」 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>のみにと当該規定の対象を限定しました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src>
その意図は不明です。もっとも、そもそもネットワーク転送されない
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> の効力が及ぶ状況も少なかろうとは思われますから、
実効的には同じともいえます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="250" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[250]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> が含まれていると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> でないとしてエラーとみなす実装も認めています。
そんなことで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>はいいのでしょうか。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="252" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[252]</anchor-end> 
<code xmlns="http://www.w3.org/1999/xhtml" class="charname">ZWNBSP</code> 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>BOM</anchor> と同じ <anchor>U+FEFF</anchor>)</weak>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>以外で現れることはありませんから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> かどうかは明確に判断できます。</comment-p></history><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="161" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[161]</anchor-end> 
かつて
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の解釈の際に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> があれば無視するよう規定していました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="317" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[317]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;74</anchor-internal> の通り <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> の扱いが明記されていなかったことから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種</anchor>を規定しているとみなす人もいました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 
しかし、
その程度で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変種</anchor>と判定されるとなると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は異なることになってしまいます。
「異なる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の利用方法がある」ならまだしも、
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の異なる定義がある」と解するのは無茶でしょう。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="478" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[478]</anchor-end> 
現在の <cite>XMLHttpRequest Standard</cite> は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webプラットフォーム</anchor>の共通の定義を参照するのみで、
独自の規定を持っていません。
(想定される挙動は同じで、
<code class="charname" xml:lang="en">BOM</code>
はあってもなくても構いません。)</p></history></section></section><section><h1>文字 <code class="charname" xml:lang="en">NULL</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="341" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[341]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文上は <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</sw-cc> <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NULL</sw-cn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の直接の記述は認められていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="572" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[572]</anchor-end> 
それが出現したときどう処理するべきかを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 
本体仕様は規定していないので (ただし <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="481" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;481</anchor-internal>)、
実装依存ということになります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="342" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[342]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> のような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> の各種言語に <code class="char" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor></code>
が含まれていると、(文脈に依存して) <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+FFFD</anchor></code> に置き換えられたり、
除去されたりします。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>Webにおける文字コード</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="343" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[343]</anchor-end> つまり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を受信し、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に変換し、
更に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> として解釈した場合と、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
として解釈し、その一部分を取り出し、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
として解釈した場合で、含まれている <code class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0000</anchor></code> 
の解釈が変わってしまうことがあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="344" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[344]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ファイルへの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストファイルのDOM構築</anchor>が行われた結果を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> として解釈する場合も、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> に埋め込まれた場合同様となります。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストファイル</anchor>に埋め込んで出力し、
そこから取り出して利用することは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>では定石ですから、
注意が必要です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C言語</anchor>のような <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x00</n> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終端<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">NULL終端</title></anchor>と見なす<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> との相互変換の際に取り扱いに注意が必要です。</p></section><section><h1>構文解析器</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="256" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[256]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は構文を定めるのみで、構文解析の方法は定義していません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の利用側 (例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor>) で定義するのが適当と考えているのでしょう。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="481" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[481]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>適合</anchor>処理器<rt xmlns="http://www.w3.org/1999/xhtml">conforming processor</rt></rubyb>は、
適合<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>でない入力を受理する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきではありません<rt xmlns="http://www.w3.org/1999/xhtml">should not</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 2</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="480" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[480]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 
<time xmlns="http://www.w3.org/1999/xhtml">西暦2013年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2013</attrvalue></time>版にはありませんでしたが、
<time xmlns="http://www.w3.org/1999/xhtml">西暦2017年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2017</attrvalue></time>版で追加されました。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 2</src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="484" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[484]</anchor-end> 
適合しない入力を受理しないべきというのは、
過去様々に行われてきた (そして現在も一部で行われる) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の独自拡張 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="301" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;301</anchor-internal>) に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装が対応するべきではないということです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="485" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[485]</anchor-end> もちろん、 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と似た <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> でないもの」
に対応することについて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の仕様書は何ら制限できる立場にないのですが、
それは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではない何かに過ぎず、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の実装と称するものが行うべきではないということです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="486" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[486]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と 「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> に似たもの」の両対応で自動判別してます、
と称して形式的にこの規定を無視することはできますが、
不誠実の誹りは免れ得ないでしょう。
不具合と脆弱性の温床で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>を危険に晒すだけです。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="482" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[482]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>適合</anchor>処理器<rt xmlns="http://www.w3.org/1999/xhtml">conforming processor</rt></rubyb>は、
その処理する適合<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の集合を制限する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">意味的<rt xmlns="http://www.w3.org/1999/xhtml">semantic</rt></rubyb>な制約を課しても<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構いません<rt xmlns="http://www.w3.org/1999/xhtml">may</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 2</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="483" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[483]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 
<time xmlns="http://www.w3.org/1999/xhtml">西暦2013年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2013</attrvalue></time>版にはありませんでしたが、
<time xmlns="http://www.w3.org/1999/xhtml">西暦2017年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2017</attrvalue></time>版で追加されました。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 2</src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="487" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[487]</anchor-end> 
ここで認められているのは意味的な制限だけであって、構文的な制限を認める規定はありません。
ということは、例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor>は認めないような実装は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合</anchor>処理器ではないということです。
想定されているのは、<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>A</var>に特化しているので<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>A</var>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>形式を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> で表現しているものにしか対応できない、という類でしょう。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="488" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[488]</anchor-end> 現在流通している <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装のほとんどは汎用ライブラリーでしょうから、
そのような制限のある単体の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装がどれだけあるか、
今後どれだけ作られるかは疑問ではあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>と不可分で外形的にそのように見える実装は多々あるかもしれません。</comment-p><note xmlns="urn:x-suika-fam-cx:markup:ietf:html:3:draft:00:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="489" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[489]</anchor-end> 
この規定が追加された版の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
では
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
の存在が公認されています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="461" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;461</anchor-internal>)。そして
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
は意味的な制約を定義していると 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
は述べています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 3</src>
この規定は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
の独自の規定の存在を明示的に承認する意図で追加されたようです。
つまり、</p><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="577" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[577]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>、</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="578" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[578]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> + 独自の意味的な制約、</li></ul><p xmlns="http://www.w3.org/1999/xhtml">という整理になります。</p></note><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="580" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[580]</anchor-end> 
なお、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受理</anchor>するべき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>の長さや構造の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子</anchor>の深さの制約は、
意味的制約というよりは構文・構造的な制約と考えられますが、
こうしたものが認められるのか明らかではない、どちらかというと認められないようにも思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="581" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[581]</anchor-end> 
しかし現実の実装にはそうした制約が必須です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハードウェア制限条項</anchor>によって包括的に認められていると解されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> では独自の規定があります (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;80</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;81</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;83</anchor-internal>)。</p><section><h1>ECMAScript における JSON 構文解析</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> の <code class="JS"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON.parse</anchor></code> は、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;79</anchor-internal> の拡張は認めておらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> の規定に厳密に従って構文解析しなければなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal> 15.12</src>。</p></section><section><h1>Web における JSON 構文解析</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="582" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[582]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> では基本的に <cite>ECMAScript</cite> の構文解析法が準用されています。</p></section><section><h1>IETF の RFC における JSON 構文解析</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の定義する<dfn>JSON <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構文解析器<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">parser</rt></rubyb></dfn>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>を他の表現に変形するものです
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON構文解析器</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の文法に適合するすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受理</anchor>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON構文解析器</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではない形式や拡張を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受理</anchor>しても<MAY xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構いません</MAY>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="579" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[579]</anchor-end> 
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の規定 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="481" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;481</anchor-internal>) に合理的理由なく違反する脱法的 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="485" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;485</anchor-internal>)
規定です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受理</anchor>する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サイズ</anchor>を制限して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入れ子</anchor>の深さを制限して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>の範囲を制限して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長さ</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>を制限して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 4., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> これらの制限に抵触する場合にどのように処理しなければならないかは規定されていません。
また、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;83</anchor-internal> の文字の内容の制限というのが具体的に何を指しているかは不明確です。
特定の種類の文字から構成される文字列以外を処理できなくても構わないといったことでしょうか。</comment-p></section></section><section><h1>生成器</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="257" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[257]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文を定義するのみで、その生成の方法は定義していません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>等の概念と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> との対応関係は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の定義するところではなくそれぞれで定めるべきと考えているため、
構文は定義できても、その構文に従う文字列をどのように生成するかは定義できないのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="583" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[583]</anchor-end> 
生成の方法が規定されていないということは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構文</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一致</anchor>する限り、
実装の裁量で自由な方法で生成できるということです。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escape</anchor> を使うか使わないかを選べますし、
字句間に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を挿入するかしないかを選べます。
汎用ライブラリーはこうした挙動を呼び出し側に指定させることもできます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="584" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[584]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、生成の方法を独自に定めることもできます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を利用する場面によっては特定の生成方法しか選べないこともあります。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Lines</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行指向</anchor>の処理のため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>を挿入しないことが求められます。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の定義する <dfn>JSON <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成器<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">generator</rt></rubyb></dfn>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONテキスト</anchor>を生産するものです 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 5., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON生成器</anchor>が生産する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文法</anchor>に厳密に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合</anchor>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 5., <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="318" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[318]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は自身の定義に違反するものを受理することを認めていますが (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;79</anchor-internal>)、
違反するものを生成することは認めていないのです。
つまり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の伝統である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Postelの法則</anchor>です。</comment-p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> の <code class="JS" xml:lang=""><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON.stringify</anchor></code> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> ではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor>
の規定に従って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を生成しなければなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal> 15.12</src>。</p></section></section><section><h1>処理</h1><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="479" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[479]</anchor-end> 構文解析の項も参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="391" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[391]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を得る方法は、 <cite>ECMAScript</cite>
で規定されています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>からは
<code>JSON.parse</code> により呼び出せます。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="392" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[392]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を得る方法は、 <cite>Infra Standard</cite>
で <cite>ECMAScript</cite> を参照する形で規定されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="388" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[388]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト<ruby xmlns="http://www.w3.org/1999/xhtml">群<rt>ぐん</rt></ruby>からJSONを<ruby xmlns="http://www.w3.org/1999/xhtml">構文解析<rt>こうぶんかいせき</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">parse JSON from bytes</rt></rubyb></dfn>するには、
<var>バイト群</var>を次のようにします。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;387</anchor-internal></src></p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="389" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[389]</anchor-end> <var>テキスト</var>を、<var>バイト群</var>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>を適用した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="390" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[390]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">?<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">? (ES)</title></anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Call</anchor> (<code>%JSONParse%</code>, <code>undefined</code>, <var>テキスト</var>のみを含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト</anchor>)
の結果を返します。</li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="393" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[393]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>により <code xmlns="http://www.w3.org/1999/xhtml" class="charname" xml:lang="en">BOM</code> は除去されます。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="400" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[400]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8復号</anchor>結果に <code xmlns="http://www.w3.org/1999/xhtml">JSON.parse</code> を適用することを意味します。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="449" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[449]</anchor-end> 得られる結果は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript値</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="398" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[398]</anchor-end> 次の場面で使われます。</p><figure class="list short"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="399" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[399]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト群からJSONを構文解析</anchor>するもの</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON応答</anchor></li><li><code>fetch</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">package data</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="450" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[450]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONをInfra<ruby xmlns="http://www.w3.org/1999/xhtml">値<rt>ち</rt></ruby>に<ruby xmlns="http://www.w3.org/1999/xhtml">構文解析<rt>こうぶんかいせき</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml">parse JSON into Infra values</rt></rubyb></dfn>するには、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor><var>JSONテキスト</var>を、
次のようにします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;387</anchor-internal></src></p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="451" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[451]</anchor-end> <var>JavaScript値</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">?<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">? (ES)</title></anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Call</anchor> (<code>%JSONParse%</code>, <code>undefined</code>, <var>JSONテキスト</var>のみを含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト</anchor>)
の結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="452" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[452]</anchor-end> 
<var>JavaScript値</var>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">converting a JSON-derived JavaScript value to an Infra value</anchor>
した結果に設定します。</li></ol></figure><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="423" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[423]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONをバイト群に直列化<rt xmlns="http://www.w3.org/1999/xhtml">serialize JSON to bytes</rt></rubyb></dfn>するには、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> 値<var>値</var>を次のようにします <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="387" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;387</anchor-internal></src>。</p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="424" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[424]</anchor-end> 
<var>文字列</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">?<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">? (JavaScript)</title></anchor> <code>Call</code> (<code>%JSONStringify%</code>, <code>undefined</code>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">«<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">«・»</title></anchor> <var>値</var> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">»<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">«・»</title></anchor>)
の結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="425" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[425]</anchor-end> 
<var>文字列</var>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8符号化</anchor>を適用した結果を返します。</li></ol></figure></section><section><h1>JSON の変種</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="301" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[301]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は単純で今後の拡張も予定されていないと明言されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と似ているようでどこかが違う、
いろいろな <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONの変種</anchor>が「JSON」 と呼ばれていることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>の障害となっており、
注意が必要です。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONの変種</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の不便な点を解消した、拡張したと称するものや、
特定用途向けに改造したもの、
マーケティング目的で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の名前を出しているものなど、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の影響を受けているのに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
と大なり小なり違いがある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ形式</anchor>も、
いろいろあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を実装した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>等と名前が似ていて紛らわしいものもあり、
注意が必要です。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONの変種</anchor> </sw-see></p></section><section><h1>JSON ストリーム</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="294" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[294]</anchor-end> 複数の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 値の連続を表す<dfn>JSONストリーム</dfn>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ形式</anchor>も幾つか存在しています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONストリーミング</anchor> </sw-see></p></section><section><h1>JavaScript との互換性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> から派生した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ですが、
微妙な違いがあり、取り扱いには意外と注意が必要だったりします。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONの変種</anchor> </sw-see></p></section><section><h1>YAML との互換性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 
一部 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor> の支持者が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と互換性があるなどと喧伝したため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と呼ばれたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor> を読み書きする実装が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> に対応していると (実態に反して)
主張したりしていました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSONの変種</anchor> </sw-see></p></section><section><h1>データモデル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="275" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[275]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> に対する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML情報集合</anchor>のような厳密な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データモデル</anchor>は存在しません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が、それを処理するシステムでどのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>で表現されたり、
どのような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> でアクセスされたりするかは、完全にシステム依存となっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="276" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[276]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が限られた種類の (多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>に共通して存在する)
値だけを表現でき、 (多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>の実装で) ネイティブな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>に直接自明に変換可能なことが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の利用のしやすさにつながっており、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor>
にかわって開発者に広く支持され、普及した一因でしょう。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="277" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[277]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の場合、ほとんどの実装は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor>などに相当する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>とそれを操作する
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> を提供していて、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>のネイティブのデータ構造や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>との相互変換は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>ごとに設計し実装する必要があります。また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor>
にも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">型</anchor>など<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>によっては自明に対応付けられない機構が備わっています。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="278" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[278]</anchor-end> 多くの実装において専用の機構が不要となっているために、
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を入出力形式として採用した任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>のデータ構造上ではなく) 
純粋な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> のデータモデル上での操作を規定しても、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用</anchor>可能な形で広く普及するかどうかはわかりません。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="279" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[279]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Pointer</anchor> のような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> データモデル上の式言語は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>ネイティブなデータ構造に変換した後だと直接適用できない、
あるいはしづらい操作が含まれているかもしれません。</p></example><section><h1>バイナリー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="213" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[213]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリーデータ</anchor>を表現する方法がありません。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の列は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>として表現できますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>の列を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> に直接含めることはできません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="214" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[214]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>の区別が無いか曖昧な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>や環境では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>として使われることもありますが、
厳密にはそのような用法は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="215" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[215]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリーデータ</anchor>を扱いたい時は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePack</anchor> など<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリーデータ</anchor>を扱えるデータ形式を使うか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> など<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に符号化する方法を使って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に埋め込むなどする必要があります。</p></section><section><h1>日時</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="363" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[363]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日時型</anchor>はありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="364" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[364]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8601の日時形式</anchor>のいずれかを採用することや、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unix time</anchor> を採用することが多いようですが、
どれが主流ということもなく、他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日時形式</anchor>が使われることもあります。</p></section></section><section><h1>JSON 内データの識別・演算</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="311" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[311]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON式言語</anchor>参照。</p></section><section><h1>MIME 型</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>は <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code></dfn> です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 6.</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> この他 <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">*/*+json</anchor></code></dfn> により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を使った特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>を表すことがあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="320" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[320]</anchor-end> 実際にはあまり一般的ではありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="447" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[447]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON-LD</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は更に細分化された
<code class="MIME" xml:lang="en">*/*+ld+json</code>
を使っていることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> この他に <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/json</anchor></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="331" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;331</anchor-internal></src>, <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/x-json</anchor></code>,
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/jaavscript</anchor></code>, <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/x-javascript</anchor></code>,
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-javascript</anchor></code>,
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</anchor></code> が使われることもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="333" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[333]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>JSON MIME型</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">JSON MIME type</rt></rubyb></dfn>は、次のものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="331" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;331</anchor-internal></src>。<figure class="list short"><ul><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/json</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">+json</anchor></code> で終わる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor></li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="261" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[261]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> なので、 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/javascript</anchor></code> を使うのが正しいですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>になっていることもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="319" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[319]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LDJSON</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Lines</anchor> の類は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> そのものではないので、
それぞれに適切な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>を使うべきですが、 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code>
が使われることもあります。
<code class="MIME" xml:lang="en">application/orchestrate-export-stream+json</code>
のように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>区切りの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> で <code class="MIME" xml:lang="en">+json</code>
が使われることもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="562" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[562]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">versioning</anchor> に濫用されることがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>REST</anchor> </sw-see></p><section><h1>CTE</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CTE</anchor> としては、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> を使う時は <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8bit</anchor></code>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-32</anchor> を使う時は <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">binary</anchor></code> が適切です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 6.</src></p></section><section><h1>引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> 公式には <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>が定義されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</anchor-end> 現実には次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>が存在します。<figure class="list short"><ul><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ieee754compatible</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">odata</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">odata.metadata</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">odata.streaming</anchor></code></li></ul></figure></p><section><h1><code class="MIME" xml:lang="en">charset</code> 引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> たまに <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>が付けられていることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> などの仕様書や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> のドキュメントの類などでも、
しばしば <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>が指定されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code> が指定されていないと <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> であっても正しく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>できない実装があります。
<time>2013-03-06T07:46:28.900Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> 他方、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>なしの「<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code>」でないと <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
が指定されたとみなさない実装もあります。</p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="288" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[288]</anchor-end> <cite xml:lang="en">REST API for MongoLab | MongoLab Documentation &amp; Support</cite>
(<time>2015-02-18 07:12:40 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.mongolab.com/restapi/">http://docs.mongolab.com/restapi/</anchor-external></figcaption><blockquote><p>The API does support UTF-8 characters. As per the HTTP spec <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1">http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1</anchor-external>, you need to be sure to explicitly set the character set you are using in the Content-Type header. The default character set (ISO-8859-1) is not very i18n friendly.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="289" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[289]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="288" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;288</anchor-internal> のように <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor></code> が <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code>
にも適用されると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> を根拠に主張する実装もあるようです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">この解釈は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2616</anchor> を誤読しています。</comment-p></section></section><section><h1><code class="MIME" xml:lang="en">+json</code> で終わる MIME 型</h1><figure class="list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="367" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[367]</anchor-end> <code class="MIME" xml:lang="en">+json</code> で終わる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor></figcaption><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/jsonml+json</anchor></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/ld+json</anchor></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/microdata+json</anchor></code></li><li><code class="MIME" xml:lang="en">application/vnd.hyper-item+json</code></li><li><code>application/vnd.elasticsearch+json</code></li></ul></figure></section></section><section><h1>拡張子</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張子</anchor>には <code class="file" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.json</anchor></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 6.</src> がしばしば使われます。</p></section><section><h1>Macintosh ファイル型</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mac OS</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の種類を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号</anchor>としては <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TEXT</anchor></code>
が使われます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 6.</src>。</p></section><section><h1>素片識別子</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>には言及されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>は使われていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="162" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[162]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Pointer</anchor> というものがあり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>として使われることが想定されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="368" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[368]</anchor-end> <code class="MIME" xml:lang="en">application/vnd.hyper-item+json</code> は独自に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>を規定しています。</p></section><section><h1>テスト</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="435" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[435]</anchor-end> <cite>JSON_checker</cite>, <time>2012-12-01 02:00:48 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.json.org/JSON_checker/">http://www.json.org/JSON_checker/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="436" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[436]</anchor-end> 
公式テストデータ。受理するかしないかにわかれている。
取り出したデータについてまでは検査しない。
ライセンスが明記されていない。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="433" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[433]</anchor-end> <cite xml:lang="en">nst/JSONTestSuite: A comprehensive test suite for RFC 8259 compliant JSON parsers</cite>, <time>2020-02-13 14:17:34 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/nst/JSONTestSuite">https://github.com/nst/JSONTestSuite</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="434" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[434]</anchor-end> 
構文解析器の適合性の検査用データ。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
に基づくため、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の定義 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>)
に対して正しい解釈かどうかは疑義が残る。
結果は受理、不受理、受理してもしなくてもよいに分かれている (この辺がなんとも怪しい)。
取り出したデータについてまでは検査しない。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MITライセンス</anchor>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="437" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[437]</anchor-end> <cite xml:lang="en">test262/test/built-ins/JSON at master · tc39/test262</cite>, <time>2020-02-13 14:35:02 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/tc39/test262/tree/master/test/built-ins/JSON">https://github.com/tc39/test262/tree/master/test/built-ins/JSON</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="438" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[438]</anchor-end> 
<code>JSON</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> API のテスト。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文解析や直列化のそのもののテストは豊富でない上に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>
コードに埋め込まれているので再利用は難しい。</p></section><section><h1>応用</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSON応用</anchor> </sw-see></p><section><h1>Web における JSON</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSON応用</anchor> </sw-see></p></section></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="192" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[192]</anchor-end> 現在ではありとあらゆる言語で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が実装されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="193" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[193]</anchor-end> ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の仕様が (本項で長々と説明している通り) 半ば意図的に細部を曖昧にしていることもあり、
細部の実装はそれぞれに異なっており、境界ケースや独自拡張機能を使っていると他の実装で意図通り扱えないことがよくあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="269" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[269]</anchor-end> そもそも細部が意図的に曖昧にされている理由でもありますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
は色々な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>のネイティブの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>と直接対応付けることが想定され、
実際そのように実装されているため、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が表すものを特定の意味に厳密に固定することが困難です。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="270" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[270]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>は、こんにちの多くの計算機は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IEEE 754</anchor>
を採用していますが、そうでない計算機もあります。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>によっては、
値によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数型</anchor>などとの自動型変換が行われるかもしれません。
また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>の内部表現は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>によって異なります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> であることもあれば、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16</anchor> のこともあり、
任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が使える言語もあります。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>型がなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト列</anchor>型しかない言語もあります。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>)
の名前と値の組の順序が保存される言語もあれば、されない言語もあります。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="271" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[271]</anchor-end> 従って、何をもって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> が正しく実装されているかいないか判断すること自体が厳密には困難です。
同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>における <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装であっても、
異なる対応付けの方法が存在し得ます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の構文の仕様に加えて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と特定の環境等との対応付けの仕様が決められて、初めて適合性を議論できます。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="272" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[272]</anchor-end> 例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> は、 <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></code> オブジェクトの定義において
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 文字列と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> データとの相互変換の方法を厳密に決めています。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="169" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[169]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を扱う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>は多数あります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean context</anchor> はありますが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ型</anchor>としての <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor>
は存在していません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SV</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor>
に対応付けたり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</anchor>/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scalar reference</anchor> に対応付けたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>として表現したりと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>ごとに様々な表現方法が採られています。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[281]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>の関係が規定されていない以上、
どの実装が正しいとも誤りだとも言えません。どの実装がより便利かという議論はもちろん可能です。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="282" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[282]</anchor-end> 同じ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> という言語を使っていても、ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
に変換したデータを別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Perl</anchor> に変換した結果、
元のデータに戻るとは限りません。この意味で、ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>が実装する“JSON”
と別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モジュール</anchor>が実装する“JSON”は別物かもしれません。</p></example><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の実装例</figcaption><ul><li><code class="JS">JSON<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">JSON (JavaScript)</title></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONのPerlモジュール</anchor>各種</li></ul></figure></section><section><h1>関連</h1><section><h1>XML との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="172" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[172]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> とは構文的にもデータモデル的にも全く互換性も歴史的関係もありませんが、
しばしば対比して語られます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> は90年代末から00年代中頃にかけて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>の両方の記述形式の大本命としてもてはやされていました。ところが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の登場により、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>の情報交換形式として多くの場面で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> より <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の方がより勘弁で扱い易いと認識されるようになりました。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は元々 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リテラル</anchor>から派生したものですから、多くの近代的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラミング言語</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>とも自明な対応関係が存在しており、
多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラマー</anchor>達には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> よりも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の方が理解しやすいという性質もありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="173" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[173]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>のサーバーが提供する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> のデータ形式としては、かつては
(<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLHttpRequest</anchor></code> という<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>名に象徴されるように)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> を用いるのが最善策であると考えられていた時期もありましたが、現在では専ら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
が用いられています。10年代の最初期には (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Atom</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSS</anchor> を含め) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> ベースの形式と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の両方を提供する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> も少なくありませんでしたが、10年代中頃には後方互換性のために必要な場合を除き、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> ベースの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web API</anchor> は見られなくなっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[174]</anchor-end> アプリケーションの設定ファイルの類の記述形式としても、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>
(や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">YAML</anchor> その他の独自形式) から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> へのシフトが同時期に起こっています。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Widgets 1.0</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 形式の設定ファイルを使っていますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome拡張</anchor>の設定ファイルは
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="175" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[175]</anchor-end> 世間一般での <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> の衰退と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の普及を後追いするように、標準化コミュニティーでもかつての <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor>
ベースの技術にかわり、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> ベースで同様の技術を定義しようとする動きがあります。例えば
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Pointer</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPointer</anchor>)、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Schema</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML Schema</anchor>)、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Web Signature</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML Signature</anchor>)、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON-LD</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RDF/XML</anchor>)、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON Home Document</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WSDL</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AtomPub</anchor>) などが提案されています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="376" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[376]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WCF</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mapping Between JSON and XML</anchor> を使っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="373" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[373]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLT 3.0</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML Representation of JSON</anchor> を定義しています。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="377" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[377]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> で記述する方法も幾つか提案されています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML/JSON</anchor> を参照。</p></section></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="321" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[321]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は<time>西暦2001年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2001</attrvalue></time>に <code>JSON.org</code> で発表されたとされます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> 
<cite>Introducing <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></cite>, <time>2022-07-30T03:42:15.000Z</time>, <time>2003-02-28T03:41:59.339Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://web.archive.org/web/20030228034147/http://www.crockford.com/JSON/index.html">https://web.archive.org/web/20030228034147/http://www.crockford.com/JSON/index.html</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>: The Fat-Free Alternative to XML</cite>, <time>2022-07-30T03:43:36.000Z</time>, <time>2002-12-23T01:47:30.856Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://web.archive.org/web/20021223014727/http://www.crockford.com/JSON/xml.html">https://web.archive.org/web/20021223014727/http://www.crockford.com/JSON/xml.html</anchor-external></li></ul></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="322" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[322]</anchor-end> 
<time>西暦2006年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2006</attrvalue></time>に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
で
<dfn><cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor></cite></dfn>
として<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化</anchor>されました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en">RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4627">http://tools.ietf.org/html/rfc4627</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> 
<time>西暦2009年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2009</attrvalue></time>の
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor></cite> は、 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor></cite> を引用しつつも独自に構文や解釈を規定しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="323" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[323]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor></cite> を実装しており、現在ではこちらが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 
の定義として参照されるべきものでしょう。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <cite>Annotated ES5</cite><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">5.1.5 The JSON Grammar</csection> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://es5.github.com/#x5.1.5">http://es5.github.com/#x5.1.5</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <strong><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">15.12 The JSON Object</csection> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://es5.github.com/#x15.12">http://es5.github.com/#x15.12</anchor-external></strong></li></ul></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="163" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[163]</anchor-end> その後 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></cite> が出版されました。 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES6</anchor></cite> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を参照するように改められています。
ただし <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></code> オブジェクトや構文解析、直列化の方法は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES</anchor> 側に残されています。</p><section><h1>ietf-json と ECMA-404</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="194" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[194]</anchor-end> 2013年の初め頃、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> において <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> を改訂して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化過程</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
とすることを目指す動きが起こり、 <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> JSON <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">作業部会<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">working group</rt></rubyb></dfn>
(<dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor></dfn>) が組織されました。細かな修正もありますが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Informational</anchor> から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化過程</anchor>に移すことで、
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の標準化手続き上) より他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化過程</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> から参照しやすくすることが主たる目的だったようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="195" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[195]</anchor-end> 当初は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の考案者で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> の著者でもある <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Douglas Crockford</anchor>
も協力する姿勢を見せていましたが、改訂の方向性に納得がいかなかったのか、2013年の中頃には関わらないようになります。
その理由は明言していませんし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メーリングリスト</anchor>の記事をみても議論がはっきり決裂しているわけではないのですが、
Douglas が意図的に曖昧にし (各言語・環境の) 実装に委ねている箇所を特定の解釈に固定したり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>や拡張によって非互換な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>を作ろうとしたりする動きに賛成しかねているようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="196" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[196]</anchor-end> 2013年の夏、 Douglas と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TC 39</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> の標準化コミュニティー) は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5.1</anchor>
における <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の定義を元にした独立した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の仕様書を作成し、数週間で <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></dfn>
として出版されました。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES6</anchor> からは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の定義は削除され、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を参照する形に改められました。
ただし <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor></code> オブジェクトの定義や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> との相互変換の定義は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES6</anchor>
側に残されています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="469" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[469]</anchor-end> <time xmlns="http://www.w3.org/1999/xhtml">西暦2013年10月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2013-10</attrvalue></time>に郵便投票で承認されました。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="197" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[197]</anchor-end> この (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> では考えられないくらいに) 素早い新仕様の出版に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Tim Bray</anchor> ら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor>
側の関係者は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の標準化を行っているのは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor> であって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TC 39</anchor> では無い、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TC 39</anchor> とは協力関係にあったはずなのに連絡もなかったなどと非難しますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TC 39</anchor> 側はほとんど相手にしていません。互いの仕様の不備を主張し合うなど、両者の溝は埋まりません。
そこへ一見無関係な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W3C</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TAG</anchor> も乱入してきて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の改訂版は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の定義を参照するべきとするコメントを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
側に送付するなど、ちょっとした騒ぎになりました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="198" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[198]</anchor-end> 結局 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の改訂版は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を参照していますが、違いを説明するために引用しているに過ぎず、
独自に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> を定義しています。ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 全体は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配列</anchor>だけでなく、
任意の値となるよう拡張されました (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> と同等になりました。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;47</anchor-internal>、<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;101</anchor-internal> を参照。)
その他にも旧 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> にない規定が追加されています。更に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
の拡張や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>を定義することが引き続き <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor> で検討されています。
こうして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> によって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fork</anchor> されました。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="179" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[179]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Coordinating publication of 4627bis with ECMA</cite>
( (<time>2013-05-17 10:20:05 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00267.html">http://www.ietf.org/mail-archive/web/json/current/msg00267.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="180" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[180]</anchor-end> <cite xml:lang="en">charter-ietf-json-01</cite>
( (<time>2013-10-21 05:27:10 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/charter-ietf-json/">https://datatracker.ietf.org/doc/charter-ietf-json/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="181" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[181]</anchor-end> <cite xml:lang="en">JavaScript Object Notation (json) - Charter</cite>
( (<time>2013-10-21 05:28:37 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/wg/json/charter/">https://datatracker.ietf.org/wg/json/charter/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="182" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[182]</anchor-end> <cite>json Discussion Archive - Thread Index</cite>
( (<time>2013-10-23 18:32:14 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/threads.html">http://www.ietf.org/mail-archive/web/json/current/threads.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="183" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[183]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Possible next work for the WG</cite>
( (<time>2013-10-16 19:21:19 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01856.html">http://www.ietf.org/mail-archive/web/json/current/msg01856.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="184" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[184]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Authorship</cite>
( (<time>2013-09-27 18:20:05 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01623.html">http://www.ietf.org/mail-archive/web/json/current/msg01623.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="185" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[185]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> JSON &amp; ECMA</cite>
( (<time>2013-03-19 21:22:04 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00222.html">http://www.ietf.org/mail-archive/web/json/current/msg00222.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="186" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[186]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Two Documents</cite>
( (<time>2013-06-18 14:21:41 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00822.html">http://www.ietf.org/mail-archive/web/json/current/msg00822.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="187" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[187]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Two Documents</cite>
( (<time>2013-06-19 14:52:20 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00894.html">http://www.ietf.org/mail-archive/web/json/current/msg00894.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="188" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[188]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> 2-step proposal 4627bis + I-JSON</cite>
( (<time>2013-07-08 16:50:03 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01145.html">http://www.ietf.org/mail-archive/web/json/current/msg01145.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="189" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[189]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Consensus call: document title</cite>
( (<time>2013-06-24 16:20:15 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00916.html">http://www.ietf.org/mail-archive/web/json/current/msg00916.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="190" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[190]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> What are we trying to do?</cite>
( (<time>2013-07-03 20:21:08 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01087.html">http://www.ietf.org/mail-archive/web/json/current/msg01087.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="191" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[191]</anchor-end> <cite>Appropriate list for JSON standardization disussion</cite>
( (<time>2013-06-21 04:11:18 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mail.mozilla.org/pipermail/es-discuss/2013-June/031070.html">https://mail.mozilla.org/pipermail/es-discuss/2013-June/031070.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="126" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[126]</anchor-end> ( (<time>2013-03-11 16:24:22 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/proceedings/86/slides/slides-86-json-2.pdf">http://www.ietf.org/proceedings/86/slides/slides-86-json-2.pdf</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> <cite><strong></strong>[<strong></strong>apps-discuss<strong></strong>]<strong></strong> JSON mailing list and BoF</cite>
( (<time>2013-02-19 20:50:03 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/apps-discuss/current/msg08912.html">http://www.ietf.org/mail-archive/web/apps-discuss/current/msg08912.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[131]</anchor-end> <cite xml:lang="en">Next Steps on JSON + Proposed TAG Resolution</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Appelquist Daniel (UK)</anchor> 著, <time>2013-10-18 04:39:12 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Oct/0029.html">http://lists.w3.org/Archives/Public/www-tag/2013Oct/0029.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="133" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[133]</anchor-end> <cite xml:lang="en">draft-ietf-json-rfc4627bis-04 - The JSON Data Interchange Format</cite>
( (<time>2013-10-14 08:15:24 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/draft-ietf-json-rfc4627bis-04">http://tools.ietf.org/html/draft-ietf-json-rfc4627bis-04</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</anchor-end> <cite xml:lang="en">draft-ietf-json-rfc4627bis-06 - The JSON Data Interchange Format</cite>
( (<time>2013-10-16 22:34:48 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/draft-ietf-json-rfc4627bis-06">http://tools.ietf.org/html/draft-ietf-json-rfc4627bis-06</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> <cite xml:lang="en">Re: XHR vs JSON, was: Next Steps on JSON + Proposed TAG Resolution</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Bjoern Hoehrmann</anchor> 著, <time>2013-10-18 21:47:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Oct/0037.html">http://lists.w3.org/Archives/Public/www-tag/2013Oct/0037.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> I-JSON vs. JSON-S</cite>
( (<time>2013-07-08 16:50:05 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01206.html">http://www.ietf.org/mail-archive/web/json/current/msg01206.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Comments on proposed charter for JSON</cite>
( (<time>2013-03-01 20:54:39 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg00193.html">http://www.ietf.org/mail-archive/web/json/current/msg00193.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="139" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[139]</anchor-end> <cite xml:lang="en">Re: Next Steps on JSON + Proposed TAG Resolution</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Tim Bray</anchor> 著, <time>2013-10-19 00:01:07 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Oct/0041.html">http://lists.w3.org/Archives/Public/www-tag/2013Oct/0041.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> <cite xml:lang="en">Technical Architecture Group Teleconference -- 02 Oct 2013</cite>
( (<time>2013-10-03 12:30:11 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/2001/tag/2013/10/02-minutes.html#item03">http://www.w3.org/2001/tag/2013/10/02-minutes.html#item03</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> <cite>tc39-notes/es6/2013-03/mar-12.md at master · rwaldron/tc39-notes</cite>
( (<time>2013-10-21 05:06:57 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-03/mar-12.md#49-json-ietf-changes">https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-03/mar-12.md#49-json-ietf-changes</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> <cite>tc39-notes/es6/2013-07/july-24.md at master · rwaldron/tc39-notes</cite>
( (<time>2013-10-21 05:13:50 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-07/july-24.md#9-json-continued">https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-07/july-24.md#9-json-continued</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> <cite xml:lang="en">Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> FYI ECMA, W3C, IETF coordination on JSON</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Allen Wirfs-Brock</anchor> 著, <time>2013-10-09 04:37:43 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Oct/0015.html">http://lists.w3.org/Archives/Public/www-tag/2013Oct/0015.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> <cite xml:lang="en">Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> FYI ECMA, W3C, IETF coordination on JSON</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">John Cowan</anchor> 著, <time>2013-10-09 01:42:19 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Oct/0007.html">http://lists.w3.org/Archives/Public/www-tag/2013Oct/0007.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Streaming JSON parsers</cite>
( (<time>2013-07-03 06:50:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01090.html">http://www.ietf.org/mail-archive/web/json/current/msg01090.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Streaming JSON parsers</cite>
( (<time>2013-07-03 06:50:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg01090.html">http://www.ietf.org/mail-archive/web/json/current/msg01090.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> <cite>JSON Duplicate Keys</cite>
( (<time>2013-06-21 04:11:18 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mail.mozilla.org/pipermail/es-discuss/2013-June/031057.html">https://mail.mozilla.org/pipermail/es-discuss/2013-June/031057.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="149" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[149]</anchor-end> <cite>JSON specification WAS: Re: JSON Duplicate Keys</cite>
( (<time>2013-06-21 04:11:18 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mail.mozilla.org/pipermail/es-discuss/2013-June/031063.html">https://mail.mozilla.org/pipermail/es-discuss/2013-June/031063.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="150" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[150]</anchor-end> <cite>May 21, 22, 23 TC39 Meeting Notes</cite>
( (<time>2013-06-21 04:11:18 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mail.mozilla.org/pipermail/es-discuss/2013-June/030958.html">https://mail.mozilla.org/pipermail/es-discuss/2013-June/030958.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> <cite xml:lang="en">JSON feedback we could submit</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne van Kesteren</anchor> 著, <time>2013-11-11 12:08:26 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Nov/0061.html">http://lists.w3.org/Archives/Public/www-tag/2013Nov/0061.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="152" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[152]</anchor-end> <cite xml:lang="en">JSON: remove gap between Ecma-404 and IETF draft</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Anne van Kesteren</anchor> 著, <time>2013-11-12 16:01:30 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Nov/0074.html">http://lists.w3.org/Archives/Public/www-tag/2013Nov/0074.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="153" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[153]</anchor-end> <cite xml:lang="en">Concerns from the W3C Technical Architecture Group regarding JSON</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Philippe Le Hegaret</anchor> 著, <time>2013-11-27 07:31:33 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/public-ietf-w3c/2013Nov/0000.html">http://lists.w3.org/Archives/Public/public-ietf-w3c/2013Nov/0000.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="155" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[155]</anchor-end> <cite xml:lang="en">Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Consensus on JSON-text (WAS: JSON: remove gap between  Ecma-404 and IETF draft)</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Tim Bray</anchor> 著, <time>2013-11-28 09:13:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.w3.org/Archives/Public/www-tag/2013Nov/0204.html">http://lists.w3.org/Archives/Public/www-tag/2013Nov/0204.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="156" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[156]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Response to Statement from Ecma International TC39</cite>
( (<time>2013-12-06 16:51:36 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg02131.html">http://www.ietf.org/mail-archive/web/json/current/msg02131.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="157" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[157]</anchor-end> <cite xml:lang="en">TAG Teleconference -- 05 Dec 2013</cite>
( (<time>2013-12-09 15:52:58 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/2001/tag/2013/12/05-minutes.html">http://www.w3.org/2001/tag/2013/12/05-minutes.html</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="202" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[202]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Tim Bray</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor> による <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の改訂版は、2014年3月に <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7158</anchor></dfn> 
として出版されました。ところがこのとき <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor> が誤って日付を「201<strong>3</strong>年3月」
としてしまったため、すぐに修正して <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor></dfn> として再出版されました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="203" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[203]</anchor-end> これだけでも前代未聞の珍事ですが、どうやら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor> も相当慌てていたらしく、
当初の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は Errata のリンクや <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IANA Considerations</anchor> の章の記述が「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 715<strong xmlns="http://www.w3.org/1999/xhtml">8</strong></anchor>」
のままになっていました。それらを修正したものがすぐに <strong><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> のまま</strong>再出版されました。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="205" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[205]</anchor-end> この旧版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は2014年3月20日の時点で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google</anchor> のキャッシュに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
版と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PDF</anchor> 版が残っています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor> のサイトでも <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="204" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;204</anchor-internal> には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PDF</anchor>
版がまだ残っています。イレギュラーな操作で改版してここだけ差し替えを忘れているのでしょうか。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="206" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[206]</anchor-end> さすがに3つ目の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を発行することは憚られたのでしょうが、一度出版した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
を置き換えないというポリシーを守るために日付だけ書き換えた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を再発行し、
日付が間違った <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を (廃止状態とはいえ) 放置したり、
その直後にポリシーを歪めてより多くの箇所を変更した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を同じ番号で改版したりと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の発行手続きの運用上の大きな問題を曝け出す形になりましたが、なぜか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
界隈ではそれほど重大な問題として取り上げられていないようです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[207]</anchor-end> このような再出版に関する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor> と著者の間のやり取りも個別に行われていたと見られ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ietf-json</anchor> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メーリングリスト</anchor>には記録は特に残っていません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="209" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[209]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="201" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;201</anchor-internal> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7158</anchor> と新版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> の差分です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="210" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[210]</anchor-end> このような流れを皮肉ってか、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> への <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Errata</anchor> として、
“全文を削除して「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7158</anchor> 参照」に置き換える”という修正案まで提案されています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="263" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;263</anchor-internal>)。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="262" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[262]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="210" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;210</anchor-internal> は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="208" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;208</anchor-internal> に掲載されていたのですが、
残念なことにいつの間にか (却下ではなく) 削除されてしまいました。
なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7158</anchor> に対して報告されていた Errata 2件 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="264" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;264</anchor-internal>、<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;265</anchor-internal>)
も (却下ではなく) 削除されています。現時点で残っているのは
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> に対する <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="266" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;266</anchor-internal> だけです。 <time xmlns="http://www.w3.org/1999/xhtml">2014-04-02T07:23:09.00Z</time></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="212" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[212]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="211" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;211</anchor-internal> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> と新版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> の差分です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="199" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[199]</anchor-end> <cite xml:lang="en">RFC 7158 - The JavaScript Object Notation (JSON) Data Interchange Format</cite> (<time>2014-03-04 16:52:46 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7158">http://tools.ietf.org/html/rfc7158</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="200" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[200]</anchor-end> <cite xml:lang="en">RFC 7159 - The JavaScript Object Notation (JSON) Data Interchange Format</cite> (<time>2014-03-07 18:11:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7159">http://tools.ietf.org/html/rfc7159</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="201" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[201]</anchor-end> <cite>wdiff rfc7158.txt rfc7159.txt</cite> (<time>2014-03-23 09:55:50 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url1=rfc7158&amp;url2=rfc7159">http://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url1=rfc7158&amp;url2=rfc7159</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="204" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[204]</anchor-end> (<time>2014-03-03 10:54:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.rfc-editor.org/pdfrfc/rfc7159.txt.pdf">http://www.rfc-editor.org/pdfrfc/rfc7159.txt.pdf</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="171" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[171]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">魚拓</anchor> ( (<time>2014-03-20 16:10:57 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://megalodon.jp/2014-0321-0110-13/www.rfc-editor.org/pdfrfc/rfc7159.txt.pdf">http://megalodon.jp/2014-0321-0110-13/www.rfc-editor.org/pdfrfc/rfc7159.txt.pdf</anchor-external></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="211" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[211]</anchor-end> <cite>wdiff rfc4627.txt rfc7159.txt</cite> (<time>2014-03-23 10:19:06 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url1=rfc4627&amp;url2=rfc7159">http://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url1=rfc4627&amp;url2=rfc7159</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="264" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[264]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> [Technical Errata Reported] RFC7158 (3907)</cite> (<time>2014-03-04 15:22:08 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg02522.html">http://www.ietf.org/mail-archive/web/json/current/msg02522.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[265]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> [Technical Errata Reported] RFC7158 (3908)</cite> (<time>2014-03-03 10:55:34 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg02523.html">http://www.ietf.org/mail-archive/web/json/current/msg02523.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="208" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[208]</anchor-end> <cite>RFC Errata Report</cite> (<time>2014-03-23 10:16:41 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.rfc-editor.org/errata_search.php?rfc=7159">http://www.rfc-editor.org/errata_search.php?rfc=7159</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="266" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[266]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> [Technical Errata Reported] RFC7159 (3915)</cite> (<time>2014-03-13 15:52:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg02546.html">http://www.ietf.org/mail-archive/web/json/current/msg02546.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="263" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[263]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> [Editorial Errata Reported] RFC7159 (3922)</cite> (<time>2014-03-20 02:50:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg02726.html">http://www.ietf.org/mail-archive/web/json/current/msg02726.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="168" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[168]</anchor-end> <cite xml:lang="en">ongoing by Tim Bray · JSON Redux AKA RFC7159</cite>
( (<time>2014-03-18 02:26:29 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.tbray.org/ongoing/When/201x/2014/03/05/RFC7159-JSON">https://www.tbray.org/ongoing/When/201x/2014/03/05/RFC7159-JSON</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="170" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[170]</anchor-end> <cite>RFC 7159 — the JSON Data Interchange Format</cite>
( (<time>2014-03-04 17:33:33 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://rfc7159.net/">http://rfc7159.net/</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="246" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[246]</anchor-end> なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> には誤って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 607</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3607</anchor> を参照しているというおもしろ不具合があります。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="314" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[314]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> - The JavaScript Object Notation (JSON) Data Interchange Format</cite> (<time>2015-07-12 00:13:37 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7159">http://tools.ietf.org/html/rfc7159</anchor-external></li></ul></refs></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end>
<cite>Introducing JSON</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.crockford.com/JSON/">http://www.crockford.com/JSON/</anchor-external></p><blockquote><p><code>JSON</code> (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.</p></blockquote><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> リンク切れ <time xmlns="http://www.w3.org/1999/xhtml">2011-08-24T11:10:03.000Z</time></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end>
<em>Semantic Interpretation for Speech Recognition (SISR) Version 1.0</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/semantic-interpretation/#SI7">http://www.w3.org/TR/semantic-interpretation/#SI7</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2006-01-19 03:31:05 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> 明記されていないけど <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BOM</anchor> は使えないということでおk?
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end>
不適合文書の扱いも明記されていないけど、構文解析器は不適合も処理して<strong>構わない</strong>ことになっているから、
適当に理解するなりはじくなりでおk?
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サロゲート・ペア</anchor>の片割れだけが escape されている場合は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal>?</p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end>
<cite xml:lang="ja-JP">Matzにっき(2007-04-16)</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Yukihiro -matz- Matsumoto</anchor> 著, <code>2007-04-23 23:58:26 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.rubyist.net/~matz/20070416.html#p01">http://www.rubyist.net/~matz/20070416.html#p01</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2007-05-05 03:25:51 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end>
<cite xml:lang="en">JSONLint - The JSON Validator.</cite> (<time>2008-06-22 12:32:25 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.jsonlint.com/">http://www.jsonlint.com/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20090906</cite>
(<time>2009-10-17 22:08:59 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20090906">http://krijnhoetmer.nl/irc-logs/whatwg/20090906</anchor-external></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構文解析</anchor>における互換性について。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は非標準の拡張を理解することを認めている。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor> はより厳密に定義している。古い案では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈</anchor>を認めていたが、
非標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指令</anchor>の埋込みに使われるようになったため、結局認めないことになった。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite>as3corelib の JSON.decode() をいい加減な JSON に対応させる - てっく煮ブログ</cite>
(<time>2010-01-01 12:15:16 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/nitoyon/20091228/as3corelib_lazy_json">http://d.hatena.ne.jp/nitoyon/20091228/as3corelib_lazy_json</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20100104</cite>
(<time>2010-01-06 08:11:05 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20100104#l-342">http://krijnhoetmer.nl/irc-logs/whatwg/20100104#l-342</anchor-external></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>について。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> はデータ型と構文上の要素と字句の関係を半ば暗黙のものとして扱っていて、
何がどう解釈されるかといったことを明確に規定していません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> こういうのが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Hixie</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BNF</anchor> を使わない理由の1つだよなー。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> <cite>PHPのイタい入門書を読んでAjaxのXSSについて検討した(3)~JSON等の想定外読み出しによる攻撃~ - ockeghem(徳丸浩)の日記</cite>
(<time>2011-09-15 11:02:11 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/ockeghem/20110907/p1">http://d.hatena.ne.jp/ockeghem/20110907/p1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> <cite xml:lang="en-US">An update is available for the native JSON feature in Internet Explorer 8</cite>
(<time>2011-10-05 11:52:02 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://support.microsoft.com/kb/976662/en-us">http://support.microsoft.com/kb/976662/en-us</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> <cite xml:lang="en">Native JSON in IE8 - IEBlog - Site Home - MSDN Blogs</cite>
(<time>2011-10-05 11:52:24 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://blogs.msdn.com/b/ie/archive/2008/09/10/native-json-in-ie8.aspx">http://blogs.msdn.com/b/ie/archive/2008/09/10/native-json-in-ie8.aspx</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20111005</cite>
( (<time>2011-10-06 22:50:15 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20111005#l-204">http://krijnhoetmer.nl/irc-logs/whatwg/20111005#l-204</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> <cite xml:lang="en">draft-pbryan-http-json-resource-01 - A Convention for HTTP Access to JSON Resources</cite>
( (<time>2012-02-05 13:38:13 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/draft-pbryan-http-json-resource-01">http://tools.ietf.org/html/draft-pbryan-http-json-resource-01</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> <cite xml:lang="ja">JSONIC - simple json encoder/decoder for java</cite>
( (<time>2012-02-12 13:26:51 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://jsonic.sourceforge.jp/#liberalparsing">http://jsonic.sourceforge.jp/#liberalparsing</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <cite>dominictarr/JSON.sh · GitHub</cite>
( (<time>2012-03-12 23:04:45 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/dominictarr/JSON.sh">https://github.com/dominictarr/JSON.sh</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> <cite>JSON::XSで作られる浮動小数点数でハマった話 - 北海道苫小牧市出身のPGが書くブログ</cite>
( (<time>2012-10-24 11:49:48 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/hiratara/20121024/1351054828">http://d.hatena.ne.jp/hiratara/20121024/1351054828</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[128]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> asynchronous JSON.parse and sending large structured data between threads without compromising responsiveness</cite>
( (<time>2013-08-06 23:47:37 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040391.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040391.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> <cite xml:lang="en">RFC 6839 - Additional Media Type Structured Syntax Suffixes</cite>
( (<time>2013-06-28 00:23:48 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6839#section-3.1">http://tools.ietf.org/html/rfc6839#section-3.1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</anchor-end> <cite xml:lang="EN">XSL Transformations (XSLT) Version 3.0</cite>
( (<time>2012-07-10 14:04:59 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xslt-30/#func-parse-json">http://www.w3.org/TR/xslt-30/#func-parse-json</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="154" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[154]</anchor-end> <cite>twitterのXSSとJSON in ECMAScriptと外部JSONを安全に取り扱うためのアプローチ - 金利0無利息キャッシング – キャッシングできます - subtech</cite>
( (<time>2013-12-03 04:59:58 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://subtech.g.hatena.ne.jp/mala/20101122/1290436563">http://subtech.g.hatena.ne.jp/mala/20101122/1290436563</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="164" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[164]</anchor-end> <cite xml:lang="en">PostgreSQL: Documentation: 9.3: JSON Functions and Operators</cite>
( (<time>2013-12-17 07:19:21 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.postgresql.org/docs/9.3/static/functions-json.html">http://www.postgresql.org/docs/9.3/static/functions-json.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="166" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[166]</anchor-end> <cite>Twitter の JSON に罪はない - ぐま あーかいぶ</cite>
( (<time>2014-01-06 18:51:36 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://archive.guma.jp/2010/12/twitter-json.html">http://archive.guma.jp/2010/12/twitter-json.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="167" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[167]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20140319</cite>
( (<time>2014-03-20 20:29:26 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20140319#l-228">http://krijnhoetmer.nl/irc-logs/whatwg/20140319#l-228</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="259" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[259]</anchor-end> <cite xml:lang="en-US">JSON JavaScript Object Notation - Yahoo Groups</cite>
( (<time>2014-03-24 09:51:04 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://groups.yahoo.com/neo/groups/json/conversations/messages/1977">https://groups.yahoo.com/neo/groups/json/conversations/messages/1977</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="260" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[260]</anchor-end> <cite xml:lang="en-US">JSON JavaScript Object Notation - Yahoo Groups</cite>
( (<time>2014-03-24 09:51:44 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://groups.yahoo.com/neo/groups/json/conversations/messages/1966">https://groups.yahoo.com/neo/groups/json/conversations/messages/1966</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="274" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[274]</anchor-end> <cite xml:lang="en">RedHanded » YAML is JSON</cite>
( (<time>2011-08-08 03:18:33 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://viewsourcecode.org/why/redhanded/inspect/yamlIsJson.html">http://viewsourcecode.org/why/redhanded/inspect/yamlIsJson.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="280" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[280]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Call for Volunteers for Liaison Manager to ECMA TC39</cite>
( (<time>2014-06-18 15:21:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03027.html">http://www.ietf.org/mail-archive/web/json/current/msg03027.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="283" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[283]</anchor-end> <cite>JsonWireProtocol - selenium - A description of the protocol used by WebDriver to communicate with remote instances - Browser automation framework - Google Project Hosting</cite>
( (<time>2014-10-30 06:28:02 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://code.google.com/p/selenium/wiki/JsonWireProtocol#Commands">https://code.google.com/p/selenium/wiki/JsonWireProtocol#Commands</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="293" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[293]</anchor-end> <cite xml:lang="en">Draft 1: OAuth Extension for Response Data Format - Draft 1</cite>
(<time>2008-09-10 03:31:09 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://oauth.googlecode.com/svn/spec/ext/response_data_format/1.0/drafts/1/oauth_response_data_format_ext.html">http://oauth.googlecode.com/svn/spec/ext/response_data_format/1.0/drafts/1/oauth_response_data_format_ext.html</anchor-external></figcaption><blockquote><p>'Content-Type' HTTP response header value MUST be :</p><p>Content-Type: text/json</p></blockquote></figure></section><section><h1>RFC 8259 へ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="291" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[291]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> FYI: January 28 2015 Meeting Notes</cite>
(<time>2015-02-12 03:50:54 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03632.html">http://www.ietf.org/mail-archive/web/json/current/msg03632.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="296" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[296]</anchor-end> <cite xml:lang="en-US">Noggit, the JSON Streaming Parser - Solr 'n Stuff</cite>
(<time>2015-03-29 20:05:45 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://yonik.com/noggit-json-parser/">http://yonik.com/noggit-json-parser/</anchor-external></figcaption><blockquote><p>Noggit supports a number of extensions to the JSON grammar. All of these extensions are optional and may be disabled.</p><p>Comments</p><p>{ // This is a single line comment</p><p>  # This is also a single line comment</p><p>  /* This is a multi-line</p><p>   * C-style comment.</p><p>   */</p><p>}</p><p>Unquoted Strings</p><p>{</p><p>  first : Yonik,</p><p>  last : Seeley</p><p>}</p><p>Single Quoted Strings</p><p>JSON strings are normally encapsulated by double quotes. It’s often desirable to use single quotes if for example you are embedding some JSON in another double quoted string in a program.</p><p><strong>[</strong>'how', 'now', 'brown', 'cow<strong>']</strong></p><p>Backslash escape any character</p><p>Sometimes one may not know exactly what characters need to be backslash escaped. It can be useful to accept this without throwing an exception.</p><p>'This is just a &quot; string'</p><p>Trailing commas / extra commas</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="297" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[297]</anchor-end> <cite>flow.io API Reference</cite>
(<time>2011-11-28 06:10:46 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://flow.io/api.html">http://flow.io/api.html</anchor-external></figcaption><blockquote><p>Although flow outputs standard JSON, quotes and curly braces are omitted in the sample JSON listings in this document to make them easier to read. We call this light JSON format &quot;JSON-L&quot;.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="299" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[299]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Closing of the group</cite>
(<time>2015-03-24 23:51:07 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03646.html">http://www.ietf.org/mail-archive/web/json/current/msg03646.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="302" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[302]</anchor-end> <cite xml:lang="en-US">Archive</cite>
(<time>2015-07-11 09:10:29 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mailarchive.ietf.org/arch/msg/ietf-announce/Kd_XXq_67T-iqyGOXGnVgXJbIxk">https://mailarchive.ietf.org/arch/msg/ietf-announce/Kd_XXq_67T-iqyGOXGnVgXJbIxk</anchor-external></figcaption><blockquote><p>The JSON working group will have as its only task the minor</p><p>revision of RFC 7159 to bring it to Internet Standard, and fully</p><p>acknowledge the syntax definition in ECMA-404. The work is essentially</p><p>a reclassification in place, with absolute minimal changes, though those</p><p>changes will require publication of a new RFC.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="303" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[303]</anchor-end> <cite xml:lang="en-US">Mail Archive</cite>
(<time>2015-07-11 09:10:48 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mailarchive.ietf.org/arch/search/?email_list=json">https://mailarchive.ietf.org/arch/search/?email_list=json</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="304" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[304]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> WG Action: Formed Javascript Object Notation Update (jsonbis)</cite>
(<time>2015-07-06 05:21:17 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03665.html">http://www.ietf.org/mail-archive/web/json/current/msg03665.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="313" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[313]</anchor-end> <cite xml:lang="en">JSON can also be 1 or false or &quot;hi!&quot; · whatwg/fetch@1a1b977</cite>
(<time>2015-08-12 11:20:38 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/1a1b977b65afbaf5f6d55cff4ee29246db05abb1">https://github.com/whatwg/fetch/commit/1a1b977b65afbaf5f6d55cff4ee29246db05abb1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="329" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[329]</anchor-end> <cite xml:lang="en">1201632 – iframe does not fire onload when 404 is not text/html or text/plain</cite>
(<time>2015-09-30 23:09:57 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1201632">https://bugzilla.mozilla.org/show_bug.cgi?id=1201632</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="330" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[330]</anchor-end> <cite xml:lang="en">Increase the number of MIME types rendered as text · Issue #124 · whatwg/html</cite>
(<time>2015-09-30 23:10:07 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/issues/124">https://github.com/whatwg/html/issues/124</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="332" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[332]</anchor-end> <cite xml:lang="en">Fix #124: make more types follow text/plain navigate logic · whatwg/html@f94f3c4</cite> (<time>2015-10-01 00:44:06 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/f94f3c4595fbc5fecb747ef52f46cdc5f2b3feec">https://github.com/whatwg/html/commit/f94f3c4595fbc5fecb747ef52f46cdc5f2b3feec</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="334" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[334]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Kicking Off JSONbis</cite>
(<time>2015-10-07 15:20:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03673.html">http://www.ietf.org/mail-archive/web/json/current/msg03673.html</anchor-external></figcaption><blockquote><p>The WG charter is at &lt; https://datatracker.ietf.org/wg/jsonbis/charter/ &gt;.</p><p>In a nutshell, the goal of this effort is to produce a bis to 7159 that:</p><p>* promotes JSON to IETF Internet Standard</p><p>* references ECMA-404 and is a reference for ECMA-404</p><p>Tim Bray has agreed to edit 7159bis.</p><p>As a start, I propose we start with rfc7159 and:</p><p>1) Apply verified errata from &lt; https://www.rfc-editor.org/errata_search.php?rfc=7159 &gt;</p><p>2) Change the reference to ECMA-404 from informative to normative</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="336" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[336]</anchor-end> <cite xml:lang="en">draft-ietf-jsonbis-rfc7159bis-00 - The JavaScript Object Notation (JSON) Data Interchange Format</cite>
(<time>2015-10-20 17:14:40 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/draft-ietf-jsonbis-rfc7159bis-00">https://tools.ietf.org/html/draft-ietf-jsonbis-rfc7159bis-00</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="337" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[337]</anchor-end> <cite>Re: <strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Kicking Off JSONbis</cite>
(<time>2015-10-19 16:52:42 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03693.html">http://www.ietf.org/mail-archive/web/json/current/msg03693.html</anchor-external></figcaption><blockquote><p>I have really major heartburn with introducing a Normative Reference to ECMA404 in 7159bis.  Because language in standards documents should be used carefully, and “Normative Reference” has a very specific meaning, and that meaning clearly does not apply in this case.  However, since there is apparently a feeling that there is some benefit to the community in achieving “standards harmony”, let me propose three ways forward:</p><p>1. Include a normative reference to ECMA404, but accompany it with text explaining that this reference is marked normative because it is considered authoritative in the community of _javascript_ language specifiers, not in the normal sense of “normative”; there is no necessity to read it in order too understand or implement RFC7159bis, nor does it specify any technology which must be present in an implementation that is not also described in 7159bis.”</p><p>2. Do not include a normative reference, but expand the note about ECMA404 in Section 1.2 to emphasize that ECMA404 may be considered authoritative in the community of _javascript_ implementers.</p><p>3. Conclude that this effort has no observable benefit to the community implementing JSON on the Internet and abandon the RFC7159bis project.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="338" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[338]</anchor-end> <cite xml:lang="en">Predictable Serialization for JSON Tools</cite>
(<time>2015-11-06 01:12:45 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://webpki.org/ietf/draft-rundgren-predictable-serialization-for-json-tools-00.html">http://webpki.org/ietf/draft-rundgren-predictable-serialization-for-json-tools-00.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="339" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[339]</anchor-end> <cite><strong></strong>[<strong></strong>Json<strong></strong>]<strong></strong> Normative reference reasoning and logistics</cite>
(<time>2015-11-17 18:21:05 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.ietf.org/mail-archive/web/json/current/msg03729.html">http://www.ietf.org/mail-archive/web/json/current/msg03729.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="340" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[340]</anchor-end> <cite>JSON Verbose Format (OData Version 3.0) · OData - the Best Way to REST</cite>
(<time>2015-10-28 12:33:47 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.odata.org/documentation/odata-version-3-0/json-verbose-format/">http://www.odata.org/documentation/odata-version-3-0/json-verbose-format/</anchor-external></figcaption><blockquote><p>To request this format using $format, use the value jsonverbose. To request this format using the Accept header, use the MIME type application/json;odata=verbose.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="345" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[345]</anchor-end> <cite xml:lang="en">Technical Architecture Group Teleconference -- 17 Oct 2013</cite>
(<time>2013-10-21 22:09:06 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/2001/tag/2013/10/17-minutes.html">http://www.w3.org/2001/tag/2013/10/17-minutes.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="346" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[346]</anchor-end> <cite xml:lang="en">add &quot;charset=utf-8&quot; to content-type &quot;application/json&quot; · Issue #383 · request/request</cite>
(<time>2016-01-15 21:51:36 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/request/request/issues/383">https://github.com/request/request/issues/383</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="347" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[347]</anchor-end> <cite xml:lang="en">encoding/json: serialization of angle brackets is incompatible with ES6 · Issue #14749 · golang/go</cite>
(<time>2016-03-15 16:35:34 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/golang/go/issues/14749">https://github.com/golang/go/issues/14749</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> jsonbis - Not having a session at IETF 96</cite>
( (<time>2016-06-03 23:50:11 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg03910.html">https://www.ietf.org/mail-archive/web/json/current/msg03910.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> Working Group Last Call of draft-ietf-jsonbis-rfc7159bis-02</cite>
(<time>2016-07-18 23:50:35 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg03940.html">https://www.ietf.org/mail-archive/web/json/current/msg03940.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> JSON irritants</cite>
(<time>2016-08-03 15:20:05 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg03961.html">https://www.ietf.org/mail-archive/web/json/current/msg03961.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="ja-jp">マイクロサービスのための綺麗なAPI設計 by Go Takagi | Wantedly Engineer Blog</cite>
(<time>2016-08-18 12:24:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.wantedly.com/companies/wantedly/post_articles/32977">https://www.wantedly.com/companies/wantedly/post_articles/32977</anchor-external></figcaption><blockquote><p>curlの場合</p><p>curl -i -H &quot;Accept: application/json; version=0.5&quot; -X GET http://localhost:8080/api/users</p><p>今回はversion&lt;1.0.0だとerrorを返すようにしました。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">RFC 7946 - The GeoJSON Format</cite>
(<time>2016-08-19 22:23:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7946">https://tools.ietf.org/html/rfc7946</anchor-external></figcaption><blockquote><p>Some examples use the combination of a JavaScript single-line comment</p><p>(//) followed by an ellipsis (...) as placeholder notation for</p><p>content deemed irrelevant by the authors.  These placeholders must of</p><p>course be deleted or otherwise replaced, before attempting to</p><p>validate the corresponding JSON code example.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="348" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[348]</anchor-end> <cite xml:lang="en">encoding/json: use standard ES6 formatting for numbers during marshal</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rsc</anchor>著, <time>2016-10-06 00:26:04 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/golang/go/commit/92b3e3651dc44f54b458f171f641779f10fbaec0">https://github.com/golang/go/commit/92b3e3651dc44f54b458f171f641779f10fbaec0</anchor-external></figcaption><blockquote><p>The only variation now compared to ES6 JSON.stringify is that</p><p>Go continues to encode negative zero as &quot;-0&quot;, not &quot;0&quot;, so that</p><p>the value continues to be preserved during JSON round trips.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="349" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[349]</anchor-end> <cite xml:lang="en">seriot.ch - Parsing JSON is a Minefield 💣</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Nicolas Seriot</anchor>著, <time>2016-12-07 20:40:12 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://seriot.ch/parsing_json.php">http://seriot.ch/parsing_json.php</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="350" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[350]</anchor-end> <cite xml:lang="en">nst/JSONTestSuite: A comprehensive test suite for RFC 7159 compliant JSON parsers</cite>
(<time>2016-12-07 20:40:46 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/nst/JSONTestSuite">https://github.com/nst/JSONTestSuite</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="351" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[351]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> Status of 7159bis</cite>
(<time>2017-01-08 17:50:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg03993.html">https://www.ietf.org/mail-archive/web/json/current/msg03993.html</anchor-external></figcaption><blockquote><p>I just noticed that the document went to state &quot;Publication Requested&quot; early December, with no notification of the working group, and (IMHO) some of the few feedback that the document received during WG LC being ignored </p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="352" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[352]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> の改訂版である <dfn>7159bis</dfn> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WG</anchor> に何の断りもなく
(未解決の問題もあるのに) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> に進もうとしている、と気づいて問い合わせていますが、
いつの間にか話がすり替えられて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA</anchor> との協調問題になっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> 側としてはさっさと <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を出版して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WG</anchor> を閉鎖したいようです。
そして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を出版すれば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> も改訂されると思っています (根拠は不明)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="312" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[312]</anchor-end> <cite xml:lang="ja">JSON データ (SQL Server)</cite>
(<time>2017-02-19 19:53:03 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/library/dn921897.aspx">https://msdn.microsoft.com/library/dn921897.aspx</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="354" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[354]</anchor-end> <cite xml:lang="EN">XPath and XQuery Functions and Operators 3.1</cite>
(<time>2017-03-21 16:02:06 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json">https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="355" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[355]</anchor-end> <cite xml:lang="EN">XPath and XQuery Functions and Operators 3.1</cite>
(<time>2017-03-21 16:02:06 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json-to-xml-mapping">https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json-to-xml-mapping</anchor-external></figcaption><blockquote><p>The input may contain deviations from the grammar of <strong>[</strong>RFC 7159<strong>]</strong>, which are handled in an ·implementation-defined· way. (Note: some popular extensions include allowing quotes on keys to be omitted, allowing a comma to appear after the last item in an array, allowing leading zeroes in numbers, and allowing control characters such as tab and newline to be present in unescaped form.) Since the extensions accepted are implementation-defined, an error may be raised <strong>[</strong>err:FOJS0001<strong>]</strong> if the input does not conform to the grammar.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="356" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[356]</anchor-end> <cite xml:lang="EN">XPath and XQuery Functions and Operators 3.1</cite>
(<time>2017-03-21 16:02:06 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json-to-xml-mapping">https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#json-to-xml-mapping</anchor-external></figcaption><blockquote><p>reject	An error is raised <strong>[</strong>err:FOJS0003<strong>]</strong> if duplicate keys are encountered.</p><p>use-first	If duplicate keys are present in a JSON object, all but the first of a set of duplicates are ignored.</p><p>use-last	If duplicate keys are present in a JSON object, all but the last of a set of duplicates are ignored.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="357" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[357]</anchor-end> <cite xml:lang="en">XSLT and XQuery Serialization 3.1</cite>
(<time>2017-03-20 12:35:18 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xslt-xquery-serialization-31-20170321/#json-output">https://www.w3.org/TR/2017/REC-xslt-xquery-serialization-31-20170321/#json-output</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="358" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[358]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> Last Call: &lt;draft-ietf-jsonbis-rfc7159bis-03.txt&gt; (The JavaScript Object Notation (JSON) Data Interchange Format) to Internet Standard</cite>
(<time>2017-03-04 02:20:43 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04022.html">https://www.ietf.org/mail-archive/web/json/current/msg04022.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="359" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[359]</anchor-end> <cite>Re: <strong>[</strong>Json<strong>]</strong> secdir review of draft-ietf-jsonbis-rfc7159bis-03</cite>
(<time>2017-03-13 00:50:43 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04046.html">https://www.ietf.org/mail-archive/web/json/current/msg04046.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="360" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[360]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> Call for Consensus: Proposed Text for &quot;8.1 Character Encoding&quot;</cite>
(<time>2017-03-17 05:51:32 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04062.html">https://www.ietf.org/mail-archive/web/json/current/msg04062.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="361" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[361]</anchor-end> <cite>Re: <strong>[</strong>Json<strong>]</strong> Call for Consensus: Proposed Text for &quot;8.1 Character Encoding&quot;</cite>
(<time>2017-03-19 18:50:08 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04101.html">https://www.ietf.org/mail-archive/web/json/current/msg04101.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="362" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[362]</anchor-end> <cite>Re: <strong>[</strong>Json<strong>]</strong> Call for Consensus: Proposed Text for &quot;8.1 Character Encoding&quot;</cite>
(<time>2017-03-28 13:50:24 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04126.html">https://www.ietf.org/mail-archive/web/json/current/msg04126.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="365" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[365]</anchor-end> <cite xml:lang="en">draft-wright-json-schema-hyperschema-01 - JSON Hyper-Schema: A Vocabulary for Hypermedia Annotation of JSON</cite>
(<time>2017-04-17 23:01:59 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/draft-wright-json-schema-hyperschema-01">https://tools.ietf.org/html/draft-wright-json-schema-hyperschema-01</anchor-external></figcaption><blockquote><p>Content-Type: application/json; profile=&quot;http://example.com/alpha&quot;</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="366" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[366]</anchor-end> <cite xml:lang="en">Issue 17906: JSON should accept lone surrogates - Python tracker</cite>
(<time>2017-05-03 18:29:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugs.python.org/issue17906">https://bugs.python.org/issue17906</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="369" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[369]</anchor-end> <cite xml:lang="en">Stand-Alone JSON Serialization</cite>
(<time>2017-06-01 22:23:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/en-us/library/bb412170(v=vs.110).aspx#mt154">https://msdn.microsoft.com/en-us/library/bb412170(v=vs.110).aspx#mt154</anchor-external></figcaption><blockquote><p>The conversion only takes place if the &quot;/&quot; characters are escaped (that is, the JSON looks like &quot;\/Date(700000+0500)\/&quot;), and for this reason WCF's JSON encoder (enabled by the WebHttpBinding) always escapes the &quot;/&quot; character.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="370" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[370]</anchor-end> <cite xml:lang="en">Mapping Between JSON and XML</cite>
(<time>2017-06-01 22:25:44 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/en-us/library/bb924435(v=vs.110).aspx">https://msdn.microsoft.com/en-us/library/bb924435(v=vs.110).aspx</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="371" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[371]</anchor-end> <cite>CircleCI API v1.1 Reference - CircleCI</cite>
(<time>2017-06-10 05:03:08 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://circleci.com/docs/api/v1-reference/">https://circleci.com/docs/api/v1-reference/</anchor-external></figcaption><blockquote><p>If you specify no accept header, we’ll return human-readable JSON with comments. If you prefer to receive compact JSON with no whitespace or comments, add the &quot;application/json&quot; Accept header. </p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="372" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[372]</anchor-end> <cite xml:lang="EN">XSL Transformations (XSLT) Version 3.0</cite>
(<time>2017-06-06 21:59:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xslt-30-20170608/#json">https://www.w3.org/TR/2017/REC-xslt-30-20170608/#json</anchor-external></figcaption><blockquote><p>RFC7159 is taken as the definitive specification of JSON for the purposes of this document. The RFC explains its relationship with other JSON specifications such as <strong>[</strong>ECMA-404<strong>]</strong>.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="374" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[374]</anchor-end> <cite xml:lang="EN">XSL Transformations (XSLT) Version 3.0</cite>
(<time>2017-06-06 21:59:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/TR/2017/REC-xslt-30-20170608/#json-to-xml-mapping">https://www.w3.org/TR/2017/REC-xslt-30-20170608/#json-to-xml-mapping</anchor-external></figcaption><blockquote><p>Many JSON implementations allow commas to be used after the last item in an object or array, although the specification does not permit it. The option spec=&quot;liberal&quot; is provided to allow such deviations from the specification to be accepted. Some JSON implementations also allow constructors such as new Date(&quot;2000-12-13&quot;) to appear as values: specifying spec=&quot;liberal&quot; allows such extensions to be accepted, but does not guarantee it. </p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="375" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[375]</anchor-end> 
「Many」というのは事実なのでしょうか。まあ most とはいっていないですし、
著者が many だと思えば many なのでしょうが...</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="378" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[378]</anchor-end> <cite xml:lang="en">Add frozen array types to the list of JSON types</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tobie</anchor>著, <time>2017-06-23 06:43:37 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/commit/375b588732858cbf5fd815e9df4ed78727d62c6c">https://github.com/heycam/webidl/commit/375b588732858cbf5fd815e9df4ed78727d62c6c</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="379" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[379]</anchor-end> <cite xml:lang="en">Add frozen array types to the list of JSON types by tobie · Pull Request #373 · heycam/webidl</cite>
(<time>2017-06-23 20:08:41 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/pull/373">https://github.com/heycam/webidl/pull/373</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="380" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[380]</anchor-end> <cite xml:lang="en">JSON clone: correct cycle detection</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">jugglinmike</anchor>著, <time>2017-06-07 01:04:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/fe771535f9839b3be4845fc87b9685f034d8af9f">https://github.com/w3c/webdriver/commit/fe771535f9839b3be4845fc87b9685f034d8af9f</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="381" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[381]</anchor-end> <cite xml:lang="en">ACTION-732: Investigate relationship between ECMA's JSON spec and IETF RFC 7159 - Efficient Extensible Interchange Working Group Tracker</cite>
(<time>2017-07-10 14:10:25 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/2005/06/tracker/exi/actions/732">https://www.w3.org/2005/06/tracker/exi/actions/732</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="382" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[382]</anchor-end> <cite>Re: <strong>[</strong>Json<strong>]</strong> Call for Consensus: Proposed Text for &quot;8.1 Character Encoding&quot;</cite>
(<time>2017-07-19 19:21:32 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04176.html">https://www.ietf.org/mail-archive/web/json/current/msg04176.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="383" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[383]</anchor-end> <cite xml:lang="en">JSON parsing is not a `tryable` function</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shs96c</anchor>著, <time>2017-08-30 21:02:11 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/f296a9966c726b4c4486cb8440e80b02557733c8">https://github.com/w3c/webdriver/commit/f296a9966c726b4c4486cb8440e80b02557733c8</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="385" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[385]</anchor-end> <cite xml:lang="en">Define parse JSON from bytes</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-09-29 22:54:34 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/commit/7af92770c9c5f89df3b201784cc45eee7c9e9a8b">https://github.com/whatwg/infra/commit/7af92770c9c5f89df3b201784cc45eee7c9e9a8b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="386" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[386]</anchor-end> <cite xml:lang="en">Define parse JSON from bytes by annevk · Pull Request #156 · whatwg/infra</cite>
(<time>2017-09-30 18:34:50 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/pull/156">https://github.com/whatwg/infra/pull/156</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="394" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[394]</anchor-end> <cite xml:lang="en">Use Infra for JSON parsing</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-09-29 21:18:40 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/d095af0ebb3343d294c37fab5c124b1a2534b6a6">https://github.com/whatwg/fetch/commit/d095af0ebb3343d294c37fab5c124b1a2534b6a6</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="395" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[395]</anchor-end> <cite xml:lang="en">Use Infra for JSON parsing by annevk · Pull Request #610 · whatwg/fetch</cite>
(<time>2017-10-06 15:01:39 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/pull/610">https://github.com/whatwg/fetch/pull/610</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="396" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[396]</anchor-end> <cite xml:lang="en">Use Infra for JSON parsing by annevk · Pull Request #153 · whatwg/xhr</cite>
(<time>2017-10-06 15:03:47 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/xhr/pull/153">https://github.com/whatwg/xhr/pull/153</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="397" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[397]</anchor-end> <cite xml:lang="en">Parse JSON from bytes · Issue #619 · w3c/manifest</cite>
(<time>2017-10-06 15:04:17 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/manifest/issues/619">https://github.com/w3c/manifest/issues/619</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="401" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[401]</anchor-end> <cite xml:lang="en">Meta: export FormData's concepts</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-10-11 18:23:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/xhr/commit/1937a2e5509e5a7b2dd933ef0f2e8fa599666ff2">https://github.com/whatwg/xhr/commit/1937a2e5509e5a7b2dd933ef0f2e8fa599666ff2</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="402" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[402]</anchor-end> <cite>Safari 10 の WebDriver ネイティブサポート - Qiita</cite>
(<time>2017-12-01 20:47:39 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/hiroshitoda/items/6ee3ad892357cda3f0e0">https://qiita.com/hiroshitoda/items/6ee3ad892357cda3f0e0</anchor-external></figcaption><blockquote><p>SafariDriverサーバーの スクリーンショットを取得するWebDriver API で返ってくるBASE64データが、ChromeDriverサーバーやGeckoDriverサーバーなどと違って、スラッシュ記号がエスケープされた状態になっています。これはJSON仕様としては正しい(エスケープしてもしなくてもいい)実装で、公式クライアントライブラリーもこれに対応して正しくスクリーンショットのデータを取得できる状態になっています。</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="403" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[403]</anchor-end> <cite>Standard ECMA-404</cite>
(<time>2017-12-06 18:21:33 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ecma-international.org/publications/standards/Ecma-404.htm">https://www.ecma-international.org/publications/standards/Ecma-404.htm</anchor-external></figcaption><blockquote><p>2nd edition (December 2017)</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="404" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[404]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> Corrected Announcement: STD 90, RFC 8259 on The JavaScript Object Notation (JSON) Data Interchange Format</cite>
(<time>2017-12-14 07:21:47 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04236.html">https://www.ietf.org/mail-archive/web/json/current/msg04236.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="405" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[405]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> <strong>[</strong>Editorial Errata Reported<strong>]</strong> RFC8259 (5210)</cite>
(<time>2017-12-19 02:52:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04238.html">https://www.ietf.org/mail-archive/web/json/current/msg04238.html</anchor-external></p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="325" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[325]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>: The JavaScript Object Notation (JSON) Data Interchange Format</cite>, <time>2022-09-03T12:55:13.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.rfc-editor.org/rfc/rfc8259.html">https://www.rfc-editor.org/rfc/rfc8259.html</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="326" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[326]</anchor-end> 
<cite>RFC Errata Report » <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor></cite>, <time>2022-09-03T12:55:26.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.rfc-editor.org/errata/rfc8259">https://www.rfc-editor.org/errata/rfc8259</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[353]</anchor-end> 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Diff</anchor>: rfc7159.txt - rfc8259.txt</cite>, <time>2022-09-03T13:00:16.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/rfcdiff?url1=rfc7159&amp;url2=rfc8259&amp;difftype=--html">https://www.ietf.org/rfcdiff?url1=rfc7159&amp;url2=rfc8259&amp;difftype=--html</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="408" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[408]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="405" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;405</anchor-internal>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">STD</anchor> に進めることが目的の改訂だったはずなのに、
その肝心の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">STD</anchor> 番号を書き忘れるとか、
相変わらず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は不遇だなwww</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="409" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[409]</anchor-end> こんな初歩的なミスばかりしている <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor> は一体何の仕事してる人達なんですか?</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="406" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[406]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> WG Action: Conclusion of Javascript Object Notation Update (JSONBIS)</cite>
(<time>2017-12-29 03:50:11 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04239.html">https://www.ietf.org/mail-archive/web/json/current/msg04239.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="407" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[407]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> <strong>[</strong>Technical Errata Reported<strong>]</strong> RFC8259 (5218)</cite>
(<time>2018-01-01 23:50:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04240.html">https://www.ietf.org/mail-archive/web/json/current/msg04240.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="410" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[410]</anchor-end> <cite xml:lang="en">Move JavaScript and JSON MIME types from HTML</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2018-02-06 06:27:33 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/mimesniff/commit/2ca219fd45c764267d37506d989c77751c171e59">https://github.com/whatwg/mimesniff/commit/2ca219fd45c764267d37506d989c77751c171e59</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="411" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[411]</anchor-end> <cite xml:lang="en">Move JavaScript and JSON MIME types from HTML by domenic · Pull Request #58 · whatwg/mimesniff</cite>
(<time>2018-02-17 18:31:21 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/mimesniff/pull/58">https://github.com/whatwg/mimesniff/pull/58</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="412" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[412]</anchor-end> <cite xml:lang="en">Editorial: update usage of the MIME Sniffing Standard</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2018-02-17 03:42:58 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/fc82f4f8774a2e7e80f6c9477bd881f6c783b186">https://github.com/whatwg/html/commit/fc82f4f8774a2e7e80f6c9477bd881f6c783b186</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="413" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[413]</anchor-end> <cite xml:lang="en">Editorial: update usage of the MIME Sniffing Standard by domenic · Pull Request #3455 · whatwg/html</cite>
(<time>2018-02-17 18:46:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/3455">https://github.com/whatwg/html/pull/3455</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="414" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[414]</anchor-end> <cite xml:lang="en">JSON-serialized client data is wrong · Issue #712 · w3c/webauthn</cite>
(<time>2018-03-05 17:37:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webauthn/issues/712">https://github.com/w3c/webauthn/issues/712</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="415" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[415]</anchor-end> <cite xml:lang="en">Fix #712: Refer to the JSON object as %JSON% by emlun · Pull Request #813 · w3c/webauthn</cite>
(<time>2018-03-05 17:37:41 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webauthn/pull/813">https://github.com/w3c/webauthn/pull/813</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="416" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[416]</anchor-end> <cite>RFC Errata Report » RFC Editor</cite>
(<time>2018-04-10 14:05:44 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.rfc-editor.org/errata/eid5318">https://www.rfc-editor.org/errata/eid5318</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="417" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[417]</anchor-end> <cite><strong>[</strong>Json<strong>]</strong> <strong>[</strong>Technical Errata Reported<strong>]</strong> RFC8259 (5355)</cite>
(<time>2018-05-10 15:50:03 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.ietf.org/mail-archive/web/json/current/msg04309.html">https://www.ietf.org/mail-archive/web/json/current/msg04309.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="327" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[327]</anchor-end> 
これだけ何度も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> 出版してるのに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> に対して承認された Errata
が5件もあるの、一体どうなってるんですかね。
開発・出版プロセスに致命的問題があるのでは?</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="328" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[328]</anchor-end> といいたいところだけど他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> もこんなもんなんだよなー、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 部門固有ではなく組織の体質なんでしょう。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="544" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[544]</anchor-end> 
実は旧 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> には</p><blockquote><p>Also, a small number of errata have been reported (see RFC Errata IDs	 	   
607 [Err607] and 3607 [Err3607]).	 	   </p></blockquote><p>と書かれていました。そして新 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> には</p><blockquote><p>Also, a small number of errata have been reported regarding RFC 4627	
(see RFC Errata IDs 607 [Err607] and 3607 [Err3607]) and regarding	
RFC 7159 (see RFC Errata IDs 3915 [Err3915], 4264 [Err4264], 4336	
[Err4336], and 4388 [Err4388]).</p></blockquote><p>と書かれていました。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> もまったくの新文書ではなく旧版からの改訂ですし、
それぞれの出版前に何度も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">I-D</anchor> を公開して改訂を続けています。
その過程で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>らはもちろん、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WG</anchor>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IESG</anchor>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC Editor</anchor>
と膨大な数の人々が何度も繰り返しチェックしています。</p><p>それだけの体制で、この程度の長さの文書で2件も誤りがあるのは多すぎます。
それを「少数」だと反省の色を見せない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> もちょっとどうかと思うのですが、
それを踏襲した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> が 2 + 4 件あってもまだ「少数」
だと言い張っているのは図々しい。</p><p>そんな編集態度だから、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> にも「少数」の誤りが報告されたのは必然という他ありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="545" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[545]</anchor-end> 
次の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> では 2 + 4 + 6 件で「少数」と言い張るのをみたいですねw</p><p>でも現時点で報告済5件、却下1件なので、これ以上増えるのは難しいかなあ</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="534" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[534]</anchor-end> 
旧版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> は、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Informative References</anchor>
として
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5.1</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 旧版を参照しつつ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> はそれらでも説明されている、と述べていました。
更に古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> も含め、すべての <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
仕様の構文は一致している、と述べていました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src>
これは嘘で、4仕様のうち <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor> は明らかに違う構文でした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="535" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[535]</anchor-end> 
新版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> はその記述を改め、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 新版を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Normative References</anchor>
に含めました。その意味を次のように説明していました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src></p><blockquote><p>The reference to ECMA-404 in the previous sentence is normative, not	
with the usual meaning that implementors need to consult it in order	
to understand this document, but to emphasize that there are no	
inconsistencies in the definition of the term &quot;JSON text&quot; in any of	
its specifications. <snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip></p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="536" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[536]</anchor-end> これによると、通常は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">normative reference</anchor> 
とは実装者が参照元を理解するために参照する必要があるような文書を意味するところ、
本件においては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の用語「JSON text」
の定義に不整合がないことを協調するためのものであるというのです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="537" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[537]</anchor-end> 
これはなかなか独創的な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">normative reference</anchor> の使い方です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="539" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[539]</anchor-end> 更に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> は</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="540" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[540]</anchor-end> 両者の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 文法は同じで、説明の方法が違うのみであること</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="541" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[541]</anchor-end> 両者に違いが見つかった場合には、双方協力して解決を目指すこと</li></ul><p>を明記しています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src>
これは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> 新版側にあるのと同内容です (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="491" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;491</anchor-internal>)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="542" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[542]</anchor-end> 
ただし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>の最大化のため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> が避けることを<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml">recommend</rt></rubyb>する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">いくつかの慣習<rt xmlns="http://www.w3.org/1999/xhtml">several practices</rt></rubyb>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor>
は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認めている<rt xmlns="http://www.w3.org/1999/xhtml">allows</rt></rubyb>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="353" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;353</anchor-internal></src>
とし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> 独自の「推奨」の存在を正当化しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="543" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[543]</anchor-end> 
ところで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> の構文が同じもので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> が一定の「推奨」をしているだけなら、
それは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> も「認めて」いる (が推奨はしていない) のでなければなりません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> が「認め」ないとは書いていませんから、
嘘ではないのですが、ミスリーディングです。</p></section><section><h1>ECMA-404 の改訂</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="460" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[460]</anchor-end> 
<time>平成29(2017)年12月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2017-12</attrvalue></time>に
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></cite> 
の改訂版である第2版が出版されました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="461" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[461]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> に合わせて出版されたもので、
第1版になかった次のような歴史の説明が追加されました。</p><blockquote><p>JSON was first presented to the world at the <code>JSON.org</code> website in 2001. A definition of the JSON syntax was
subsequently published as IETF RFC 4627 in July 2006. ECMA-262, Fifth Edition (2009) included a normative
specification of the JSON grammar. This specification, ECMA-404, replaces those earlier definitions of the
JSON syntax. Concurrently, the IETF published RFC 7158/7159 and in 2017 RFC 8259 as updates to RFC
4627. The JSON syntax specified by this specification and by RFC 8259 are intended to be identical.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="462" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[462]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> による定義が存在することを認めています。
(第1版は <code>JSON.org</code> の部分しか書いていませんでした。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4041" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4041</anchor-internal></src>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="463" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[463]</anchor-end> 
その上で、
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4627</anchor></cite> と <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ES5</anchor></cite>
が
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></cite>
によって置き換えられたという
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA</anchor>
側の認識を表明しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="464" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[464]</anchor-end> 
また、 <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor></cite> と <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor></cite>
が規定する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 構文は同等 (identical) を意図 (intended) 
しているとの見解を表明しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="491" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[491]</anchor-end> 
新版は旧版と違って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Normative References</anchor> に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
を挙げています。そして、</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="492" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[492]</anchor-end> 両者の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> 文法は同じで、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">形式</anchor>化の方法が違うのみであること</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="493" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[493]</anchor-end> 両者に違いが見つかった場合には、双方協力して解決を目指すこと</li></ul><p>を述べています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal> 3</src>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> 側にも同じことが書かれています。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="539" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;539</anchor-internal>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="494" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[494]</anchor-end> 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor></cite>
が「同等」の構文以外に独特の内容を多く含んでいることについては、</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="495" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[495]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor> は様々な意味的制限も定義している (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="489" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;489</anchor-internal>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="496" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[496]</anchor-end> しかしそれらは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> にとっては<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>規定</anchor>の一部ではない<rt xmlns="http://www.w3.org/1999/xhtml">not normative</rt></rubyb></li></ul><p>としています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4042" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4042</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="465" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[465]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> を完全に無視しても良かったはずですが、
歩み寄りの姿勢を見せています。
そして双方協力関係を保ち両仕様書の内容を同期させる、
との合意事項を明文化して示しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="497" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[497]</anchor-end> 
ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の独自規定は存在に言及するにとどめ、
それを採用するまでには至っていません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> の独自規定は採用してしまうと本来の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> と非互換になってしまいますから、当然の判断でしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="498" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[498]</anchor-end> 
そうなると「Normative References」の1つに挙げられているのはおかしなことです。
文法は技術的に同等の内容で、
それ以外は不採用なら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> の規定に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 8259</anchor>
は何ら影響を与えないのですから、わざわざ参照する必要はないのです。
それでもわざわざこの改訂で (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">non-normative</anchor> な reference でもなく) 追加したのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">政治的</anchor>判断と推測するほかありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="538" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[538]</anchor-end> 
そしてまさしく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> 側は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">政治的</anchor>判断だと明言しています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="537" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;537</anchor-internal>)。</p></section><section><h1></h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="419" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[419]</anchor-end> <cite xml:lang="EN-US">OData JSON Format Version 4.01</cite>
(<time>2018-01-31 02:00:00 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html">http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html</anchor-external></figcaption><blockquote><p>Requests and responses with a JSON message body MUST have a Content-Type header value of application/json.</p><p>Requests MAY add the charset parameter to the content type. Allowed values are UTF-8, UTF-16, and UTF-32. If no charset parameter is present, UTF-8 MUST be assumed.</p><p>Responses MUST include the metadata parameter to specify the amount of metadata included in the response.</p><p>Responses MUST include the IEEE754Compatible parameter if Edm.Int64 and Edm.Decimal numbers are represented as strings.</p><p>Requests and responses MAY add the streaming parameter with a value of true or false, see section Payload Ordering Constraints.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="420" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[420]</anchor-end> <cite xml:lang="en">A dictionary inheriting from a non-JSON type can't be a JSON type. (#571</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bzbarsky</anchor>著, <time>2018-07-18 00:26:11 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/commit/d3b317273c6e8b184ad6023ac145cf25c933a50e">https://github.com/heycam/webidl/commit/d3b317273c6e8b184ad6023ac145cf25c933a50e</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="421" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[421]</anchor-end> <cite xml:lang="en">Is a dictionary which has an inherited dictionary with a non-JSON-type member a JSON type? · Issue #555 · heycam/webidl</cite>
(<time>2018-07-18 15:27:53 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/issues/555">https://github.com/heycam/webidl/issues/555</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="422" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[422]</anchor-end> <cite xml:lang="en">A dictionary inheriting from a non-JSON type can't be a JSON type. by bzbarsky · Pull Request #571 · heycam/webidl</cite>
(<time>2018-07-18 15:28:16 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/pull/571">https://github.com/heycam/webidl/pull/571</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="426" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[426]</anchor-end> <cite xml:lang="en">Add &quot;serialize JSON to bytes&quot; algorithm</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">equalsJeffH</anchor>著, <time>2018-08-03 06:05:16 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/commit/25f6859e6faafdd3822f37efaa8efea3fd07153e">https://github.com/whatwg/infra/commit/25f6859e6faafdd3822f37efaa8efea3fd07153e</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="427" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[427]</anchor-end> <cite xml:lang="en">Infra lacks a &quot;JSON stringify and UTF-8 encode to bytes&quot; operation · Issue #193 · whatwg/infra</cite>
(<time>2018-08-09 17:25:32 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/issues/193">https://github.com/whatwg/infra/issues/193</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="428" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[428]</anchor-end> <cite xml:lang="en">add 'JSON stringify and UTF-8 encode to bytes' algorithm by equalsJeffH · Pull Request #207 · whatwg/infra</cite>
(<time>2018-08-09 17:26:09 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/pull/207">https://github.com/whatwg/infra/pull/207</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="429" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[429]</anchor-end> <cite xml:lang="en">Editorial: Add %JSONStringify% intrinsic object by equalsJeffH · Pull Request #1272 · tc39/ecma262</cite>
(<time>2018-08-09 17:27:18 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/tc39/ecma262/pull/1272">https://github.com/tc39/ecma262/pull/1272</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="430" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[430]</anchor-end> <cite xml:lang="en">Use final name for &quot;serialize JSON to bytes&quot; by domenic · Pull Request #1024 · w3c/webauthn</cite>
(<time>2018-08-09 17:27:47 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webauthn/pull/1024">https://github.com/w3c/webauthn/pull/1024</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="431" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[431]</anchor-end> <cite xml:lang="en">proposal-json-superset/README.md at master · tc39/proposal-json-superset</cite>
(<time>2019-01-30 20:35:23 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/tc39/proposal-json-superset/blob/master/README.md">https://github.com/tc39/proposal-json-superset/blob/master/README.md</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="432" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[432]</anchor-end> <cite xml:lang="en">CORB: protecting certain nosniff and 206 responses</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anforowicz</anchor>著, <time>2018-05-17 16:24:03 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/794dd5452705564538440cc5b2c1f13d909e2f9a">https://github.com/whatwg/fetch/commit/794dd5452705564538440cc5b2c1f13d909e2f9a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="448" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[448]</anchor-end> <cite xml:lang="en">Add &quot;parse JSON into Infra values&quot;</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>, <time>2019-05-11 00:47:58 +09:00</time>, <time>2021-04-12T05:29:04.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/commit/9bf763869b84aac00c8a1883ddb70485835ae861">https://github.com/whatwg/infra/commit/9bf763869b84aac00c8a1883ddb70485835ae861</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="453" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[453]</anchor-end> <cite xml:lang="en">Add &quot;parse JSON into maps and lists&quot; by domenic · Pull Request #249 · whatwg/infra</cite>
(<time>2021-04-12T06:08:00.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/infra/pull/249">https://github.com/whatwg/infra/pull/249</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMA-404</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>に翻訳したものが <dfn>JIS X 3061:2021</dfn>
となっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en">Working with JSON data in Standard SQL  |  BigQuery  |  Google Cloud</cite>
(<time>2022-01-06T01:22:52.000Z</time>, <time>2022-01-09T11:56:41.887Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://cloud.google.com/bigquery/docs/reference/standard-sql/json-data">https://cloud.google.com/bigquery/docs/reference/standard-sql/json-data</anchor-external></p></section></section></body></html>