特に以下の点を考慮すると、YAML と JSON の違いは何ですか?
- パフォーマンス(エンコード/デコード時間)
- メモリ消費量
- 表現の明瞭さ
- ライブラリの可用性、使いやすさ(私はCを好みます)
組み込みシステムで構成ファイルを保存するには、これら 2 つのうちのいずれかを使用する予定でした。
ベストアンサー1
技術的には、YAML は JSON のスーパーセットです。つまり、少なくとも理論上は、YAML パーサーは JSON を理解できますが、その逆は必ずしもできません。
公式仕様については、「YAML: JSON との関係」。
一般的に、JSON にはない、YAML で気に入っている点がいくつかあります。
- として@jdupontが指摘したYAMLは視覚的に見やすいです。実際、YAMLホームページそれ自体は有効な YAML ですが、人間が読むのも簡単です。
- YAML には、「アンカー」を使用して YAML ファイル内の他の項目を参照する機能があります。したがって、MySQL データベースにあるようなリレーショナル情報を処理できます。
- YAML は、JSON や XML などの他のシリアル化形式をYAML ファイル内に埋め込む点においてより堅牢です。
実際には、これら最後の 2 つのポイントは、あなたや私が行うことにはおそらく重要ではありませんが、長期的には、YAML がより堅牢で実行可能なデータ シリアル化形式になると思います。
現在、AJAX やその他の Web テクノロジーでは JSON が使用される傾向にあります。YAML は現在、オフライン データ処理でより多く使用されています。たとえば、C ベースの OpenCV コンピューター ビジョン パッケージにはデフォルトで含まれていますが、JSON は含まれていません。
JSONとYAMLの両方のCライブラリが見つかります。YAMLのライブラリは比較的新しいものですが、これまで問題はありませんでした。例えば、ヤムル-cpp。