To be clear,I left the line number out because it means nothing, but it is definitely on the line:
my $json = encode_json($arrayref, $typehint_raws);
Using print Dumper I verify that:
*$typehint_raws becomes one empty array for each record found
*$typehint_raw is a hash which has each column and and whether it's an int or string
Once again, everything works, but each call to the above line returns that error.
Here's the code I use to retrieve each record....
$data = readRaw(table name); sub readRaw { my ($rawfilename) = @_; my $dbCommand = 'select '.join ',', @rawFields; $dbCommand .= qq^ from $rawfilename;^; $dbHandle=$db->prepare($dbCommand); $dbHandle->execute(); my $data = $dbHandle->fetchall_arrayref(); $dbHandle->finish; foreach my $rows (@$data) { my %GenericData; @GenericData{ @rawFields } = @$rows; # NOTE added push @rawRecords, \%GenericData; } return \@rawRecords; }
So I have an array of arrays, but each array holds the reference to a hash for each record read
And $data is passed to this function
sub makeJSONToExport { my ($arrayref) = @_; my $typehint_raw = { age => JSON_TYPE_INT, lastname => JSON_TYPE_STRING, firstname => JSON_TYPE_STRING}; my $typehint_raws = [ ($typehint_raw) x @$arrayref]; my $json = encode_json($arrayref, $typehint_raws); return $json; }
In reply to Re^4: Is there a way to make a JSON out of multiple records from MySQL?
by bartender1382
in thread Is there a way to make a JSON out of multiple records from MySQL?
by bartender1382
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |