note 90646 added to function.json-decode

From: Date: Sat, 02 May 2009 10:52:42 +0000
Subject: note 90646 added to function.json-decode
Groups: php.notes 
Request: Send a blank email to php-notes+get-154109@lists.php.net to get a copy of this message
two regex statements will convert your string from javascript toSource() output format to JSON accepted format while preserving types. this works with sub objects too! <?php $str = '({strvar:"string", number:40, boolvar:true, subobject:{substrvar:"sub string", subsubobj:{deep:"deeply nested"}, strnum:"56"}, false_val:false, false_str:"false"})'; $str = preg_replace("/([a-zA-Z0-9_]+?):/" , "\"$1\":", $str); // fix left side $str = preg_replace("/:(^false^true[a-zA-Z_]+[a-zA-Z0-9_]*)/", ":\"$1\"", $str); // fix right side $output = json_decode($str, true); var_dump($output); ?> var_dump output: array(6) { ["strvar"]=> string(6) "string" ["number"]=> int(40) ["boolvar"]=> bool(true) ["subobject"]=> array(3) { ["substrvar"]=> string(10) "sub string" ["subsubobj"]=> array(1) { ["deep"]=> string(13) "deeply nested" } ["strnum"]=> string(2) "56" } ["false_val"]=> bool(false) ["false_str"]=> string(5) "false" } you can see the types are properly preserved. hope this saves someone some time. ---- Server IP: 209.41.74.194 Probable Submitter: 68.230.177.153 ---- Manual Page -- http://www.php.net/manual/en/function.json-decode.php Edit -- https://master.php.net/note/edit/90646 Del: integrated -- https://master.php.net/note/delete/90646/integrated Del: useless -- https://master.php.net/note/delete/90646/useless Del: bad code -- https://master.php.net/note/delete/90646/bad+code Del: spam -- https://master.php.net/note/delete/90646/spam Del: non-english -- https://master.php.net/note/delete/90646/non-english Del: in docs -- https://master.php.net/note/delete/90646/in+docs Del: other reasons-- https://master.php.net/note/delete/90646 Reject -- https://master.php.net/note/reject/90646 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#154109) next »