JSONデータの利用についての疑問

このQ&Aのポイント
  • APIを利用しテキストデータを返すプログラムを作成中。テキストデータの形式にはXML、JSON、CSVなどがあるが、どの形式でも問題ないか疑問。
  • 自分で決めた形式でも問題ないか。
  • 形式変換は一般的なライブラリで簡単にできるので、どの形式を採用してもあまり変わらないか疑問。
回答を見る
  • ベストアンサー

JSONって単純にテキストの書き方だけでしょうか。

現在APIを叩いてテキストデータを返すプログラムを作成しています。 そこで返すテキストデータの形ですが、いろいろ調べたらxml,json,csvなどなどがあります。よく見ると各形式のメリットとデメリットや使うまた使わないケースというのはあるんですが、結局どの形式でも元々のテキストデータが同じものなので、極端の話自分で決めた形式でも(例えば全てのデータは半角のスペースで区切るとか)問題はないでしょうか。 またある形式から別の形式への変換(例えばjsonからxmlとかに)ほとんどのプログラム言語の一般的なライブラリで簡単にできそうなので結局どの形式を採用してもあまり変わらない気がしますが、みなさんどう思いますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

> JSONって単純にテキストの書き方だけでしょうか。 はい,そうです。「各形式のメリットとデメリットや使うまた使わないケースというのはある」という点を踏まえた上で,でもそれは単なるデータ書式の一つですよね,と問われれば,そのとおりです。 > ある形式から別の形式への変換(例えばjsonからxmlとかに) > ほとんどのプログラム言語の一般的なライブラリで > 簡単にできそうなので結局どの形式を採用しても > あまり変わらない気がします http://okwave.jp/qa/q7352373.html の私の回答ANo.4 を参照。 相互変換が容易なJSONとXMLだけを念頭におくとそう思えるかもしれませんが,配列・階層構造・シリアライズされたオブジェクトなどを表現するのに向かないテキストデータ形式はありますから「どの形式を採用しても変わらない」とは言えません。 > 極端の話自分で決めた形式でも(例えば全てのデータは > 半角のスペースで区切るとか)問題はないでしょうか。 「blackjoesさんデータ形式」のような各人バラバラのデータ形式に対応しなければならないのはメンドウだということを不問にするならば,まあ技術的に問題はないでしょう。もしそれがさまざまな場合に対応できる利点の多いデータ書式方法であるなら,広く普及する可能性だってあります。

blackjoes
質問者

お礼

jjon-comさん、回答ありがとうございます。 また以前回答しましたhttp://okwave.jp/qa/q7352373.htmlも拝見させていただいています。 そもそもどのようなデータを移送したいのか、という話が先ですよね。シリアライズされたオブジェクトのようなデータであればテキストデータを使うのは難しいですから「どんなものでもいい」というのは言えないですね。 googleで検索した限りほとんどの文書はjsonやxmlとかcsvとかの比較というのは多くて、そもそも皆1種のデータ構造ということはあまり触れていませんのでこの質問をさせていただきました。

その他の回答 (2)

回答No.3

>結局どの形式でも元々のテキストデータが同じものなので、極端の話自分で決めた形式でも(例えば全てのデータは半角のスペースで区切るとか)問題はないでしょうか。 そのルールを使う人、全員できっちり取り決めが行われていれば、問題になる事は有りません。 つまり、使う人が自分一人なら、自分で勝手に自由気ままに作っても問題にはなりません。 実際に、ウェブ系、CGIのデータ保存フォーマットとして、CSVのかわりにタブ区切りや"<>"区切りなどもよく使われます。 あくまでデータのやりとりに問題がないというだけで、データフォーマットを解析するライブラリを作らなければならないという問題はありますけどね。

blackjoes
質問者

お礼

talooさん、回答ありがとうございます。 そうですね、jsonであれ、xmlであれ、自分で決めたデータ構造でもあくまでデータのやりとりにの話ですね。

回答No.1

例示された物の中では,XMLとJSONは開発者側の好み,という点はある程度あります。 転送量が小さいのは,きっちりとした構造を定義しやすいのはXMLという感じでしょうか。 CSVは前2者に比べて表現力に劣ります。 固定列可変行形式が限界です。 # 過去にCSVに構造を入れた物を扱わされた経験があり。非常に処理が面倒でした。 もちろん,独自のデータ形式でもよいのですが,汎用形式であるXMLやJSONでないことのメリットが普通は少ないので, WebのAPIでは通常XMLやJSONが使われています。

blackjoes
質問者

お礼

Yune-Kichiさん、回答ありがとうございます。 「汎用形式であるXMLやJSONでないことのメリットが普通は少ない」ということですね。そもそもすでに決められて広く使われている方式があるのにわざわざ独自のものにする必要があるのか、ということでしょうね。 普段はないですね。

関連するQ&A

  • json形式からcsv形式への変換

    ツイッターのデータをjson形式からcsv形式へ変換したいのですが、フリーのツールやWebサービスなどで、変換できるものはないでしょうか? その他、簡単なやり方がありましたらご教示頂けると幸いです。 一応、ひと通り調べては見たのですが、csv→jsonはあっても、json→csvが見つかりませんでした。。。

  • X-JSON

    X-JSONについて質問です。 最近、jsをはじめたばかりの素人ですが、prototype.jsをライブラリとして使用してみようと思っています。 しかし、JSONからX-JSONに乗り換えるところで詰まっています。 まず、「"X-JSON":~」と指定してとなっていますが、なんとなくそれっぽくやってみても動きません。 ローカルのX-JSON形式で書かれたテキストファイルを読み込んで、単にHTML化して表示したいだけなのですが、うまくいきません。 ネットで調べられる限りのサンプルソースをまねてみたつもりですが、上手くいきませんでした。 ・簡単に動くサンプルソースをお持ちの方 ・わかりやすい解説のページなどを教えていただける方 環境は・・・ WinXP SP2、IE6 SP2、prototype.js 1.4.0 になります。 出来れば、複数レコードのデータを下に一覧テーブルを生成できるようなものがあると助かります。 ぜひ、よろしくお願いいたします。

  • PHPでJSONを扱うときに配列の参照について

    Web ad Fortune http://jugemkey.jp/api/waf/api_free.php という占いのAPIをPHPにて使おうと思い、 JSON形式で情報が帰ってくるようなので JSONについて調べて json_decode()関数を使うことにしました。 しかし、いまいち配列からのデータ参照ができません。どういうことかというと、 牡羊座のランクを取り出したいときに 【ソース】 <?php $json = file_get_contents("http://api.jugemkey.jp/api/horoscope/free/2009/02/27","r"); $obj = json_decode($json); echo "<pre>"; print_r($obj->horoscope->2009/02/27[0]["rank"]); echo "</pre>"; ?> としても何も表示されません。 ちなみに、print_rの部分を print_r($obj->horoscope); とすると http://nanigashi.biz/json.php のように表示されます。 配列からの情報の読み込み(データ参照)がわかりません。 教えてください。

    • ベストアンサー
    • PHP
  • BitwardenパスワードマネージャーJSON

    BitwardenというフリーのパスワードマネージャーをChromiumEdgeブラウザーの拡張機能としてアドオンさせています。各サイトのIDやパスワードを自動入力してくれる優れものですが、そのデータをCSVかJSONファイルにてエクスポートできます。インポートが無理なのが残念です。JSONファイルとは何でしょうか?テキスト形式等に変換して各サイトのログイン情報をメモ帳やWordで閲覧することは不可能なのでしょうか?

  • GoogleMpsAPIのjson.jsによる読み込み

    GoogleMapsAPIの勉強をしています、プログラミング初心者です。 「GoogleMapsAPI徹底活用ガイド」という解説本を参考にしています。 中心位置情報をJSON形式で別ファイルに記述したものをjavascriptプログラムで読み込み、実行、googlemapに反映させたいのですが、うまくいきません。 JSON in JavaScript のページ(http://www.json.org/js.html)のリンクからJSON処理ライブラリjson.jsのスクリプトをコピー、私のサーバー内に保存し、 <head></head>内で <script type="text/javascript" src="json.js" charset="utf-8"></script> とsrc属性にjson.jsを指定、 javascriptのfunciton {}内で、 GDownloadUrl( "center.json", mySetCenter ); function mySetCenter(data) { var obj = data.parseJSON(); map.setCenter( new GLatLng(obj.lat, obj.lng), obj.zoom ); } としています。 center.jsonというのが、JSON形式の位置情報ファイルです。 解説本のサンプルを使用しているので、スクリプトの間違いではないと思います。 json.jsを使わず、javascriptでeval関数を使う場合は、正常にJSON形式の中心位置情報のデータが読み込まれ、地図が表示されます。 おそらく、json.jsのダウンロード方法やサーバへの配置方法などが間違っているではないかと思いますが、参考になる資料がなく困っています。 どなたかご教授お願いいたします。

  • 至急!JSON&XML形式送信問題について

    拝見していただきありがとうございます。 切羽詰まって考えていたので、ここで質問してみました。 API(サーバー)→JSON形式またはXML形式で送られた値をJSP側で受け取り表示→送られた値(表示済)を別のサーバーに送る(ここが問題箇所)→サーバー側(ごにょごにょ)→付加価値をつけた値を表示(別JSPで表示) ※送り元と送り先のサーバーは不一致 本題: 1.JSON形式またはXML形式で送られた値をそのままサーバーに送る方法がわからないので誰か手助けをしていただけませんでしょうか? 2.別JSPで表示することは可能か? 非常に人任せにはなって申し訳ないのですが、送る方法と受け取り方法をサンプルも添えていただければ非常にありがたいです。

    • ベストアンサー
    • Java
  • CSVファイルをJSON形式に変換

    CSVファイルをJSON形式に変換するJAVAのプログラムの参考情報を探しています。 (JavaScriptのソースはいくつか見つかったのですが。。) なにか参考になるサイトがあるよ?とか こういうプログラミングしたらどう? などありましたら教えて頂けませんでしょうか? .

  • HTTPで定義されている内容

    HTTPの規定範囲について教えてください。 HTTPではHTMLやCSSの仕様まで規定されているのでしょうか? それともHTML、CSSがHTTPに合わせてるだけでしょうか? 同様に「Web APIがHTTPを使う技術」と言われていますが、 それはjavaScriptやXMLの仕様についても今のHTTPで規定されているから Web APIのデータ形式はJSON、あるいはXMLのデータ形式になってるのでしょうか?

  • JSON形式のデータ解析が出来なくて悩んでます。

    「Twitterから学ぶ,Web APIのキホン」(http://gihyo.jp/dev/serial/01/perl-hackers-hub/000403)のサンプルプログラムを参考にitunesの検索apiの検索結果を解析しようとしているのですが解析できなく、何も表示されない状態になります。 itunes 検索api http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html まずは上のSearch Examplesにいくつか示しているitunes apiの検索結果(jsonデータ)から"artistId"に対する項目や"artistName"に対する項目を抜き出そうと試みています。 以下は実際に私が実行しているプログラムです。 ----------------------------------------------------------------- print <<"HTML"; Content-type: text/html <html> HTML use LWP::UserAgent; use URI; use JSON qw(decode_json); use Encode qw(encode_utf8); my $uri = URI->new('※ここにitunes apiの検索結果のurl入れています'); my $ua = LWP::UserAgent->new; my $res = $ua->get($uri); my $json = $res->content; my $ref = decode_json($json); for my $applist ( @{ $ref->{results} } ) { print encode_utf8("$applist->{artistId}: $applist->{artistName}\n");} -------------------------------------------------------------------------------------- としているのですが結果は何も表示されません。※cgiはmac 環境にてUTF-8 Mac(CR)で保存しております。 「Twitterから学ぶ,Web APIのキホン」のサンプルプログラムは正常に動いて表示出来ているのでモジュールやPerlのパスには問題ないと思います。 どうすればitunes 検索apiのjsonデータがPerlでちゃんと解析されるのかご教示お願いします。

    • ベストアンサー
    • Perl
  • フリーのテキスト変換プログラムありませんか?

    WordやExelデータをテキスト変換してくれるプログラムを探しています。 出来ればライブラリ形式のもの良いのですが、EXE形式でもプログラムからコール出来るものであれば構いません。 フリーのもので何か良いものはありませんでしょうか?

専門家に質問してみよう