• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSONをperlで受け取る方法)

JSONをperlで受け取る方法

このQ&Aのポイント
  • jQueryを使用してHandsontableで表に入力した内容をperlのCGIに送信し、受け取る方法についてわかりません。
  • HandsontableのデータをCGIで受け取る方法がわかりません。JSON形式でデータを送信する際、どのように受け取れば良いのでしょうか?
  • JSONデータを含むHandsontableの内容をperlのCGIで受け取る方法について教えてください。

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

  • ベストアンサー
  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

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

mm666
質問者

お礼

アドバイス頂き、ありがとうございます。 どうしても$dataに値が入ってこないのです… 使い方を間違えているのかもしれません。 <STDIN>だと、一列で全データが入ってきます。(URIエンコードされた状態) もう少し試してみます。 ありがとうございました。

その他の回答 (2)

回答No.3

大分時間が経ってますが、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 ご参考まで。

mm666
質問者

お礼

遅くなり、申し訳ありません。 アドバイス、ありがとうございます。 簡単に取得できる方法はないのですね。 name=valueの羅列で入ってきたデータを解析して使用するようにしました。 ありがとうございました。

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.2

拙作では$.ajaxではcontentTypeを指定しているのですが、この指定はありますか? $.ajax {  type: "POST",  contentType: "application/json",  ・・・ 以下のURLを見る限り、必要そうなので・・・ http://tarotaro.jugem.cc/?eid=1542

mm666
質問者

お礼

遅くなり、申し訳ありません。 contentTypeの指定は無かったので追加してみたのですが、 変化がありませんでした。 アドバイスありがとうございます。