JSONとXML
XML
eXtensible Markup Language
マークアップ言語、つまり文章になんか良い感じに意味を与えるための言語という出自
良い感じの意味: e.g. 「ここは太字にして」「これは他のページへのリンクね」
「文章」が基盤にあり、これに意味を付与するというモデル
SGMLが(仕様やパーサが)複雑で手に負えなかったので簡略化して使いやすくしたものがXML
SGML: 辞書やマニュアルを電子的にマークアップするための言語
マークアップするのが目的なので「データ型」はない
HTMLとは兄弟の関係にある
先発なのでなんでもXMLになった時期があった
XMLHttpRequestというメソッド名にもその余燼がくすぶっている
JSON
JavaScript Object Notation
おなじみJavaScriptのオブジェクト記法が素朴で便利だったのでこれがそのまま標準化されたという出自
「オブジェクトを表現する」が基盤にある
オブジェクトを表現したいのでデータ型がある
が、数値まわりの扱いがフワフワしている
2024年時点でのWebエンジニア界隈では津々浦々どこにでも登場する
XMLかJSONか
そんなん場合によるやろ
というのはさておき……
「Webエンジニア」の文脈では、「データフォーマット」 == 「APIのリクエストやレスポンスに使われるデータ交換形式」であることがほとんど
なので「XMLオワコン、JSONにするべき」みたいな頓珍漢な話になってしまう
視野が狭いと、何かが万能に見え、何かがオワコンに見える
このような文脈では大抵JSONでいい
たとえば、表形式のデータを受け渡す必要があったらCSVを使ったほうがいいし、自由な文章データに意味を付与して表現したいのならXMLを使ったほうがいいし、バイナリを扱う必要があるとか無限リストが欲しいとなったらCBORにするべし
その出自をよく考えて使えばいい
See Also