Hi All, I understood my mistake, last line of my code was: return $branch_list; but it should be return @\$branch_list; But I have one more problem, how I can I set character set of JSON data to utf8? I was doing it as follow as I wrote at my 1st mail print $q->header(-content_type => "application/json; charset='utf8'); Now, how I will do it? Also why am I unable to use : use JSON which is general way? On Sun, Sep 13, 2015 at 7:54 PM, Kadir Beyazlı <kadirbeyazli@gmail.com> wrote:
Hi All,
I will return JSON data from a route. If I don't use Dancer2 framework, I do it as follow and it works:
sub json_branch_list {
my $sth_branch = $dbh->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} }; }
use JSON;
my $result = { total => scalar(@$branch_list), branch => $branch_list, success => JSON::true };
print $q->header(-content_type => "application/json; charset='utf8');
print to_json($result);
exit; }
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
-- Kadir Beyazlı Computer Engineer GSM : +90 535 821 50 00
-- Kadir Beyazlı Computer Engineer GSM : +90 535 821 50 00