Lo que dice cletus es correcto, pero en mi experiencia, la mayoría de los navegadores mantendrán el orden. Dicho esto, debería considerar usar un Array
. Si usted necesita para solucionar el problema, una vez que lo reciba en el lado del cliente, sólo tiene que utilizar la función .sort()
en JavaScript:
rows.sort(function(a, b) {
return a.row_id - b.row_id;
}
A pesar de que parece que funciona, el orden de las propiedades de un objeto no puede ser contado en. Vea los muchos comentarios a continuación para obtener más información (ojos más inteligentes que los míos). Sin embargo, este fue el código que utiliza para probar el comportamiento en mi propia prueba limitada:
var test = {
one: 'blah',
two: 'foo',
another: 'bar'
};
for (prop in test) {
document.write(prop + "<br />");
}
impresiones (en Firefox 3.6.3 y Chrome 5.0.375.9):
one
two
another
Además, es posible quiere asegurarse de obtener el tipo de codificación JSON que necesita de json_encode()
, como un objeto (utiliza llaves {}
) y no una matriz (llaves []
). Es posible que deba pasar JSON_FORCE_OBJECT
a json_encode()
para forzarlo.
- Editado para aclarar que el enfoque preferido es
Array
)
- Editado nuevo (lo siento), como me había pasado por alto el comentario de pcorcoran, que tiene un enlace a un problema en el seguimiento de incidencias de cromo con respecto a este. Baste decir que el orden de las propiedades de un objeto es no confiable.
Ya falla en Opera y Chrome, y el comportamiento en otros lugares puede cambiar a medida que se optimizan los motores JS. No confíe en el orden de Objetos: vaya a la Matriz. – bobince
Parece que funciona en Chrome (5.0.375.9 en Mac OS X). ¿Utiliza una versión diferente o tiene un fragmento de código que podría hacer que Chrome ignore el pedido? Me interesa principalmente desde el punto de vista de la curiosidad. Estoy de acuerdo con usted, el mejor enfoque sería usar una matriz y '.sort()' si es necesario. – awgy
Nevermind-- pasó por alto el comentario de pcorcoran a continuación, vinculándolo al rastreador de problemas de Chromium. – awgy