-- Konr Ness <[email protected]> wrote (on Tuesday, 21 December 2010, 11:33 PM -0600): > Another thing Zend_Json does that json_encode() does not is supporting > iterable objects. I use this frequently for JSON encoding objects that do > not have public properties. > > p.s. I think that Zend_Json should actually check for the objects > implementing Traversable (http://us.php.net/manual/en/class.traversable.php), > not Iterator (http://us.php.net/manual/en/class.iterator.php), since all the > encoder is doing is foreach'ing over the object, but that's for another bug > report.
Please report it. :) (In ZF2 code, I'm typically checking for Traversable -- even when expecting Zend\Config objects -- as the point is really the key/value pairs during iteration.) > On Fri, Dec 10, 2010 at 11:38 AM, Matthew Weier O'Phinney > <[email protected]>wrote: > > > Yes, Zend_Json is slower than ext/json, even when it proxies directly to > > ext/json. That said, there are a number of situations where you might > > wish to use Zend_Json over ext/json: > > > > * If you have to encode JS lambdas as JSON > > * If you want support for additional charset encodings > > > > Finally, for most datasets developers will utilize, the amount of time > > spent in de/serialization is negligible -- if you're working on datasets > > of 100k+ items, you're likely doing something wrong anyways. > > > > -- whisher <[email protected]> wrote > > (on Friday, 10 December 2010, 08:44 AM -0800): > > > > > > $memoryNativeStart = memory_get_peak_usage (true); > > > > > > $start = microtime( true ); > > > > > > $native = json_decode(json_encode( $data )); > > > > > > $memoryNative = memory_get_peak_usage (true) - $memoryNativeStart; > > > > > > $jsonNativeTime = microtime( true ) - $start; > > > > > > $msgNative = 'Native php > > > '; > > > > > > $msgNative .= 'time '.$jsonNativeTime.' memory '.$memoryNative.' > > > '; > > > > > > echo $msgNative; > > > > > > sleep(3); > > > > > > $memoryZendStart = memory_get_peak_usage (true); > > > > > > $start = microtime( true ); > > > > > > $zend = Zend_Json::decode(Zend_Json::encode( $data )); > > > > > > $memoryZend = memory_get_peak_usage (true) - $memoryZendStart; > > > > > > $jsonZendTime = microtime( true ) - $start; > > > > > > $msgZend = 'Zend > > > '; > > > > > > $msgZend .= 'time '.$jsonZendTime.' memory '.$memoryZend; > > > > > > echo $msgZend; > > > > > > inside data there is about 130,000 records (with a result set) > > > > > > I get > > > > > > Native php > > > > > > time 2.24236011505 memory 158072832 > > > > > > Zend > > > > > > time 3.50552582741 memory 109051904 > > > -- > > > View this message in context: > > http://zend-framework-community.634137.n4.nabble.com/json-encode-json-decode-vs-Zend-Json-encode-Zend-Json-decode-tp3080647p3082295.html > > > Sent from the Zend Framework mailing list archive at Nabble.com. > > > > > > > -- > > Matthew Weier O'Phinney > > Project Lead | [email protected] > > Zend Framework | http://framework.zend.com/ > > PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc > > -- Matthew Weier O'Phinney Project Lead | [email protected] Zend Framework | http://framework.zend.com/ PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc
