鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Mojolicous+Teng+JSON扱う時に注意しなくてはならないこと

以前、MojolicousでJSONを返す時BOOLEANを扱う時は、マッピングで注意が必要というようなことを書きました。 TodoMVC(backbone.js)のバックエンドをMojoliciousにしてみた。

今度は、数字項目を扱う時に注意が必要なことを書きます。 こんな感じで+0を入れてあげました。+0しないとJSON値が文字列として返ってしまいます。

締切近く、追い込まれつつも、はまりまくる@dokechinからの情報でした。

sub index {

  my $self = shift;

  my $user_id = $self->session("id");
  my @rows = $self->db->search_by_sql( qq{
      select id,user_id,name,img,url,price,store_url,store_name,0 as distance,bought_at,polish_at 
      from Equipment Where user_id=?
  }, [$user_id]);

  my @json = ();
  foreach my $row (@rows){
      push (@json , {id => $row->id, user_id => $row->user_id, name => $row->name,
      img => $row->img, url => $row->url, price => $row->price + 0, 
      store_url => $row->store_url, store_name => $row->store_name,
      distance => $row->distance + 0,
      bought_at => $row->bought_at, polish_at => $row->polish_at});
  }

  $self->render(
    json => \@json
    );
}