web-dev-qa-db-ja.com

Googleプロトコルバッファvs JSON vs XML

のメリットとデメリットを知りたい

  • Googleプロトコルバッファー
  • JSON
  • XML

2つのアプリケーションに1つの共通のフレームワークを実装します。1つはPerl、もう1つはJavaです。そのため、PerlとJavaの両方のテクノロジーで使用できる共通サービスを作成したいと考えています。

どちらもWebアプリケーションです。

これに関するあなたの貴重な考えや提案を教えてください。私はグーグルで多くのリンクを見てきましたが、すべての意見は複雑です。

223
Manoj Kathiriya

ジョンソン

  • 人間が読める/編集できる
  • 事前にスキーマを知らなくても解析できます
  • 優れたブラウザサポート
  • xMLより冗長ではない

XML

  • 人間が読める/編集できる
  • 事前にスキーマを知らなくても解析できます
  • SOAPなどの標準
  • 優れたツールサポート(xsd、xslt、sax、domなど)
  • かなり冗長

プロトバフ

  • 非常に高密度のデータ(小さな出力)
  • スキーマを知らずに堅牢にデコードすることは困難です(データ形式は内部的に曖昧であり、明確にするためにスキーマが必要です)
  • 非常に高速な処理
  • 人間の目用ではありません(高密度バイナリ)

ほとんどのプラットフォームですべてが適切にサポートされています。

個人的に、私は最近XMLをほとんど使用しません。消費者がブラウザまたはパブリックAPIである場合、jsonを使用する傾向があります。内部APIの場合、パフォーマンスのためにprotobufを使用する傾向があります。パブリックAPIで(ヘッダーまたは個別のエンドポイントを介して)両方を提供することもうまく機能します。

269
Marc Gravell