There is however one issue. Associative arrays with numeric keys that are not in sequence or mixed with string keys.
Zend_Json_Encode will convert the associative array to a JSON object representation but convert the numeric keys to strings as the JSON specification does not allow for numeric object property names. Consequently FirePHP will display the numeric keys as strings.
I am thinking about serializing the data (using PHP serialize()) instead of using JSON to get around this issue.
Christoph
Jason Webster wrote:
Jason Webster wrote:
Matthew Weier O'Phinney wrote:
-- Christoph Dorn <[EMAIL PROTECTED]> wroteI actually don't believe it is a problem at all. json_encode() will preserve the key => value relationship if the integer keys are non-contiguous. Otherwise, if they are, it's an indexed array.
(on Thursday, 04 September 2008, 10:54 AM -0700):
It is an issue with Zend_Json_Encoder.
The problem is that JSON does not support associative arrays. See ticket
http://framework.zend.com/issues/browse/ZF-4159
Actually, that's not entirely true. PHP associative arrays translate
basically to JS objects. The problem occurs when PHP needs to encode an
array -- is an array with numeric indices an associative or normal
indexed array? The typical test used is something like this:
if (array_keys($array) == range(0, count($array) - 1)) {
// indexed
} else {
// associative
}
In the example the poster provided, it would be evaluated as an indexed
array.
It seems to me, judging by the original message, that the problem lies in how Firebug, or something at that side of things, is interpreting the data.
The original post:
today I tried to use the new Zend_Log_Writer_Firebug and it works fine, but there is something irritating. If you log something like this:
# $logger->log(array('data' => array(0 => 1)), Zend_Log::DEBUG);
Firebug will show:
# array(['data'] => 1)
array('data' => array(0 => 1)) encodes correctly into {"data":[1]}
However, the output Firebug _should_ show, in this situation, given the above JSON is: # array('data' => array(1))
--
Christoph Dorn | |
![]() |
http://www.ChristophDorn.com/ |