14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「とりあえず JSON」の根拠

Last updated at Posted at 2014-09-02

なんか XML で作られようとしている API があって、「JSON でよくね?」って話をした。
そのとき考えたことを一応メモしておく。

とりあえず JSON

Web API など、言語やサービスを越えてのデータをやり取りしたいケースはいくらでもある。
そういうときはとりあえず JSON を選択することにしている。
まぁいまどきだいたいみんなそうですよね。
なんで XML やその他のフォーマットと比べて JSON が良いと感じるのか。

根拠

  • XML ほどリッチではないがほとんどの場合事足りるしわかりやすい
  • だいたいどんな言語のデータ構造にもわかりやすくマッピングできる
  • だいたいどんな言語でも定番のライブラリがある
  • 文字コードとして Unicode を強制されるので文字コードまわりの面倒が起こりにくい
  • エンコード/デコードのパフォーマンスが求められるようになったら MessagePack に移行すれば良い

あとは、まだ実践したことはないけど

  • バリデーションとかに JSON Schema 使えると便利 (XML Schema は XML にしか使えないが、JSON Schema ならあらゆる用途・あらゆる言語で使えるし、データ自体は読みやすいように YAML ファイルとかで持っておくこともできる)

突っ込みどころあったらお願いします。

XML について

XML に関しては、JSON よりもリッチなデータを表現できるので、XML の方が良いケースというのも確かにあるんだろうけど、個人的にはそういうのに遭遇したことないです。
別に XML の存在意義を否定するような意図はありません。
まぁ普通の WebAPI でレスポンスが XML だったらちょっとダルイなとは思いますが。

YAML について

YAML でもいいんじゃないか、と考えた。
が、結論としては JSON の方が良いのではと思う。

良い点

  • 読みやすい
  • 概ね JSON と相互変換でき、JSON で表現できることは大体 YAML にも表現できる

悪い点

Web API の実装として、パラメータか何かで出力フォーマットを切り替えることができて、YAML でも出力できるようになっている、というのはデバッグ時に読みやすいので便利だと思う。
でもあくまでもメインは JSON。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?