And thanks for bringing this up.  I've asked a couple of times in IRC
if anyone was using JSON in cake as I want to use YUI-EXT but never
got an answer.  Now I know its there, it should speed up development
:)

Tane

On 4/11/07, nate <[EMAIL PROTECTED]> wrote:
>
> Great, thanks Joshua.  It's fine if you're asking if something *is* a
> bug, but once you find out it is, it's always good to follow it up
> with a ticket to make sure it gets fixes.  Thanks again.
>
> On Apr 11, 2:38 pm, "Joshua Benner" <[EMAIL PROTECTED]> wrote:
> > I've applied nate's fix with success.
> >
> > Sorry for the reporting -- I'll report bugs more politely in the
> > future. :)
> >
> > On Apr 11, 2:12 pm, "nate" <[EMAIL PROTECTED]> wrote:
> >
> > > He firespade,
> >
> > > I actually came up with another method that is more efficient, as it
> > > does not require a loop to check for numeric keys.  You can see the
> > > change here, as well as the test case that proves
> it:https://trac.cakephp.org/changeset/4838
> >
> > > Also, in the future, if you'd like to submit patches (or bug reports
> > > [Josh ;-)]), please readhttps://trac.cakephp.org/wiki/bugreport
> > > and this:https://trac.cakephp.org/wiki/Developement/CodingStandards
> >
> > > Generally speaking, we don't respond to patches or bug reports on the
> > > mailing list, as this isn't the place for it.  Thanks guys.
> >
> > > On Apr 11, 1:05 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
> >
> > > > Place this over the original Object method in the javascript.php
> > > > located in "\cake\libs\view\helpers\".
> > > > Enjoy.
> >
> > > > function object($data, $block = false, $prefix = '', $postfix = '',
> > > > $stringKeys = array(), $quoteKeys = true, $q = "\"")
> > > >         {
> > > >             $parts = array();
> > > >             $is_list = false;
> >
> > > >             $keys = array_keys($data);
> > > >             $max_length = count($data)-1;
> >
> > > >             if(($keys[0] == 0) and ($keys[$max_length] ==
> $max_length)) {
> > > >                 $is_list = true;
> >
> > > >                 for($i=0; $i<count($keys); $i++) {
> > > >                     if($i != $keys[$i]) {
> > > >                         $is_list = false;
> > > >                         break;
> > > >                     }
> > > >                 }
> >
> > > >             }
> >
> > > >             foreach($data as $key=>$value) {
> > > >                 if(is_array($value)) {
> > > >                     if($is_list) $parts[] = $this->object($value,
> false, '',
> > > > '', $stringKeys, $quoteKeys, $q);
> > > >                     else $parts[] = $q . $this->escapeString($key) .
> $q .
> > > > ':' . $this->object($value, false, '', '', $stringKeys, $quoteKeys,
> > > > $q);
> > > >                 } else {
> > > >                     $str = '';
> > > >                     if(!$is_list) $str = $q .
> $this->escapeString($key) .
> > > > $q .':';
> >
> > > >                     if(is_numeric($value)) $str .= $value;
> > > >                     elseif($value === false) $str .= 'false';
> > > >                     elseif($value === true) $str .= 'true';
> > > >                     else $str .= $q . $this->escapeString($value) .
> $q;
> >
> > > >                     $parts[] = $str;
> > > >                 }
> > > >             }
> > > >             $json = implode(',',$parts);
> >
> > > >             if($is_list) return '[' . $json . ']';
> > > >             else $rt = '{' . $json . '}';
> >
> > > >             $rt = $prefix . $rt . $postfix;
> >
> > > >             if($block)
> > > >             {
> > > >                 $rt = $this->codeBlock($rt);
> > > >             }
> >
> > > >             return $rt;
> > > >         }
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to