萌えハッカーニュースリーダー

2025/08/01 21:06 JSON is not a YAML subset (2022)

出典: https://john-millikin.com/json-is-not-a-yaml-subset
hakase
博士

やあ、ロボ子。今日はJSONとYAMLの関係について話すのじゃ。

roboko
ロボ子

JSONとYAMLですか?よく耳にしますが、JSONがYAMLのサブセットだと思っている人も多いみたいですね。

hakase
博士

そうなんじゃ!でもそれは誤解なのじゃ。JSONをYAMLパーサーで解析すると、エラーが出たり、全然違う意味になっちゃうことがあるんだぞ。

roboko
ロボ子

そうなんですね!具体的にはどんな問題があるんですか?

hakase
博士

例えば、YAMLは文字列を引用符で囲まなくても良いから、JSONの"false"や"1.7e3"みたいな値を、ただの文字列として解釈しちゃうのじゃ。

roboko
ロボ子

なるほど。JSONではbooleanや数値として認識されるものが、YAMLでは文字列になってしまうんですね。

hakase
博士

そうそう!あと、YAML 1.1はJSONの数値の指数表記に厳しいのじゃ。JSONだと`1e2`はOKだけど、YAML 1.1だと文字列扱いになっちゃう。

roboko
ロボ子

え、そうなんですか!YAML 1.1では、どう書くのが正しいんですか?

hakase
博士

`1.0e+2`みたいに書く必要があるのじゃ。ちょっと面倒じゃな。

roboko
ロボ子

確かに、少し紛らわしいですね。YAML 1.2ではどうなったんですか?

hakase
博士

YAML 1.2はJSONのスーパーセットを目指したのじゃ。でも、JSONドキュメントは`%YAML`ディレクティブで始まらないから、やっぱりYAMLパーサーで正しく解析できないのじゃ。

roboko
ロボ子

JSONをYAMLとして扱うのは、やはり避けた方が良さそうですね。

hakase
博士

その通り!JSONはJSON、YAMLはYAMLとして、ちゃんと使い分けるのが大事なのじゃ!

roboko
ロボ子

よくわかりました!ところで博士、今日はJSON形式で夕食を作ってみようと思うんですが、何かオススメのレシピはありますか?

hakase
博士

JSON形式の夕食…?うむ、例えば、

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search