- ベストアンサー
JSONをperlで受け取る方法
- jQueryを使用してHandsontableで表に入力した内容をperlのCGIに送信し、受け取る方法についてわかりません。
- HandsontableのデータをCGIで受け取る方法がわかりません。JSON形式でデータを送信する際、どのように受け取れば良いのでしょうか?
- JSONデータを含むHandsontableの内容をperlのCGIで受け取る方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
use CGI; use JSON qw/encode_json decode_json/; my $query = CGI->new; my $data = $query->param('POSTDATA'); <-今回の質問の肝はおそらくこちらです my $json_array = $json->decode( $data ); <-JSONデータをPerlで解釈できるように変換 $json_arrayから、扱いたいデータが扱えると思います。 全て英語ですが…参考URLです。 https://metacpan.org/pod/CGI#HANDLING-NON-URLENCODED-ARGUMENTS CGI.pmのparam('POSTDATA')について http://stackoverflow.com/questions/908113/how-can-i-get-the-entire-request-body-with-cgi-pm http://stackoverflow.com/questions/15899616/jquery-ajax-to-perl-json-module-decode-of-data JSONモジュールについて http://d.hatena.ne.jp/perlcodesample/20100427/1270894115
その他の回答 (2)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
大分時間が経ってますが、jQueryはその形式をサポートしていないようです。 http://api.jquery.com/jQuery.ajax/ dataのフォーマットはPlainObject or Stringとなっています。 配列はPlainObjectではありませんが、 nameプロパティとvalueプロパティが含まれるオブジェクトの配列であれば、name=valueというデータとして送信できるようです。これは非公式の書き方かもしれません。 [ {"name": "name1", "value": "value1"}, {"name": "name2", "value": "value2"} ] name1=value1&name2=value2 ご参考まで。
お礼
遅くなり、申し訳ありません。 アドバイス、ありがとうございます。 簡単に取得できる方法はないのですね。 name=valueの羅列で入ってきたデータを解析して使用するようにしました。 ありがとうございました。
- hirotn
- ベストアンサー率59% (147/246)
拙作では$.ajaxではcontentTypeを指定しているのですが、この指定はありますか? $.ajax { type: "POST", contentType: "application/json", ・・・ 以下のURLを見る限り、必要そうなので・・・ http://tarotaro.jugem.cc/?eid=1542
お礼
遅くなり、申し訳ありません。 contentTypeの指定は無かったので追加してみたのですが、 変化がありませんでした。 アドバイスありがとうございます。
お礼
アドバイス頂き、ありがとうございます。 どうしても$dataに値が入ってこないのです… 使い方を間違えているのかもしれません。 <STDIN>だと、一列で全データが入ってきます。(URIエンコードされた状態) もう少し試してみます。 ありがとうございました。