JSONの仕様にちょっと悩む

JSON

て、RFC に

RFC 4627 - The application/json Media Type for JavaScript Object Notation (JSON)

なってるし、YAML と違って結構いろんな言語でちゃんとサポートされてるので、シリアライズ形式として優れているなと思っています。1

ただなんかちょっと腑に落ちないところがあって、上の RFC に以下のように書かれてるんですよね。

Any character may be escaped. If the character is in the Basic Multilingual Plane (U+0000 through U+FFFF), then it may be represented as a six-character sequence: a reverse solidus, followed by the lowercase letter u, followed by four hexadecimal digits that encode the character's code point. The hexadecimal letters A though F can be upper or lowercase. So, for example, a string containing only a single reverse solidus character may be represented as "\u005C".

2.5. Strings より。

で、

may ってどないやねん

2

ただまぁ現実的には生で書くわけじゃないので、ライブラリの挙動が合ってればそれでよく、実際、

  • PHP
  • Ruby
  • JavaScript

  • PHP -> JavaScript
  • Ruby -> PHP
  • PHP -> Ruby

の3つではすべて日本語は \u 形式で表現され、それで問題なく解釈できるという動きになってます。

まぁ、そういうことなんでしょうねぇ。

  1. 手で設定ファイルとして書くなら YAML の方が断然いいですけど。 

  2. RFC 的にはちょっと弱めの should くらいの意味になるんでしたっけ? 

More