I would try setting it in the config file. See http://search.cpan.org/~sukria/Dancer2-0.01/lib/Dancer2/Config.pod. There are YAML and JSON examples for setting UTF-8.
--john

On 9/13/2015 11:56 AM, Kadir Beyazlı wrote:
Hi John,

Now my only problem is encoding JSON data.
My data is Turkish, I was setting charset as follow to display correcty

  print $q->header(-content_type => "application/json; charset='utf8');

How will I do it at Dancer2?

I used following 1st and 5th lines but did not solve problem

   1 use Encode;
   2 while (my $branch = $sth_branch->fetchrow_hashref) {

   3  push @$branch_list,
   4    { BranchID => $branch->{BranchID},
   5     Branch   => encode_utf8($branch->{Branch}),
     };
   }

On Sun, Sep 13, 2015 at 8:43 PM, Kadir Beyazlı <[email protected]> wrote:
Hi John,

Now it is OK me.  I am using as follow

   while (my $branch = $sth_branch->fetchrow_hashref) {

     push @$branch_list,
       { BranchID => $branch->{BranchID},
     Branch   => 'ali'
       };
   }

   my $result = { total   => scalar(@$branch_list),
                  branch  => $branch_list,
                  success => 'true'
            };

   set serializer => 'JSON';
   return $result;

If I use

set serializer => 'JSON';

I dont need to use to_json as I understand. This is good for me

I also understood why I dont need to define

use JSON

Because it is already ready for me.

Thanks



On Sun, Sep 13, 2015 at 8:29 PM, Richard Jones <[email protected]> wrote:
On 13/09/2015 17:54, Kadir Beyazlı wrote:
At Dancer2, when I write below definition :

use JSON;

it does not allow with a warning that to_json and from_json functions
are duplicated. I of course know that Dancer2 is using following
definition

set serializer => 'JSON';

But I still could not achieve returnin JSON data: Here my route is

get '/json_branch_list' => sub {

    my $sth_branch = database->prepare
      (qq(SELECT BranchID,Branch
          FROM branch
          WHERE Deleted=0
         ));

    $sth_branch->execute || die 'SQL_ERROR';

    my $branch_list = [];

    while (my $branch = $sth_branch->fetchrow_hashref) {

      push @$branch_list,
        { BranchID => $branch->{BranchID},
      Branch   => $branch->{Branch}
        };
    }

    set serializer => 'JSON';

     return $branch_list;
};

No data is displayed

What happens if you do:

get '/json_branch_list' => sub {
   [...]
   my $ref = {
     BranchID => $branch->{BranchID},
     Branch   => $branch->{Branch}
   };
   return to_json($ref);
}

Or even, depending on what is in $branch and what you want to do with it
downstream just return the hashref as-is:
   return to_json($branch);

As far I as I know there is no need for 'use JSON', just 'use Dancer2'.
Works for me anyway.


--
Richard Jones

_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users


--
Kadir Beyazlı
Computer Engineer
GSM : +90 535 821 50 00



--
John J. McDermott, CPLP
Learning and Performance Consultant
jjm at jkintl.com 575/737-8556
Check out my security blog posts
Add an A for the Arts To STEM and get STEAM and a strong engine to move forward.

_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to