テクノロジー

JSONとYAMLどっちがいい?APIフォーマット選びで悩んでいる開発者必見! - Qiita

1: wordi 2025/03/12 22:49

もしかしてNullさん問題もYAMLだからか?

2: toaruR 2025/03/12 23:03

JSONはコメントアウトしたいときにグヌヌってなる

3: hurafula 2025/03/12 23:33

おもろい話題なのでAI使わずに書いたのを読みたい

4: Kanasansoft 2025/03/12 23:59

「"」なしのfoo/true/1で型が「良い感じ」に変わる仕様はハマった時に大変。初心者に触って欲しくない。言語は型の有無好みで良いけどデータは硬い方が良い。硬いからJSONLみたいなこともできる。

5: kazuya030 2025/03/13 00:29

正直インデントによる文法あまり好きじゃなかったけど、読んでたらYAML書きたくなってきた

6: poco_tin 2025/03/13 00:48

YAMLはインデントに意味があるから階層を跨いでマニュアル編集する時が特にキツい。 JSONは雑に書いても対応する括弧さえ揃っていれば後でフォーマッターで綺麗にできるので楽

7: tacamula 2025/03/13 01:24

視認性の問題であればJSONで管理してYAMLやその他でプレビューできるビジュアライザ使うか作るかするのも手では。コメント書けないのはそうだけどjsonc, json5対応のパーサー使えば解消はする

8: kamm 2025/03/13 01:52

「JSONコード」って言葉初めて聞いた

9: byourself 2025/03/13 02:02

YAMLの絶対的な利点はコメントが書ける(=コメントアウトもできる)こと。タイプ数も少なく手軽。ただしネストが深くなり過ぎるとマジで辛いので浅い構造にするよう気をつけないとやばい。

10: tamanecoplus 2025/03/13 02:20

むしろAPI仕様はYAML、API実装はJSONという使い分けが普通でゎ。対決させる意味がよく分からなかった

11: mzzmnncy 2025/03/13 02:45

なんかAIが自意識持って人間のマネをし始めたところ、みたいな記事。yqコマンドで一発な気もする

12: buzztaiki 2025/03/13 03:10

YAMLはJSONのスーパーセットだから拡張子をyamlにするたけで終わりだよ。

13: rryu 2025/03/13 03:13

人間が読み書きする前提ならYAMLが圧倒的有利。JSONはいちおう型があるというのが利点。APIドキュメントならMarkdownでもいいような気がする。なんにせよ結局書式は決めるわけだし。

14: korilog 2025/03/13 03:22

ドキュメントをAPI定義と別に書いてるってこと?前提がわからなさすぎてなんで比較してるのかわからない。

15: NetPenguin 2025/03/13 03:32

JSONはYAMLとして読めるので、JSONのままでYAMLといえる。

16: mk173 2025/03/13 04:26

じゃあCBORで

17: kkobayashi 2025/03/13 06:13

人間の手が入るならYAMLだけどプログラムから扱うならJSONが楽。設定ファイルならYAMLでもいいけどAPIならJSONになるのでは

18: strawberryhunter 2025/03/13 06:48

私は選べるならJSON一択。YAMLがJSONの上位互換みたいな話があるけど、データ構造の話なら分かる。YAMLのコメントは失われるけどプログラムで相互変換できる。書式自体に互換性があるみたいな書きっぷり↓が気になる。

19: harumomo2006 2025/03/13 07:00

ダブルクォートがいらなくなるのはメリットだけどインデント制御が辛い。JSONからダブルクォートを消してコメント付けられるようになればいいのに

20: kijtra 2025/03/13 07:18

JSONが扱いやすいんだけどコメントが書けない。YAMLは扱いにくいけどコメントが書ける…。いい感じのやつが定番になってほしい

21: jintrick 2025/03/13 07:34

パーサーの負荷の話は出てこなかった

22: uehaj 2025/03/13 07:51

「APIフォーマット」でもう駄目。レビューをJSONとかYAMLでやるよりswaggerとかでGUI化してからやったほうがいいのでは

23: sumomo-kun 2025/03/13 07:55

APIの仕様ドキュメントをJSONで書く、の意味が分からねぇ

24: nakag0711 2025/03/13 08:22

コメント書けないのはほんとにねえ…

25: tinsep19 2025/03/13 08:46

コメントの可否挙げてる人が多いな。openapiだろうけど型定義含めtsで書いて、jsonにもyamlにも変換できそうだけどな

26: ouj3 2025/03/13 08:49

むかしYAMLパーサーにハマった経験があるので、人が扱うならYAML、機械が扱うならJSONと使い分ける派。 よしなに型判定してくれるのは便利そうに見えて、時折牙を剥いてくることは意識しておくことをオススメするよ…

27: diveintounlimit 2025/03/13 09:01

AIは変換に混ぜものしてくる可能性が否定しづらいから、変換するなら素直な変換ツールを使うかな。あとコメントの通りだが、全部YAMLがいいとか全部JSONが良いという話ではなくて、使いどころ次第という感覚。

28: poad1010 2025/03/13 09:15

この記事をおすすめしました

29: xlc 2025/03/13 09:25

人が編集する設定ファイルならYAML、プログラム間のインタフェースならJSONでいいのでは?

30: sds-page 2025/03/13 09:35

「型とかめんどくさい!ない方がいいじゃん!」と「型が無いと大変な事になるだろ!ちゃんと定義しろ!」が交互に来るプログラマ界隈

31: sucelie 2025/03/13 09:45

個人的にはJSONのほうが好き。JSONにコメントさえ書ければ・・・・

32: Kil 2025/03/13 09:50

とりあえず間違っている点。JSONにおけるbool値は、ダブルクォート付けずに直書きで小文字のtrueもしくはfalse、が仕様です。

33: snipesnaps 2025/03/13 10:24

AIに変換させると変換後のデーターが正しいかどうかの検証が追加で発生するんで手間増えると思うんだけど。まさか自分が知らないだけでLLMに100%の変換性能がすでにあったりする?

34: ssssschang 2025/03/13 10:27

人間に処理させるときはyaml、機械に処理させるときはjsonの使い分け。APIを人の手で呼ぶことはそんなにないから、API仕様としてはjsonのがいいんでない。バックエンドの設定ファイルとかならyamlのが好き

35: deep_one 2025/03/13 10:31

うちのエディターはYAMLとJSONを相互変換してくれる。/YAMLは「スペースの量が違う」ことを理由にエラーを出すので分かりにくくて嫌いだが、JSONの「コメントが書けない」も分かりにくくて嫌い(笑)

36: stabucky 2025/03/13 10:39

JSONの変な文字化けはYAMLではどうなるのだろうか。

37: megumin1 2025/03/13 10:41

たかだかJSONをYAMLに変換するくらいで「AIにフォーマット変換させる」「コマンドラインツール(ガチ派向け)」とか、読んでいてこっちが恥ずかしくなる。人類の知的レベルがどんどん低下しているのを感じさせる記事。

38: otchy210 2025/03/13 13:13

基本的に YAML は JSON の上位互換だけど、言語や環境がデフォルトでサポートしているという利点で JSON を選ぶこともまだ多い。

39: aiya000 2025/03/13 14:55

json5という、(コメントが書けたりなどする)human readable/writableなjsonもあります。tsconfig.jsonというjsonでもjson5でもない謎json実装もある…。

40: kuippa 2025/03/13 16:01

CiyGMLとかで何十万ノードとかあるとXMLとかjsonとかで閉じタグまで展開できなくて詰むので最近はYAMLにしてる。素人にインデントだの綴じタグ揃えさせるの無理だしね。昔のiniみたいに使えてよき。

41: sagasite 2025/03/13 17:16

JSONはLISP(カッコ派)と似ていて、YAMLはPython(インデント派)と似ていますね?/人間が読むならYAMLの方が読みやすくて、機械が読むならJSONの方が間違いがない、ということかな?

42: katsyoshi 2025/03/13 19:30

なんでシリアライズフォーマットとドキュメントフォーマットを比較してるだろう

43: softstone 2025/03/13 20:04

AIに変換そのものをやらせるのではなく、一括で変換する方法を聞くべき。ChatGPTはちゃんとfindとyqで良い感じのワンライナー書いてくれた。

44: th_6295 2025/03/15 00:55

LLM感溢れる文だけどところどころAIっぽくないデタラメが過ぎるのはそこだけ人間が書いてる?