JavaScript - Problema de ordenación con JSON

   
Vista:
Imágen de perfil de Octavio

Problema de ordenación con JSON

Publicado por Octavio (3 intervenciones) el 19/09/2015 02:43:57
Tengo un Servlet llamado desde Ajax, al final por medio de un objeto PrintWriter imprimo un objeto JSON. Los pares no estan ordenados por clave, es decir puedo tener {"5":"Azul","3":"Naranja","2":"Gris"}. El problema es cuando recibo este JSON en JavaScript, ya que lo ordena por clave y esto es algo indeseado para mi aplicación. ¿A que se debe esto? ¿Como puedo evitarlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

Problema de ordenación con JSON

Publicado por Vainas (239 intervenciones) el 19/09/2015 10:20:04
Buenas:

La verdad es que no sabia que sucediera esto y segun el standard no debe pero por lo visto si que sucede para algunos navegadores...

Soluciones que tiene la gente pues hay varias a probar:

1. que el valor comience con una linea baja: {"_5":"Azul","_3":"Naranja","_2":"Gris"}
2. Agregarle un "0" delante para que lo tome como una cadena (muy parecida a la anteior): {"05":"Azul","03":"Naranja","02":"Gris"}
3. Meter a su vez tus objetos en un array o objeto ordenado:

{"0" : {"5":"Azul"} ,"1" : {"3":"Naranja"}, "2": {"2":"Gris"}}

Es lo unico que he encontrado. Espero que te sirva. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Octavio

Problema de ordenación con JSON

Publicado por Octavio (3 intervenciones) el 19/09/2015 16:14:04
Gracias, lo resolví de la siguiente forma:


[{"id":5,"name":"Azul"},{"id":3,"name":"Naranja"},{"id":3,"name":"Gris"}]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve

Problema de ordenación con JSON

Publicado por xve (1597 intervenciones) el 19/09/2015 10:29:25
Hola Octavio, aquí te he preparado un simple ejemplo de como ordenar por sus valores, tanto ascendente como descendente:
http://www.lawebdelprogramador.com/codigo/JavaScript/3280-Ordenar-un-json-por-sus-valores-ascendete-y-descendente.html

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Octavio

Problema de ordenación con JSON

Publicado por Octavio (3 intervenciones) el 19/09/2015 16:13:14
Muchas gracías por la respuesta. En realidad mi problema no es querer ordenar un JSON ya que los datos que coloco en el JSON ya tienen cierto orden desde que los obtengo de la base de datos. En problema es que al pasar mi objeto JSON desde Java (El servlet) hacia javascript, este se ordena automáticamente. Ésto para mi es una operación indeseada.

Encontré que no es algo que yo estuviera haciendo mal, si no que, es una carcaterística de javascript o del navegador que lo implementa. De aguna forma cuando una clave es númerica, la ordenación se hace automáticamente. Esto lo vi aqui: http://www.forosdelweb.com/f13/json-google-chrome-coloca-orden-automaticamente-1022857/

Mi solución en vez de colocar pares Entero->Cadena, fue la siguiente:

[{"id":5,"name":"Azul"},{"id":3,"name":"Naranja"},{"id":3,"name":"Gris"}]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar