1. ホーム
  2. json

[解決済み] YAMLとJSONの違いは何ですか?

2022-03-19 15:49:07

質問

YAMLとJSONの違いは何ですか?具体的には次のようなことを考慮してください。

  • パフォーマンス(エンコード/デコード時間)
  • メモリ消費量
  • 表現の明確さ
  • ライブラリの有無、使いやすさ(私はC言語が好きです)

私たちの組込みシステムでは、この2つのうちどちらかを使って設定ファイルを保存しようと思っていました。

関連する

Perlのデータを保存するには、YAMLとJSONのどちらを使うべきですか?

どのように解決するのですか?

技術的には、YAMLはJSONのスーパーセットです。このことは、少なくとも理論的には、YAMLパーサーはJSONを理解することができますが、必ずしもその逆ではないことを意味します。

公式の仕様書では "YAML。JSONとの関係" .

一般的に、JSONでは利用できない、YAMLで気に入っていることがある。

  • として jdupont さんのご指摘 YAMLは視覚的に見やすいです。実際 YAMLホームページ はそれ自体が有効な YAML でありながら、人間にとって読みやすいものです。
  • YAML は "anchors." を使って YAML ファイル内の他のアイテムを参照する機能を持ちます。したがって、MySQL データベースに見られるようなリレーショナルな情報を扱うことができます。
  • YAMLは、JSONやXMLのような他のシリアライズ形式の埋め込みに、より堅牢である。 内の YAML ファイルを作成します。

しかし、長期的には、YAMLはより堅牢で実行可能なデータシリアライゼーションフォーマットになると思います。

今、AJAXなどのWeb技術では、JSONを使うことが多いですね。YAMLは現在、オフラインのデータ処理に多く使われています。例えば、C言語ベースのコンピュータビジョンパッケージ「OpenCV」では、JSONがデフォルトで含まれていないのに対し、YAMLはデフォルトで含まれています。

JSONとYAMLの両方に対応したC言語のライブラリがあります。YAMLのライブラリの方が新しい傾向がありますが、過去に困ったことはありません。例えば ヤムル-cpp .