[dancer-users] Returning JSON Data

John McDermott, CPLP jjm at jkintl.com
Sun Sep 13 19:32:27 BST 2015


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ı <kadirbeyazli at gmail.com> 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 <ra.jones at dpw.clara.co.uk> 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
>>> dancer-users at dancer.pm
>>> 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.



More information about the dancer-users mailing list