Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^2: Formatting JSON the right way

by Anonymous Monk
on Aug 20, 2014 at 12:26 UTC ( [id://1098107]=note: print w/replies, xml ) Need Help??


in reply to Re: Formatting JSON the right way
in thread Formatting JSON the right way

Could you provide any code to illustrate what your are suggesting? Thanks!

Replies are listed 'Best First'.
Re^3: Formatting JSON the right way
by hippo (Bishop) on Aug 20, 2014 at 12:42 UTC

    Sure, try this:

    my $returned_data = $data_handle->fetchall_arrayref ({}); # Any other ops here, and then: print $q->header(-type => "application/json", -charset => "utf-8"); my $json = encode_json ($returned_data); print $json;

    Untested (especially with ODBC which I almost never use) but hopefully you get the gist. See DBI for the details of fetchall_arrayref.

      Using a while loop to fetch the data is not recommended? If so, is that how I would push each value into the array?
      while (my $row = $data_handle->fetchrow_hashref()) { push( @{$returned_data{'name'}}, $row->{name} ); push( @{$returned_data{'city'}}, $row->{city} ); push( @{$returned_data{'state'}}, $row->{state} ); }

      Thanks!

        I think you want something more like this:

        my @returned_data; while (my $row = $data_handle->fetchrow_hashref()) { push (@returned_data, { 'name' => $row->{NAME}, 'city' => $row->{CITY}, 'state' => $row->{STATE}, }); } $data_handle->finish; print $q->header(-type => "application/json", -charset => "utf-8"); my $json = encode_json \@returned_data; print $json;

        Things to note: @returned_data is an array of hashrefs. Each time through the while loop, you grab a row from the database, and push a new hashref into the array (each hashref is like a single record of data). This isn't necessarily the best way to do it - it makes more sense to do it this way when you need to use different key names, or modify the data in some way. If all you want is to dump the database values to the web page "as is", consider the suggestions given here by other monks.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1098107]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (5)
As of 2024-03-29 13:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found