if serialize class private or protected variables \u0000clasname\u0000 or in case of protected \u0000*\u0000 prepended variable name.
json encoding string , decoding on gae php55 fails on \u0000.
example code:
class { public $pub = 10; protected $priv = 20; } $a = new a(); $serialized = serialize($a); echo "\nserialized: ".$serialized; echo "\njson: ". ($json = json_encode($serialized)); echo "\ndecode".print_r(json_decode($json),1); echo "\n";
returns (on gae):
serialized: o:1:"a":2:{s:3:"pub";i:10;s:7:"*priv";i:20;} json: "o:1:\"a\":2:{s:3:\"pub\";i:10;s:7:\"\u0000*\u0000priv\";i:20;}" decodeo:1:"a":2:{s:3:"pub";i:10;s:7:"
while on development server works fine:
serialized: o:1:"a":2:{s:3:"pub";i:10;s:7:"apriv";i:20;} json: "o:1:\"a\":2:{s:3:\"pub\";i:10;s:7:\"\u0000a\u0000priv\";i:20;}" decodeo:1:"a":2:{s:3:"pub";i:10;s:7:"apriv";i:20;}
this reproducible on googleappenginelauncher (at least on os x release: "1.9.20")
Comments
Post a Comment