We have CF8 here and building a CFC to dump a query based on some variables was pretty easy.
Define query arguments and return as Query then they say returnformat=json and us CF developers are done.
But as we all know in order to save bandwidth CF does an array of 2 COLUMNS and DATA which contains arrays of data.
This is smart b/c god knows we don't want 4000 foreign_table_key for each integer in the data. But those php developers get a bit frustrated. So I did it for them
function convertColdFusionJSONtoArray($jsonObject) { $s = json_decode($jsonObject, true); // check valid object if(!array_key_exists('COLUMNS', $s) && !array_key_exists('DATA', $s)) { // put error trapping here $php_errormsg('invalid coldfusion object passed to convertColdFusionJSONtoArray'); echo $php_errormsg; } $returnArray = array(); //Loops through serialObj and matches the columns for ($i=0; $i <= count($s['DATA']) -1; $i++){ $temp = array(); for($j=0; $j < count($s['COLUMNS']); $j++) { $temp[$s['COLUMNS'][$j]] = $s['DATA'][$i][$j]; } // save the new row with column names array_push($returnArray, $temp); } return $returnArray; }So there you have it.
BTW thanks to: Arlo Carreon for his his Javascript version of the same thing: Click the link to view.
Thank for the shout out!
ReplyDelete