- ベストアンサー
JSONとはどんな場合に使うのでしょうか?
JSONについて調べると、 ・XMLよりも軽量で扱いやすい ・javascriptやphpから使う 上記のような説明と簡単にコードの書き方くらいしか説明されていません。 どういった場合にJSONは利用できるのかイメージを沸かせたいです。 例えば、トップページに新着情報があり、過去の新着情報を一覧として見れるページがあるとします。そして、過去の新着情報一覧のページにある新着情報を新着順に10件選び、選んだ10件をトップページの新着情報に表示させる場合に使う。 こんなイメージで間違っていないでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> http://blogs.dion.ne.jp/kotemaru/archives/2011-0529.html > こちらを参考にすると、CSVよりもJSONの方が軽いそうなのですが、 ・Python版は XML or CSV のようだ ・(XMLより)JSONの方が軽い ・CSVは簡易形式としては便利だけどBigtableを完全に表現できない ・(だから)まずデータ形式はJSONとする。 という意味で書いている文章だと思います。JSONの方が軽い,という箇所は,XMLの方だけに掛かっているはずです。一般的にJSONよりCSVの方が軽いと言えるでしょう。 > 小量の場合にCSVを使う利点は何でしょうか。 表計算ソフトで作成した最も基本的な2次元表のようにデータ形式が単純なら扱いやすい,ExcelなどからそのままCSV出力できるというのが利点でしょうか。 例えば,CSV形式の例がこんな風であるのに対して, "postal","x","y","line","name" "6770039","134.997666","35.002054","JR加古川線","日本へそ公園" "6770033","134.995740","34.988777","JR加古川線","比延" "6790313","134.992545","35.022740","JR加古川線","黒田庄" JSON形式の例はこうなります。 {"station":[ {"postal":"6770039","x":134.997666,"y":35.002054,"line":"JR加古川線","name":"日本へそ公園"}, {"postal":"6770033","x":134.995740,"y":34.988777,"line":"JR加古川線","name":"比延"}, {"postal":"6790313","x":134.992545,"y":35.022740,"line":"JR加古川線","name":"黒田庄"} ]} CSVと比較したJSONの特徴として次のようなことは言えるでしょう。 ・属性名が繰り返し記録されている分だけ,CSVよりもサイズは大きい。 ・繰り返し登場している各情報は「配列 station[] の要素である」という上位の情報までJSONでは表現できている。 ・つまり最も基本的な2次元表的なデータ形式だけでなく「階層構造をもった情報は、階層構造をそのまま表記できる(ANo.2)」 JSONの名が示すとおり,JavaScriptで用いられるオブジェクト表記法(Object Notation)だということです。
その他の回答 (3)
- dscripty
- ベストアンサー率51% (166/325)
[No.2]のお礼に対する回答ね。 「こちらを参考にすると、CSVよりもJSONの方が 軽いそうなのですが、……」 参考のページは、ちょっと誤解をまねくかきかただね。本人も XML と JSON の比較のつもりで書いているんじゃない? 自分の予想をもっと信じていいとおもうよ。
お礼
分かりました。有難うございました。
- dscripty
- ベストアンサー率51% (166/325)
[No.1] さんも書いているけれど、JSON は、情報をテキストで表記するための書式のひとつにすぎないよ。 例えで質問者さんがあげている新着情報だと、一つの新着情報に必要な項目は、たかだか - 日時 - 見出し - 詳細 ぐらいでしょ? 多少項目が増えることはあってもこれぐらいなら、表形式の情報表記書式、タブ区切りテキストやカンマ区切りテキスト(CSV)で十分だよね。 でも、もっと複雑な情報、例えば組織図をイメージして、そして、その組織図を表形式であらわせるかためしてみて? 表形式のデータベースを学んだひとなら、できなくもないけれど、とても扱いずらいよ? 組織図のような、階層構造をもった情報は、階層構造をそのまま表記できる JSON 書式がまさに最適だね。 もっと複雑な情報なら XML をつかえば、たいていまかなえるよ。 つまり、情報の複雑さにあわせて、情報表記の書式を選べばいいということになるかな?
お礼
ありがとうございます。CSVというのもあるのですね。 1点疑問があります。JSONよりもCSVの方が軽いので CSVで複雑にならない程度の量ならCSVを使うべきと予想したのですが、 http://blogs.dion.ne.jp/kotemaru/archives/2011-0529.html こちらを参考にすると、CSVよりもJSONの方が軽いそうなのですが、 小量の場合にCSVを使う利点は何でしょうか。 http://sookibizviz.blog81.fc2.com/blog-entry-175.html こちらもJSON、CSV、XMLの参考になりました。
- jjon-com
- ベストアンサー率61% (1599/2592)
例として,下記リンク先にアクセスして,各APIの説明ごとに紹介されている「サンプルレスポンス」のURLをクリックしてください。JSON形式のデータが閲覧できます。 http://express.heartrails.com/api.html ということで。 JSONはデータ表現形式のひとつですから,質問文にあるような場合はもちろん,他のどんな場合にも使えるといってよいでしょう。
お礼
XMLのようにコードを書いていろいろ動きを作るものと思っていましたが、 JSONはただコードをテキスト化したものということなんですね。 ありがとうございました。
お礼
参考になりました。具体的に有難うございます。