Bug Google Chrome con JSON

logo-chromiumEsta es la semana de los errores y hoy me ha pasado uno muy curioso, al principio pensaba que era un bug de la función json_encode de PHP pero al comprobar mi script con Firefox me he dado cuenta que el error radicaba en la forma de tratar los objetos JSON recibidos como respuesta de un AJAX por Google Chrome.

Versiones de los navegadores:

  • Google Chrome 15.0.854.15 dev-m
  • Mozilla Frefox 7.0

El error en cuestión es la ordenación de los índices de un objeto JSON cuando estos son numéricos. Por ejemplo supongamos que tenemos el siguiente array:

Array
(
    [236] => aargelich
    [251] => aferrer
    [245] => ambordas
)

Y ahora codificamos este array con PHP y lo enviamos a nuestra web a través de AJAX, la codificación correcta de este array sería:

{"236":"aargelich","251":"aferrer","245":"ambordas"}

Sin embargo en el Google Chrome recibimos como respuesta el siguiente:

{"236":"aargelich","245":"ambordas","251":"aferrer"}

Ordenado nuevamente por los índices.

Tengo que buscar la página para reportar los bugs al equipo de desarrollo de Google Chrome, cuando lo haga ya os iré contando.

Os dejo el enlace para reportar bugs a PHP por si alguno lo necesita.

Comentarios